0
\$\begingroup\$

I'm having issues receiving data from a 3.3 volt logic level R503 Fingerprint Module that is sent via it's Tx pin using UART. The logic levels are converted to 5 volts using a bi-directional converter. When not plugged into the converter, the logic levels from the module are 2.6 volts in the high state and 0 volts in the low state (See image 1). When the sensor is connected to the converter, the logic levels from the module, measured on the low side of the converter, are 2.6 volts in the high state and 1.2 volts low state (See image 2). This results in the output from the converter to NOT be driven all the way low, therefore preventing the microcontroller from receiving any data. See image 3 for output from the level converter.

I am unable to determine the cause of this issue. I have checked and used different cables, connectors, and power supplies. This issues is also present and can be reproduced on the only 2 sensors I have. Any help would be greatly appreciated!

Image 1: 1 volt/div - Tx pin Not connected level converter

enter image description here

Image 2: 1 volt/div - Tx pin connected to level converter. Measurement is taken at the low side of the converter.

enter image description here

Image 3: 2 volts/div - Tx pin connected to level converter. Measurement is taken at the high side of the converter.

enter image description here

EDIT: Added schematic

enter image description here

\$\endgroup\$
12
  • 2
    \$\begingroup\$ I think you need to share the schematic and the datasheet for the logic level converter. \$\endgroup\$ – Transistor Oct 25 '20 at 18:25
  • \$\begingroup\$ Where did you connect it? And how? What modules and boards were used? Links and schematics? \$\endgroup\$ – Justme Oct 25 '20 at 18:27
  • \$\begingroup\$ Link to the level converter: amazon.com/gp/product/B07LG646VS/… \$\endgroup\$ – Wallace Oct 25 '20 at 18:41
  • \$\begingroup\$ We don't need a link to the vendor's page for the level converter, we need you to add the schematic of your system to this question. \$\endgroup\$ – Elliot Alderson Oct 25 '20 at 18:50
  • \$\begingroup\$ Are you sure the sensor TX output is connected (via level shifter) to MCU RX input? \$\endgroup\$ – Justme Oct 25 '20 at 20:07
1
\$\begingroup\$

That board you linked is an I2C level shifter.

I2C buses all have pullup resistors. Often in the low kiloOhms range. I suspect the pullup resistors are simply overwhelming the sensor trying to pull down to ground.

Good luck.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks for the help. Do you have a logic level converter that you would recommend? Or should I try something like using an opamp as a buffer? \$\endgroup\$ – Wallace Oct 27 '20 at 2:01
  • \$\begingroup\$ The sensor to the Arduino line is 3.3V but the levels are enough to trigger the the Arduino, so you don't need to shift it. You only need to level shift the line coming from the Arduino to the sensor. In this application, be simple--feed that line to two resistors configured as a voltage divider. I really suggest searching stackexchange and the arduino forums for voltage translation. There are a LOT of articles written about this. \$\endgroup\$ – Andrew Lentvorski Oct 27 '20 at 6:47
  • \$\begingroup\$ I've already tried connecting the modules Tx line directly to the Arduino with no luck. I even tried to buffer the Tx line with an opamp and it still has the same issue. I think I must have bought a couple of faulty sensors. \$\endgroup\$ – Wallace Oct 27 '20 at 13:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.