As I promised I bring today more details about the board I am building. I put here all my ideas after doing some brain storming with HKtarzan. It is here for reviewing the specs and help us to build a better board. I already have some staff in Kicad and this week we may have the first version of it. (At least in the schematic phase). So please contribute with your ideas to make this board soon available to the community.
board will called "zero-arduino" but this is a temporary name. It is to have something based on.
ZERO-ARDUINO TO DO.
This board depending on the firmware loaded will be able to:
a - Can be used as an "Add On" board in a system where ZERO board is inserted. That is "COOPERATION MODE"
b - As "Stand Alone" CPU board sharing motherboard and I/O modules. That is "STAND ALONE MODE" and can be used as a "coupler" to remote I/O nodes using our I/O system already build (and in continues developing)
- The motherboard must be pressent at all times.
- Case "a": ZERO is the "MASTER". The STM32 CPU will work as "SLAVE" and can share all hardware on board (CAN, DAC and the 2 software encoders by the ST32 chip, plus other things) with the rest of the system via SPI bus, used as SPI slave device.
This device has enough power for CANOPEN stack (a high level protocole very popular in automation world) available for free from CANFESTIVAL or ST:
- Case "b": this board acts as a main CPU. A job for this CPU can be a "coupler" job for remote I/O.
That makes a distributed I/O system with virtual unlimited I/Os in any topology using CANBUS, Ethernet, MODBUS.
This "coupler" board will use all hardware on motherboard (Ethenet, RS485 for PLC BUS, RS485 for external RS485 RTU, RTC, Watcdog, etc)
- Size same as I/O modules
- 40 pin connector to plug in ZERO bus
- STM32F103C8T6 module on board
- SPI DAC MCP4822 2 x 12BIT analog out with Low Noise Op-Amp interface - must be shared with ZERO
An Op-Amp with different gains will be used after MCP4822 for buffering and for industrial interface chosen by jumpers (or software): 0 to 5v, 0 to 10v, -10 to +10v
Some interesting ideas about DAC came from https://feilipu.me/2013/12/01/goldilocks-v2-part-1/.
The MCP4822 takes 16 bits to set a signal level, this is two SPI bus transactions. The maximum SPI rate is SCK/2
If both DACs are being driven we can generate a square wave of 172,800Hz. This is an unreachable figure. More likely, the best case will be around 50kHz for both channels, or 100kHz if only one DAC is being used.
Optionally, the LDAC pin-out can be used to synchronise the transfer of digital inputs to the analogue output buffers across the two DACs or to a specific clock with low jitter.
The MCP4822 generates its own internal 4.096V reference voltage Vref. This means that irrespective of whether is being powered by a battery, by USB, or by the barrel connector and the SMPS, the output voltage for a particular digital input will be constant.
The op-amp configuration with dual op-amps, in a quad package, designed to double the current capability of the output, it to be a recommended configuration for current doubling. The only difference to the Adafruit example circuit is to add low value output resistors which allow each op-amp to find its own offset level without consuming excess current.
The option to bridge the output capacitors to provide a DC output. The output capacitors are necessary for audio use, as headphones or audio amplifier inputs require an AC connection, with no DC offset.
- SPI CANBUS MCP2515 and MCP2551 chip with 2 RJ45 connectors for easy daisy chain the remote nodes.
- 8 DAC inputs (A0-A8) using the STM32 core probably with Low Noise Op-Amp for 0 - 10V industrial interface, if space is available on board.
- 2 High speed quadrature encoders using the STM32 internal timers (done by software)
- Need is for PS -15,0,+15V for powering the Op-Amps in analoge input/ouput interface. That may be a TRACO module +24v to -15,0,+15v
- Micro SD in case that board is used in stand alone mode for remote data-logging. May not populated if used along with ZERO
- Inside STM32 RTC clock. Can be used in stand alone mode. In that case RTC on motherboard can be un-populated. Only power from Super Cap is needed to keep the STM32 RTC running.
- ID EEPROM as stated in HAT design to recognized by ZERO PI and reprogram GPIOS.