从零开始:4G模组Air780EPM的串口电路设计及硬件指导!

news/2025/3/9 15:11:13/文章来源:https://www.cnblogs.com/luatos/p/18758170

串口作为Air780EPM模块的核心通信接口,承担着设备控制、数据传输及外设交互等关键功能,在物联网终端、智能设备、工业自动化等场景中不可或缺。

一、概述

串口作为 Air780EPM 模块最最主要的通信接口,承担着控制,数据传输,外设通信等重要功能。基本上绝大部分的 Cat.1 应用场景都会用到。而 Air780EPM 模块的串口特性和使用要求上与通常的 MCU 串口会有些不同,导致在第一次用 Air780EPM 模块做设计时容易踩到一些坑。

特别说明: Air780EPM 不支持AT指令操作,3 个 UART ( UART1 UART2 UART3) 仅用于 LuatOS 二次开发使用;

本文主要从硬件设计的角度,着重讲解串口设计中的一些关键注意点,软件开发方面不做深入探讨。

二、串口相关管脚

Air780EPM 支持 4 个串口,分别是主串口 UART1(MAIN_UART), UART2(AUX_UART)和UART3, 调试串口 UART0(DBG_UART)。对应的管脚如下:

三、功能描述

  • 主串口UART1: 模块的数据传输主要通过主串口 UART1 来实现,建议优先用主串口进行外部通信和模块控制。 主串口 UART1 有以下特性:

  • TTL 电平串口(Air780EPM 所有串口均为 TTL 电平串口),电平为 3.0V(默认)/1.8V电平。(两种串口电平选择,可以通过 PIN 100 管脚配置或者二次开发代码配置)。

  • 只有主串口支持模块休眠唤醒功能(LPUART)。Air780EPM 模块在休眠时,所有串口均为关闭状态,只有主串口支持接收串口数据唤醒模块。 注意,在非 9600 的其他波特率下,进行串口收发数据唤醒时,会丢失前几个字节。

待机状态下:高电平。

  • 扩展串口:

扩展串口 UART2 和 UART3 从硬件上的电气特性来说与主串口一样(但是不能支持休眠唤醒功能)。

  • 调试串口:

调试串口 UART0,用来输出模块的运行日志。 调试串口固定波特率 961200 不可更改,不建议连接任何外设,但建议设计时预留测试点。调试串口日志数据有专门的协议,如果用普通的串口工具抓取会显示乱码,只有用专用调试工具,如有需要请联系官方技术人员。 对于 openCPU 二次开发应用来说,调试串口可以配置为一般串口使用,但是要注意,即使配置为一般串口在开机时软件跑起来前的这段时间内,仍然会输出调试日志,这就有可能对外接的外设造成误动作。同理,将调试串口配置为 GPIO 使用时也会有这个问题。因此万不得已情况下不要使用调试串口做其他功能。

四、硬件设计指导

  • 串口的连接方式:

主串口的型号命名很容易让人联想到 RS232 标准的 DB9 接口,其实不然,模块的串口连接方式与标准 RS232 连接方式有所不同,如下是标准 RS232 串口连接方式,特点是交叉连接。

模块串口遵循的是早期贺氏(HAYES)公司制定的 MODEM 串口标准,在这个标准下,DTR,DSR,CTS,RTS 信号的功能有所不同。MODEM 串口标准标准下 DTR, DSR,CTS,RTS 采用的是直连方式,如下图

在逐渐的演变过程中,DCD ,DSR,RI 逐渐演变为其他的独立功能,在物联网串口应用中仅保留 T/RX 加流控管脚的 5 线串口的形式,但是 CTS ,RTS 的命名规则保留了下来,虽然 CTS/RTS 采用直连的方式,但是实际上模块的 CTS 管脚起到的功能是标准 RTS 功能;模块 RTS 管脚起到的功能是标准 CTS 功能。连接方式如下:

甚至流控管脚也不是必须,就变成了 3 线串口:

  • 串口的电平转换:

Air780EPM 的串口是 TTL 电平串口,TTL 电平串口会有输入输出判别门限,如下图。

同时,外接 MCU 或者外设的 TTL 电平串口同样有判别门限,一般来说,TTL 电平的判别门限高低取决于 IO 供电电平 VDD 的高低。如果串口双方的判别门限差别较大,一方的输出高电平落在对方的高电平判别门限下,就容易出现误判的现象,虽说 Air780EPM 可以通过 100 管脚来选择串口电平,但也仅有 1.8V 和 3.3V 两个档位,无法覆盖全部情况,在串口双方电平不一致的情况,就要增加电平转换电路来转换通信电平。

双方模块串口电平差别不大的情况:

例如,模块串口电平 3.3V, MCU 串口电平 3.0V。按照上图判别门限,模块的输入高判别门限为 0.7x3.3=2.32V,所以 MCU 串口高电平输出为 3V,高于模块的输入高判别门限,能够稳定判断。这种情况下即使 MCU 与模块的电平不一致,直接连接也不会造成通信问题。通常这种情况下,无需电平转换,只需要在窗口 TX RX 型号线上串联限流电阻即可,限流电阻用于减小串口电平不匹配造成的漏电,通常按经验串联 1K 电阻即可,注意串联电阻不宜过大,会影响串口型号的上升下降时间,从而影响串口信号质量。

注意:不要只看判别门限,还要考虑串口的耐压,即使落在判别门限内,但是一方高电平高于对方的 IO 耐压值的情况下就不能要串联电阻的方式,还是老老实实加串口电平转换。一般来说双方的电平差不宜超过 0.5V

晶体管的电平转方案:

在串口波特率不高的情况下(如 115200),可以通过 NPN 晶体管的方式进行电平转换,参考设计如下图,这种方式的优点:成本低; 劣势:低电平下会被三极管的饱和管压降抬高(通常在 0.1v 左右,不影响通信);开关速度不够,超过 460800 波特率时不建议用这种方式。

