Comments (5)
I looked up "Wishbone" on wikipedia. Interesting. But it is easier to extend the Hermes PC to HPSDR protocol by using the C0 indexes from 18 to 127 that are currently unused. For example, we need a way to specify the frequency of the second clock output of the VersaClock.
from hermes-lite2.
Wishbone is part of www.opencores.org. I work with a lot of RTL in may day job, and there are certain design patterns that lead to RTL that is maintainable, sharable, learnable, less buggy, etc. One of those is abstraction of IP blocks and a standard mechanism (bus) for communication. This is lacking in the current inherited hermes-lite RTL. A wishbone bus provides this.
I do not want to simply extend the protocol because most people are not using software that natively supports the Hermes-Lite like Quisk or Spark SDR. They are using PowerSDR. By adding a side channel to make Hermes-Lite features, people can continue using PowerSDR with support for Pure Signal. On a side note, Quisk could use Warren Pratt's wdsp library and implement pure signal too.
My goal is to have everything memory mapped. For example, to specify the second clock output of the VersaClock, the software will read and write memory locations that correspond to a remapped range of the VersaClock IC's native memory map. The software will program with the native VersaClock interface. There will be no abstraction in the RTL that takes a frequency and converts this to VersaClock interface commands. This leads to simpler and smaller RTL, and more flexibility for the software.
I have thought about and am open to extending the current Hermes protocoal (via C0 indices fro 18 to 127, etc.) to pack memory map read and write commands into the existing protocol. This would allow software targeting the Hermes-Lite to have just one communication mechanism. The RTL would support both paths, side channel and packed in original protocol, to support PowerSDR and other software users.
from hermes-lite2.
All this sounds good to me.
As you know, it is hard to make a "universal protocol" for hardware you don't have yet. The current Old Hermes protocol is full of peculiar bits of data for old hardware which will probably never be used again. But it lacks anything like the 2nd output of VersaClock. This is a tough problem.
from hermes-lite2.
Wishbone bus in use for AD9866 and I2C peripherals. Clock, bias and slow ADC i2c in place. Need to combine clock and bias I2C controllers to save space in the FPGA.
from hermes-lite2.
Switched to cmd bus with ack and AXI4-ST for stream traffic.
from hermes-lite2.
Related Issues (20)
- Port Taka's Audio Codec and Keyer Functionality HOT 1
- Small schematic updates HOT 1
- HL2 Companion PA HOT 2
- Failure to exit transmit mode HOT 24
- linhpsdr stuttering tx audio HOT 1
- PS feedback amplitude does not match openhpsdr HOT 1
- The fan does not turn off HOT 1
- No Power on TX if First from CW HOT 1
- Undocumented behaviour when ADDR 0x0 DATA 0x7 is set HOT 1
- DHCP address lost if ethernet cable removed for short period HOT 3
- HL2 stops streaming data when DHCP renewal happens HOT 5
- Noise in 400 to 500 MHz range
- N2ADR Filter Comapnion Board - typo - Final assembly HOT 1
- Typo on wiki ...Companion... HOT 1
- Hardrock ATU support HOT 4
- Windows on ARM, Support? HOT 1
- After changing to the cicrx.rbf gateware gain stays on 100 rbfs for all and any receiver HOT 3
- Add 10Mhz external clock source input and output HOT 1
- Delay in PA bias turn on, B109 should be 0.01uF
- Receive-only gatewares
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hermes-lite2.