Advertisement

avc serial to i2c bridge

Not rated 29,845

#arduino #serial communication #I2C #AVR #FTDI #mbed #NewSoftSerial #microcontroller #interface #programming
avc serial to i2c bridge
avc serial to i2c bridge

Description: This is a slight redesign of a previously created board intended for an undisclosed purpose. It is an Arduino clone that communicates serially on one set of pins using NewSoftSerial and utilizes I2C on the standard pins. The board features an FTDI header for programming via bootloader and is designed to interface with a confidential serial-only device to the mbed through I2C. Although it may seem inefficient to use an AVR for this task, the microcontroller will also handle data processing and filtering. Existing code has already been developed for this board. While the more powerful mbed could be used for processing in a future revision, a previous incident resulted in the burnout of one of the mbed's UARTs, and acquiring a new one is not currently feasible. The serial device operates at 5V, while the mbed runs at 3.3V, leading to attempts at logic level shifting that were rushed and ultimately flawed. A uni-directional level shift is implemented on the SDA line, which is intended to be bidirectional. A simple solution involves replacing the diode with a current-limiting resistor and removing the pull-up resistor.

The redesigned board operates as an Arduino clone, utilizing an ATmega microcontroller, which is capable of handling serial communication through NewSoftSerial on designated pins. The integration of I2C on the standard pins allows for communication with the mbed platform, enabling efficient data transfer to and from the connected serial-only device.

The FTDI header facilitates programming through the bootloader, simplifying the process of uploading code to the microcontroller. The board's architecture allows for the execution of pre-written code, thereby streamlining development and testing processes.

The choice to incorporate data processing and filtering within the AVR microcontroller, despite the availability of a more powerful mbed platform, demonstrates an understanding of resource management and system design. The decision to utilize the AVR for these tasks is particularly relevant in scenarios where cost constraints limit the procurement of additional mbed units.

Logic level shifting is a critical aspect of interfacing devices operating at different voltage levels. In this case, the 5V serial device and the 3.3V mbed necessitate careful handling of signal integrity. The initial attempt at implementing bidirectional level shifting on the SDA line encountered issues due to hurried design choices. However, the proposed fix involving a current-limiting resistor instead of a diode, alongside the removal of the pull-up resistor, provides a straightforward solution to ensure proper communication between the devices.

Overall, this board serves as a versatile platform for various applications, particularly in scenarios where compact, efficient, and cost-effective solutions are required for serial communication and data processing tasks.It`s a slight redesign of a board I did before last year`s AVC. What`s it for Not telling yet. :) I can say this. It`s an Arduino clone that will speak serial on one set of pins via NewSoftSerial and I2C on the standard set of pins. It has an FTDI header for programming via bootloader. The board will interface a Top Secret serial-only device to the mbed via I2C. Which seems like a waste of an AVR, except the little processor will also be doing some data processing and filtering. I already have code written for the board on which this is based. Why not use the super-powerful mbed for this processing Maybe in a later revision I will but I burned out one of my mbed`s UARTs and have no more to spare. I don`t want to spend $60 on another one at the moment. The serial device is 5V and the mbed is 3. 3V so I attempted to do some logic level shifting but I was in a hurry and I botched it. I have a uni-directional level shift in place on the SDA line which is supposed to be bidirectional. Rats. Fortunately I have a simple fix; throw a current-limiting resistor in place of the diode and remove the pull-up resistor.


Related Circuits