SIM7022 Fails to Register on Network When Interfaced with STM32L496ZG via UART
Hello ST Community,
We are currently working on a project involving NB-IoT connectivity using the SIMCom SIM7022 modem, which is interfaced with the STM32L496ZG microcontroller via UART. Our goal is to establish MQTT communication with AWS IoT Core by sending AT commands from the MCU to the modem.
Working Standalone Test:
Before integrating with the STM32 MCU, we tested the SIM7022 module using a USB-to-TTL converter connected to a PC terminal. In this setup, the modem behaves as expected:
Responds to AT commands properly (e.g., AT, ATI, AT+CSQ)
Shows strong signal strength (AT+CSQ returns good RSSI)
Registers on the NB-IoT network (AT+CEREG? returns +CEREG: 5,5)
Connects to AWS IoT MQTT broker over SSL/TLS with certificate authentication
This confirmed that the firmware version 2110B13SIM7022 works correctly and the modem is functioning properly.
Issue with STM32L496ZG Integration:
When we use the STM32L496ZG to send the same AT commands to the SIM7022 module through UART, the results are inconsistent:
The modem responds correctly to general commands: AT, ATI, AT+CPIN?, AT+CGSN, etc.
But the network registration fails. When we send AT+CEREG?, the responses are:
Initially: +CEREG: 5,2 → Not registered, searching
After a delay: +CEREG: 5,3 or +CEREG: 5,0 → Registration denied or not registered
As a result, we cannot get a valid signal (AT+CSQ shows poor or invalid signal) or establish a network connection.
Observations:
The UART communication seems reliable — there are no garbage characters, and echo/response works well.
Power supply is stable, and the modem boots properly.
SIM card is active and functional (confirmed in standalone tests).
We're using basic UART (no hardware flow control enabled: RTS/CTS are not used).
Using the same command sequence that worked in the standalone setup.
Questions:
What could cause the modem to fail network registration only when interfaced with STM32?
Are there additional pins (e.g., DTR, RTS, CTS, RI, DCD) that need to be handled/configured by the MCU for proper modem operation?
Is there any specific UART configuration recommended for STM32 when working with NB-IoT modems like SIM7022?
Could timing, delays, or UART baudrate mismatch cause this kind of issue (though commands respond properly)?
Any ST-specific tips for reliable UART communication or NB-IoT module integration?
Hardware Setup:
MCU: STM32L496ZG
Modem: SIM7022 (Firmware: 2110B13SIM7022)
UART Baudrate: 9600
Power Supply: 3.8V regulated (with sufficient current headroom)
Connections: TX, RX, GND, VCC (No flow control lines used)
Thank you in advance for your support!
Best regards,
Taksh Patel
Sr. Embedded Firmware Engineer
