客户在使用模组过程中遇到与MCU串口无法正常通信问题,对此我们提供如下分析思路:
-
MCU端:确认MCU是否有成功发送数据(可用示波器观察MCU_TX是否有数据波形)。
-
电平转换电路部分:以MCU成功发送数据为前提,经过电平转换电路后,数据波形是否存在或电平转换后的波形是否失真(波形失真可能会导致乱码)。
-
模组端:确认模组的RX引脚是否接收到数据,若接收到数据后模组的TX引脚是否有数据响应。
1.1. 排查步骤
在客户设调试电路过程中遇到MCU和模组无法正常通信可以尝试如下排查步骤:
-
检查通信设备之间的波特率,停止位,字节长度是否设置一致。
-
检查确保模组正常开机状态,检查模组是否处于睡眠状态(睡眠状态无法通信,海思NB模组除外),检查模组是否一致处于复位状态(RESET一直拉低),复位状态也无法进行串口通信。
-
检查确认MCU和模组串口电压域是否匹配,如果不匹配中间是否添加电平转换电路。大部分模组的串口电压域为1.8V,3.3V的MCU不能模组直连,直连可以会导致模组通信异常,还会损坏模组,
-
去除TX 、RX电路上的全部电容,再进行尝试能否正常通信或出现乱码。尤其是手焊电容器件,容值焊接错误风险很大。(应用中发现绝大多数客户出现电容容值焊接错误,并不易发现,这点排查希望引起大家关注)
-
使用USB转TTL电平代替MCU进行测试,看问题是否依旧存在,排查是否MCU导致问题。MCU导致的问题,可能晶体导致的时钟不准造成的。
1.2. 串口典型电路设计检查
1.2.1. 电平转换芯片电路设计
若客户主机系统电平和模组不匹配,则需在模块和主机的串口连接中增加电平转换器,推荐使用TI公司的TXS0108EPWR。下图为使用电平转换芯片的参考电路设计。
图1:电平转换芯片参考电路
使用电平转换芯片主要的优势:设计简单,支持多路转换,转换速率高等。
设计注意事项:
- VCCA电压小于VCCB。
- OE使能引脚电压域和VCCA保持一致,建议通过120K电阻下拉到GND,在VDD_EXT上电前使能引脚未打开,保持芯片处于非工作的状态。
1.2.2. 串口芯片电路典型案例
问题描述:某客户在使用SN74AVC4T245型号电平转芯片,发现模块VDD_EXT起来后约2.7s, 电平转换芯片3.3V_TXD端存在异常抖动,测试使用TXS0108EPWR无此问题。异常波形如下:
图2:3.3V_TXD端抖动异常波形
对比两者电平转换芯片内部结构,发现TXS0108EPWR内部存在上拉电阻,而SN74AVC4T245内部没有上拉电阻。模组开机过程中TX引脚为浮空状态,电平状态不固定,导致SN74AVC4T245转换芯片TX的输出端产生抖动。
TXS0108EPWR此型号电平转换芯片内部存在上拉,内部结构图如下:
图3:TXS0108EPWR内部结构图
1.2.3. 三极管典型电路设计检查
另一种三极管电平转换电路如下图所示:
图4:电平转换参考电路
三极管电平转换电路优势在于设计灵活,成本低,但是转换速率会受到三极管导通速率限制,波特率建议低于460Kbps。
设计检查注意事项:1nF电容主要用于改善波形质量,加速三极管的导通,此电容最大建议值1nF,容值过大会导致串口无法正常通信。
1.2.4. 三极管电路典型案例
问题描述:某客户在使用模组过程中发现MCU和模组之间串口无法正常通信,反复排查没有发现问题原因。
测量模组MCU端TX引脚波形如下:
图5:MCU端TX波形
结论:从波形可以看出,MCU的TX波形第一帧数据波形已经出现问题,检查客户硬件发现原理图上1nF电容,实际焊接1uF电容(焊接问题实际测试过程中本身很难发现),更换会1nF电容,通信恢复正常。