设计注意:

  • 模块RXD上拉电源选择,上图选择AGPIO做上拉而没有选择VDD_EXT电源做上拉,是因为VDD_EXT在模块休眠时会关闭,会导致RXD上产生一个低电平,又由于主串口支持休眠唤醒,就导致这个低电平让串口产生中断将模块唤醒,最终导致模块无法休眠。所以在需要休眠的应用设计上,禁止用VDD_EXT电源上拉串口。

  • 三极管的基极要用较低电平的一方参考电平来上拉,否则容易找出三级管不能完截止。

  • RXD和TXD的上拉电阻在不影响信号质量的情况下尽量加大,一方面是降低休眠功耗,一方面是降低AGPIO的驱动负荷(Air780EPM所有AGPIO共享5mA最大驱动电流)。

对于三极管选型并没有严格要求,通用的3904NPN三极管都能满足要求

  • 电平转换芯片方案:

电平转换芯片,对成本不敏感的话,优先考虑用电平转换芯片,无论速度,可靠性都很完美。对于设计方面只要注意芯片选型,同时模块端参考电平注意用 AGPIO3,其他的参考具体芯片参考设计即可,没有太多注意事项。

考虑到电平转换芯片价格与通道数量成正相关,也可以采用 TX RX 用双通道电平转换芯片,其他流控信号用晶体管或者分压方式来做电平转换。兼顾性能和成本。

电平转换芯片选型:

  • TXS0102/TXS0104/TXS0108系列,2/4/8通道,品牌TI

  • RS0102/RS0104/RS0108系列,2/4/8通道,品牌润石

  • SGM4553 , 双通道,品牌圣邦威

五、总结

虽然串口这个硬件总线原理简单,速率低速,设计也不复杂,但是对于 Cat.1 通信系统尤其是低功耗物联网应用,串口的设计就会牵涉到休眠和功耗,因此在设计中还是要有足够的重视。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/895941.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验1C语言开发环境使用和数据类型,运算符,表达式

实验1 task1.c 代码:#include <stdio.h> #include <stdlib.h> int main() {printf(" O \n");printf("<H>\n");printf(" I \n");printf(" O \n");printf("<H>\n");printf(" I \n");syste…

python44页图

红色五角星 from turtle import * fillcolor("red") begin_fill() while True:forward(200)right(144)if abs(pos())<1:break end_fill() 太阳花 from turtle import* color(red,yello) begin_fill() while True:forward(200)left(170)if abs(pos())<1:break e…

ChatBI≠NL2SQL:关于问数,聊聊我踩过的坑和一点感悟

"如果说数据是新时代的石油,智能问数就是能让普通人也能操作的智能钻井平台。"这里是**AI粉嫩特攻队!** ,这段时间真的太忙了,不过放心,关于从零打造AI工具的coze实操下篇正在进行中。今天,我们先聊聊另一个很热闹的主题——ChatBI。 还记得那些陷入Excel地狱的…

DP dynamic programming

DP (Dynamic Programming)动态规划常用模型 背包 01背包问题描述:有N个物体,容量为v的背包,每个物品有两个属性体积V和价值W 每件物品只能用一次 背包能装得下的情况下,背包里的价值最大是多少? 完全背包 每件物品有无限个多重背包 每个物品最多有si个 分组背包 物品…

普通人别老想搞独立游戏开发,先做小产品试试吧

前段时间和几个老朋友吃饭,有个老哥酒喝多人给我说他一直有一个梦想,就说做一款独立游戏然后上线,现在准备开始行动了怎么怎么,最后我们扯了很久.....成功劝退了老哥😓。 一、独立游戏开发:英雄主义的代价,普通人的绝路成本高到离谱:从“用爱发电”到“家破人亡”人力…

PTE Hook及x64分页机制的研究

什么是PTE Hook 常规的inlineHook思路是直接修改目标函数的代码,使其先执行我们自己的函数,再跳转回来执行原函数。这种Hook是全局的,即Windows中每一个进程一旦调用被Hook的函数,就会受到我们的影响,也很容易被PatchGuard检查到。 因此提出一种新的Hook思路,隔离具体进程…

.net core/IIS/Kestrel 大文件上传大小设置

MultipartBodyLengthLimit 设置每个多部分正文的长度限制。 分析超出此限制的窗体部分时,会引发 InvalidDataException。 默认值为 134,217,728 (128 MB)。 使用 MultipartBodyLengthLimit 中的 Startup.ConfigureServices 设置自定义此限制:public void ConfigureServices(I…

RHEL8操作系统安装方法

目录第一步:打开VMware软件,创建我们的虚拟机(也就是创建一台虚拟的电脑)第二步 载入rhel8版本的iso文件,进行操作系统的安装 第一步:打开VMware软件,创建我们的虚拟机(也就是创建一台虚拟的电脑)说明:这里使用的是NAT网络模式,可以上网,这三种网络的模式讲解可以看…

关于USB声卡导致windows无法自动关闭屏幕或休眠的案例

问题描述:本人买了一台漫步者S880MKII使用自带的type-C线插到笔记本上后,win11系统的超时息屏和超时睡眠功能失效。解决方法:打开设备管理器(图1) 找到以下输出设备,点击事件查看到类似“VID_20B1”信息的设备 (图2) 禁用设备(图3)至此,睡眠功能恢复正常。 注:有副…

P1219 [USACO1.5] 八皇后 Checker Challenge

题目描述 一个如下的 $6 \times 6$ 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 $2\ 4\ 6\ 1\ 3\ 5$ 来描述,第 $i$ 个数字表示在第 $i$ 行的相应位置有一个棋子,…