Sorry for not posting anything lately... that doesn't mean I abandoned this though.
Some changes are in place, mainly changing the bus used to link all the modules together to something similar, a simplified version of what
prasimix proposed
here, which he's developing with a bit of assistance from me.
For the simplified version of the bus only 15 lines are necessary, as described below for the UI board:
- CLK - clock line for feeding a clock signal to other microcontroller in the bus
- GPO - General Purpose Output - user configurable output, can be used to control fans, etc.
- GPI - General Purpose Input - user configurable input, can be used for measuring fan rpm, etc
- SDA - I2C data line
- SCL - I2C clock line
- 1-WIRE (Note 1) - for connecting devices using Maxim's one-wire bus
- TX - UART TX - configured as open drain to allow multiple master devices
- RX - UART RX
- ST_CP - 595 shift register storage pulse, latches the shifted data to the ouputs
- SH_CP (Note 2) - 595 shift register clock, driven from the SPI clock line
- QS (Note 3) - SPI data output to 595 shift register
- MOSI - SPI data out
- MISO - SPI data in
- SCLK - SPI clock
- nCS - SPI chip select output
Notes:
1. the one wire bus uses a UART module
2. SPI output available via Peripheral Pin Select (PPS)
3. on peripheral boards (waveform gen, etc) it will connect to the 595's data input via the bus input connector, while the 595's last bit shift register output (QS) will connect to the bus output connector and to the data input on the next board for daisy chaning, a schematic will explain this better
Changes have been made to the UI board to accommodate the new bus connection which uses 5V signalling. The microcontroller used will be a
PIC18F65K40 or any of its bigger brothers in case more RAM is needed. Ditched the switchmode regulator in favor of cheaper LDOs. Since the LCD runs on 3.3V while the MCU rins on 5V some level shifting was required. This was achieved by making the I/O pins open drain and setting the input levels to TTL, with pull-ups to 3.3V.
The Waveform Generator has changed a bit, with the square wave output fed from a comparator connected to the first amplification stage after the DDS filter, capacitively coupled. What that means there's no PWM capability on that output anymore, that will be available on the Frequency Counter module, the next one I'll be working on. I'm also using a dual output reference, a
REF3140 since it's easier to bias things.
As far as connectors are concerned no changes will be made, sticking to ribbon cables for data and keyed headers for power.
If anyone's still following this I have to say I want to see this completed as soon as possible but with so many modules I have to make sure everything fits together before throwing money at it. I don't want to have a second revision right after I build the first one so I'm taking my time to make sure it works first go.