A customer wants to connect an IMP003 breakout board to an Arduino UNO (can’t understand why) via UART. Is the RX/TX (any of them) 5 V tolerant or do I need to add a logic level converter to the board (or use an external one)? Mot STM32 pins are 5V tolerant, just wondering if that is the case here. I would expect to connect RX and TX and GND between the two devices. Will this work?
There are some 3.3v Arduinos if that’s an option or a logic level converter would work. If the comms is only UNO -> IMP then a resister divider would also work. The datasheet shows the max IO voltage as 3.6volts without any exceptions for UART operation so I’d stick to the datasheet especially if there’s a customer involved.
Make sure Tx and Rx are crossed over with resisters in between.
On the way in (arduino TX to imp RX) you need to limit the voltage. You don’t need to use a level converter IC if you want to keep cost down - a 3.6v zener diode and 1k series resistor works fine (1k connected to TX, other end of 1k connected to 3.6v zener clamp and imp pin, bottom of zener grounded)
On the way out (imp TX to arduino RX) you don’t need anything. The ATMEGA chips, when running from 5v, have a minimum logic 1 input voltage of 3.0v, so the imp’s 3.3v output is compatible.
Even only 2 resistor to divide the tx from arduino is enough
Yeah, I chose 1 K + 2 K voltage divider; haven’t tried it yet though but should work just fine.