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?

  • \$\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 Jun 11 '18 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\$ – Bimpelrekkie Jun 11 '18 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 Jun 11 '18 at 21:01
  • \$\begingroup\$ @ElectroPro Are you sure it is not Vcc? \$\endgroup\$ – Maple Jun 11 '18 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\$ – Chris Stratton Jun 11 '18 at 21:19

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.

| improve this answer | |
  • \$\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 Jun 11 '18 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\$ – Vladimir Cravero Jun 12 '18 at 7:22

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.