Provides a bridge between an embedded SPI bus and up to four buffered UART connections. Can also be used for RS232, RS485, DMX512, Modbus.
UART connections include: GPS, GSM, Bluetooth modules etc.
If you're a fan of electronics then you like me will often find it annoying on the lack of hardware serial ports on modern devices. Many modules like the Wifi ESP8266 and the Bluetooth HC-06 are available for peanuts but they each require a UART based serial peripheral on your controller to work effectively. In fact a huge range of external electronics can be added to your system via a serial UART connection: GPS, GSM (mobile phone), RFID, RS232, LIN, Ethernet, Zigbee, Modbus, DMX, 4D systems graphical LCDs to name a few more.
Most modern microcontrollers and devices like the Raspberry Pi have at least one serial UART peripheral so you can do a lot with these devices. However now and then you need to combine several communications style modules together into a single design. A recent project I undertook was a mobile alarm system which used Bluetooth proximity to arm / disarm the system, GPS to track the location, Accelerometer to track movement and GSM based SMS messages to inform the owner where their item is.
The Arduino Mega 2560 offers four serial UART peripherals but what if that is not enough or you need something more affordable for mass production. To move to a different chip may mean rewriting your entire code so is there an easier way?
These modern microcontrollers commonly also feature a peripheral named SPI which is typically a lot faster then a UART based serial peripheral and can be used to talk to multiple devices by use of individual chip select signals from the controller. If the controller does not have an SPI peripheral then it can simply be driven using a bit banged software approach using standard I/O pins with no major downfalls. By using the SPI interface and my design you can communicate with up to four serial UART peripherals simultaneously.
This board provides up to four buffered UART channels from a single SPI connection. If more than four UARTs are required then a second board can be added to provide eight channels and so on.
Each UART peripheral has an 1000 byte buffer dedicated for receiving and another 1000 byte buffer dedicated to transmitting allowing a large amount of data to be sent and received simultaneously which should mean that you never loose a byte.
The LED glows dimly when the board is powered, glows at half power when transmitting or receiving via a UART and glows at full power when communicating via SPI.
The board requires a 3.3V supply to function but the SPI and UART RX pins can accept both 5V and 3.3V inputs. The UART TX pin will output at 3.3V which should be compatible with most if not all 3.3V and 5V devices directly without the need for any additional voltage level shifting circuitry.
A MAX2323 chip can be used to convert the logic level RX/TX signals to RS232 levels.
An Arduino library and Flowcode component are available to help drive this hardware. Also provided is the module firmware allowing you to ensure you are always up to date. Please note a PICkit 3 will be required to reprogram the on-board microcontroller
The version 2 board features a new on-board microcontroller in a reduced pin package which is far easier to manufacture, bringing up quality and reliability whilst helping to reduce wastage and bringing down the cost. The v2 board is 100% compatible with the v1 board.
Additional information on the SPI command syntax and worked examples can be found in the attached product data sheet.