0
\$\begingroup\$

I am using an STM32F100xx MCU and I want to communicate via UART with a GPS module, specifically the A7 Thinker GPS GPS Module with A7 Thinker from Aliexpress

This module, when a 9V battery is used, operates at 3.6 - 4.2V .

The UART pins of the STM32F100xx MCU are 5V tolerant. Can I use UART communication directly without level shifters to 3.3V?

\$\endgroup\$
10
  • \$\begingroup\$ If it works from 3.5~4.2V lithium battery then most likely its internal voltage is 3.3V, which you can easily measure with voltmeter. And if it is so then you should have no problem connecting it directly. But don't use rs232 pins. \$\endgroup\$
    – Maple
    Commented Jun 11, 2018 at 20:59
  • \$\begingroup\$ This module, when a 9V battery is used, operates at 3.6 - 4.2V I doubt that, I think the 3.5 V - 4.2 V Vbat input is a power input for powering the module from a Li-Ion based battery. It is very likely that the module internally works at 3.3 V. \$\endgroup\$ Commented Jun 11, 2018 at 21:00
  • \$\begingroup\$ The max UART_TX voltage from the GPS module is 3.6V. The module is powered by a 9V battery. \$\endgroup\$
    – ElectroPro
    Commented Jun 11, 2018 at 21:01
  • \$\begingroup\$ @ElectroPro Are you sure it is not Vcc? \$\endgroup\$
    – Maple
    Commented Jun 11, 2018 at 21:02
  • 2
    \$\begingroup\$ A multimeter is not really suitable for measuring the voltage of a pulsed signal. Generally you need a scope, unless you can guarantee that the line is idling high during measurement or the meter has a peak function compatible with the timing of the signal. Otherwise you may get some sort of indistinct average. \$\endgroup\$ Commented Jun 11, 2018 at 21:19

1 Answer 1

1
\$\begingroup\$

Since the microcontroller you are using is 5 V tolerant, you can employ anything below 5 V, thus your module is fine.

There is another catch: sometimes CMOS input stages cannot tolerate an "analog" signal, i.e. they need the input voltage to be either GND, or VDD. This is because of cross conduction. This can be a problem if your port is powered via 5 V, and the high output voltage of the GPS is 3V3, i.e. somewhere in between.

Your micro has schmitt triggers input, so this is not an issue for you too.

\$\endgroup\$
2
  • \$\begingroup\$ So many things sideways here... "employ anything" what? The MCU tolerance to 5V does not mean GPS module is also tolerant. CMOS input stages never need GND or VCC. MCU port cannot be "powered by 5V" since MCU works at 3.3V. \$\endgroup\$
    – Maple
    Commented Jun 11, 2018 at 21:27
  • \$\begingroup\$ @Maple thanks for your comments. Please, feel free to edit my answer or write your own if you think it can be improved. \$\endgroup\$ Commented Jun 12, 2018 at 7:22

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