Introducing the TouCan, Due work-alike

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

Do you mean 2MB of sram as in mega bytes or mega bits? Either way I though sram of that capacity is very expensive have you considered pseudo static ram? That may reduce help keep the cost down or the profits up ]:smiley: This board does look very cool nice job.

We're using a 2MB SRAM with B as in Byte (MB is Mega Byte, Mb is Mega Bit)
The actual memory device we are using is an AS6C1616-55 low power CMOS static random access memory organized as 1,048,576 words by 16 bits.
We are accessing the data as a 16bit wide bus in the Toucan design.

As Rob has mentioned, the board has gone through a few stages now and a number of freezes and thaws, but we think we have it very close to having it finalised now and will commit to the design shortly.
Still, we are up till the wee hours discussing it via skype, going over what we have.

Thanks for your comments.


Paul

The jumper to select 3.3V/5V digital effects all ports or per port basis?

The AS6C1616-55 is about $7.60 in 50+ qtys. I guess other RAM types are cheaper but I cannot find any PSRAMs in a solderable package, they all seem to be BGAs.

Also are they suitable for battery backup?


Rob

The jumper to select 3.3V/5V digital effects all ports or per port basis?

It's port by port, at present the following ports have the 5v/3v3 option

I2CA
I2CB
TTL serial
Digital IO (all 8 bits must be one or the other)
TXD and RXD on the comms module header

1-wire is 5v only
CAN0, CAN1 and RS-485 have VIN on the connector

This is still in flux and something we have to settle in the next day or so.

EDIT: If you meant individual pins on the GPIO that's not possible at present but I'll look into that tomorrow.


Rob

The 8 digital IOs can now be individually set to 5v or 3v3.

The circuit was a no-brainer as they all have individual level converters anyway, fitting the headers was the hard part :slight_smile:


Rob

Graynomad:
The 8 digital IOs can now be individually set to 5v or 3v3.

The circuit was a no-brainer as they all have individual level converters anyway, fitting the headers was the hard part :slight_smile:

Nice, makes it more versatile.
For me the lack of 5v pins is the biggest failing of the Duo, I have loads of 5v components, very few 3.3v. And with your ideas it's now be easy to mix and match. Shame someone does not produce a Duo shield with pin by pin level shifters.

Wow, looking very sweet.
Can the board drop down into that case, and a cover put over it, with LCD, Etherent, and joystick exposed?

Regards,
David

Hi David,

At present the board cannot sit down inside the box, it essentially replaces the lid. However what you suggest is something I'd like to achieve so it's worth putting some time into seeing if it's practicle.

One option might be to make a new lid from laser-cut acrylic.

Also all those headers have vertical versions, by enlarging the mounting holes the board could indeed slide down to some mounting bosses on the bottom of the box and with standoffs of an appropriate length we could set the board at the right height to use the standard lid or make a new one. Polycase can machine any part of the box for the LCD etc.

I'll put some thought into it, meanwhile if you have any ideas let me know.

EDIT: New enclosure selected, the board will now fit entirely inside the enclosure with all IO connectors protruding through the sides and (hopefully) UI components through the lid.


Rob