Difference between revisions of "MultiSerial Shield"

From Hackstrich
(More bugs...)
(Fixed address silkscreen reference.)
Line 18: Line 18:
 
* Fixed in revision 2: <s>Fix needlessly close spacing on traces running between pins for no reason.</s>
 
* Fixed in revision 2: <s>Fix needlessly close spacing on traces running between pins for no reason.</s>
 
* SCL33/SDA33 test points/jumper points are needlessly bigger than other pads.
 
* SCL33/SDA33 test points/jumper points are needlessly bigger than other pads.
* Addresses printed on board are 8 bit, not 7 bit like the Wire library uses.
+
* Fixed in revision 2: <s>Addresses printed on board are 8 bit, not 7 bit like the Wire library uses.</s>
 
* RX level translators/jumpers not designed right.  TX signal OK being switched between outputs and pins, RX signal needs to be switched between controller and level shifter though, otherwise level shifter will override the input if 3.3v levels used.
 
* RX level translators/jumpers not designed right.  TX signal OK being switched between outputs and pins, RX signal needs to be switched between controller and level shifter though, otherwise level shifter will override the input if 3.3v levels used.
  

Revision as of 12:07, 12 February 2010

MultiSerial Shield
MultiSerial Shield.png
This Page
Function: Provide two RS232 ports with 3.3v or RS232 levels, accessible via I2C.
Key Chips: NXP SC16IS752
External Ports: 2x RS232 (3.3v or RS232 levels), 8x GPIO
Required Pins: A4 (I2C SDA), A5 (I2C SCL)
Optional Pins: None

Project Status

PCB design complete, prototype PCBs ordered and received from BatchPCB. Full BOM ordered and received from Digikey (SC16IS762 substituted instead of SC16IS752 because the latter is out of stock for another 6 weeks and the former is pin-compatible). First prototype PCB assembled except for 3 of the 4 LEDs, electrically tests OK. Software testing in progress.

Revision 1 PCB Issues

  • Fixed in revision 2: Should connect GND pins on Arduino header together
  • Fixed in revision 2: +5V and GND labels on RS232 port are swapped
  • Fixed in revision 2: Pins 15-28 on controller IC are mirrored! Doh!
  • Fixed in revision 2: Fix needlessly close spacing on traces running between pins for no reason.
  • SCL33/SDA33 test points/jumper points are needlessly bigger than other pads.
  • Fixed in revision 2: Addresses printed on board are 8 bit, not 7 bit like the Wire library uses.
  • RX level translators/jumpers not designed right. TX signal OK being switched between outputs and pins, RX signal needs to be switched between controller and level shifter though, otherwise level shifter will override the input if 3.3v levels used.

Overview

The Arduino MultiSerial shield will let the Arduino access two RS232 serial ports via I2C. It will have switchable 3.3v or RS232 levels. This project exists mainly as a debugging tool for networks of BlinkieBits, as (at least during BlinkieNet design/prototyping) it would be extremely useful to be able to receive debugging information from a whole network of BlinkieBits, rather than just one at a time.

  • The NXP SC16IS752 chip is used, which gives 2 channels for ~$7. It needs 3.3v I/O and talks 3.3v RS232, so level shifters are needed. The I2C level shifter is a PCA9306 ($0.95 qty. 1), and the RS232 level shifter is a second-sourced TI MAX3232 in a SOT16 package ($1.70 qty. 1).
MultiSerial Shield Rev. 1 Schematic