The Black Diamond is dead, long live the TouCan.
For those who had an interest in the Black Diamond design it's now officially in the "seemed like a good idea at the time" bin. But from the ashes has emerged the TouCan board.
This started as a very much cut-down version of the BD with just two CAN serial ports (get it two CAN, TouCan) but it now sports several interfaces as detailed below.
In general the design brief was to implement the SAM features ignored by the Due, and with external memory, Ethernet PHY etc that's what we've done, but it comes at the cost of GPIO. Whereas the Due has a lot of GPIO and naff-all support for the neat stuff, we have gone the opposite direction and support the neat stuff at the expense of GPIO.
Why is that?
Well firstly we didn't want to design yet another "me to" board, it had to support the features not currently supported very well or indeed at all. Secondly once you use the pins for their "main" purpose there aren't many left.
For example
External memory - 44 pins
EMAC - 10 pins
microSD - 6 pins
SPI, I2C etc - 7 pins
CPU stuff - 46 pins
That's about 113 pins used before you start looking at GPIO.
So here is the current feature list.
Atmel SAM3X8E processor, same as Arduino Due
Power supply
o VIN1 for 7-30V main power.
o VIN1 is PTC and Transil protected.
o VIN2 for 7-15V backup power supply.
o CPU detection of VIN1 presence.
o CPU detection of VIN2 voltage level.
o 5V 2.5A switching regulator.
o 3V3 2.5A switching regulator.
o VIN power is jumper-able to many of the serial connectors for network supply of power in smaller systems.
o On-board and remote ON/OFF pushbuttons for system shut down and wakeup.
Battery backup
o On-board coin cell for RTC and external SRAM backup.
o VIN2 can be used for backup or to hold the system voltage until the processor can shut down in an orderly fashion.
o CPU monitoring of coin cell voltage via independent 2-channel ADC chip on I2C.
External memory support
o 16-bit data, 20-bit address.
o On?board 2MB low power CMOS static RAM chip, with 16 bit wide data bus.
o Expansion connector with 2 more bank select signals.
o Total of 6MB directly addressable if expansion board used.
Expansion header
o 60-pin low-profile fine-pitch expansion connector.
o All supported external memory address, data and control signals.
o Two memory bank select signals allow direct addressing of another 4MB external RAM.
o SPI, I2C, USART0 and USART1 signals.
o Chip select signal for SPI (shared with comms module).
o VIN, VBAK, 5V and 3V3 power.
Native high-speed 4-bit support for microSD cards
Native Ethernet support with PHY and magjack
USB
o Host interface with micro AB socket.
o ESD protected.
CAN interfaces
o On-board transceivers for the two CAN ports.
o Two 4-pin connecters for each port allows easy daisy-chaining.
o VIN power available through a jumper to one pin on each connector.
o Jumper selection for 120? termination resistors.
o 256-level slew rate control for each port.
o Enable control for each transceiver for power saving.
o ESD protection for all CANH and CANL lines.
I2C interfaces
o Single I2C port.
o Two buffered interfaces to give two separate external busses.
o Busses can be used to allow multiple devices with the same address or to separate 100kHz and 400kHz devices.
o Some addresses reserved for system devices.
o 3v3 and 5v power available to power devices and for pullup resistors.
o Each interface can be 3v3 or 5v.
RS-485 interface
o Uses USART0.
o USART’s RS-485 mode supported.
o Jumper-selectable 120 ? termination resistor.
o Half-duplex.
o Two 4-pin connecters allows easy daisy-chaining.
o ±25v common mode voltage range.
o ±60v fault protection.
o ±80v transient tolerance.
**1-Wire interface **
o I2C to 1-Wire bridge IC handles most critical 1-Wire timing.
o MOSFET active (strong) pullup.
o 5v power available to power remote devices.
TTL async serial interface
o Buffered transmitter.
o Uses USART1.
o Jumper selectable between straight TTL and opto-isolated input.
o Opto-isolated option MIDI compatible.
User interface (optional)
o Electrical and header support for all 4D Systems GLCDs and OLEDs.
o Mechanical support for the 4D Systems uLCD-144-G2 display, 1.44” (128x128px) LCD.
o uLCD’s speaker output supported using external 8? or 16? speaker.
o Display shares UART with comms module. Reset automatically switches to comms module for CPU programming.
o Can swap UART from comms module to LCD and vice-versa under program control.
o Five-way (four-way plus push) navigation joystick.
Non-volatile memory
o Onboard non-volatile storage.
o Serial 8KB FRAM chip uses for fast and next to unlimited writes.
Digital IO
o 8 high-current (24mA) GPIO signals.
o Each of the 8 IOs are individual and can be 5v or 3v3, selectable via jumper.
o Each IO has a state indicator LED.
o All IO protected against over, under, reverse and high voltages.
Analogue IO
o 8 analogue inputs.
o Each channel can be individually selectable for single ended or differential mode.
o Instrumentation amplifiers use for each channel.
o Voltage reference and all components high-precision.
o Can read signals to 0-5v.
o Protected to ±35v.
RTC
o Standard crystal or TCXO (Temperature Controlled Crystal Oscillator) provided.
o Maintains time in shut down mode.
**Programming **
o Shows as standard Arduino Due in the IDE.
o Native USB bootloader.
o Plug-in module and UART bootloader.
o JTAG programming.
Comms module header
o 20-pin (2x10) .1” pitch pin header.
o UART, USART0, USART1, SPI, I2C, erase, power and other signals.
o Use for programming or general-purpose comms interface.
Debugging support
o Large GND, 5V and 3V3 test points for connecting test equipment.
o Breakout board for the expansion connector with fast real-time debugging supported with memory-mapped debugging signals for low-intrusive pulsing and variable display.
o Assorted test points for important signals.
o Standard 10-pin JTAG header.
o 7-segment LED display for error codes.
Misc
o Push buttons for erase, hard reset, soft reset and on/off.
o 6-layer PCB.
Mechanical
o Approx 3.9 x 2.5” (100x65mm).
o Four mounting holes.
o Fits a standard Polycase LP-31B enclosure.
That's it as it stands today, as you can see we don't have masses of GPIO but what we do have is pretty well protected against the big bad world.
The design has been "frozen" 2 or 3 times lately but then we get a suggestion from someone or have a bright idea ourselves. It's frozen again now but can be thawed, there's still time for input from interested people.
Legacy support
This is a tricky area, to support shields or not. Bottom line is I can see no way to support legacy shields and the extra features, not on the native board anyway. We have some ideas but this is an area some input would be appreciated. Does anyone care? After all there are a few formats around that don't support shields .
Cost
I have no idea at this point, we'll have to do another BOM, but this will not be a $29.95 board that's for sure.
Collaborators
We do have people interested in this project, so far mostly software types but right now the issues are mostly of a hardware nature. Regardless of your strengths though please get in touch if you are interested. (rob@robgray.com)
Here are a few pics to give you an idea of the physical layout
Things still need fine tuning so don't ping me because a label is in the wrong place, but if there's a real issue with connector placement or something do let me know.
We work on this using Skype chat most nights until about 2AM (Eastern Oz time) if you want to join in I'm "grayn0mad".
So there we have another mega post about a proposed board, I've done a few in the past that have come to nothing but this time we have some money and a couple of interested people so who knows, the TouCan may actually fly.
Rob