• 智芯微801核心板外设驱动调试经验汇总--每天加一点


    目录

    1、背景

    2、裕太YT8512

    3、EC20芯片

    4、仁珏lora模块


    1、背景

    外设有裕太YT8512/8521 phy芯片、4G模块EC20芯片、仁珏lora 470和2.4G模块....

    2、裕太YT8512

    板子一开始处于单机状态,唯一和外界通信的是调试串口。调试的首要目标是要么能传东西到板子中,要么板子能联网下东西。前者要求网口能通(网线连电脑),后者要求4G模块能通。当然,将网口接到能联网的路由器上就一步到位了。

    第一步:uboot自动识别板子上有多少个网口,ifconfig便生成多少个网卡,如eth0、eth1等等。其实我也不清楚哪个网卡名对应哪个网口。那么都试试吧。给某个网卡配置了ip之后,看能不能ping通。不通是吗,换一个网卡名试试。

    第二步:如果所有网卡名都试过了全不通,那么敲dmesg看看网卡名生成的log,有没有error报错

    第三步:如果没有error,

    3、EC20芯片

    AT命令:

    ati
    AT+CPIN?                              ----+CPIN: READY
    AT+COPS?                          ----+COPS: 0,0,"CHN-UNICOM",7
    at+qeng="servingcell"              ---+QENG: "servingcell","NOCONN","LTE","FDD",460,01,59C5223,435,1650,3,5,5,510E,-67,-5,-41,30,60

    在一块板子上ppp能通,可是将系统的内核镜像(这里只选了PPP,其他和ppp相关的配置没有选中)、相同的原始文件系统烧到另一块板子上,ppp报错:

    Couldn't set tty to PPP discipline: Invalid argument

    网上的解决方案是内核配置增加ppp,可是我的/dev目录下有ppp,内核也配置了ppp。说明内核配置了ppp。后来把第一块板子的文件系统导出,烧录到第二块上,结果奇迹般得ppp拨号成功了!我也是醉了。

    我建议把所有和ppp相关的配置都选中,如下图所示:

    虽然我建议如此,但是我依然认为上述报错和ppp的相关配置没有关系。

    4、仁珏lora模块

    我们手上有3种模块:TS-47S、TS-47A、TS-24A。TS-47S和TS-47A都是470MHz的模块,TS-24A是2.4G的。每个模块的AT命令有差别(这里只贴出查询类命令):

    TS-47S:
    AT+MCFG?\r\n       +MCFG=0,0,70,1,0,30,0,0,0,101      
    AT+MSTAT?\r\n      +MSTAT=0,0,0,0,0
    AT+MID?\r\n        +MID=000000000001,1

    TS-47A:
    AT+MCFG? \r\n

    TS-24A:
    AT+MCFG? \r\n        +MCFG=1,0,0,60000,10,0,5,1,1,150,150,60318
    AT+NLIST?\r\n        +NLIST=000128200001,74
    AT+NCFG?000000000001\r\n    000000000001是入网设备ID        +NCFG=000000000001,0,0,0,0,0,0,0,0,0,1
    AT+WLIST?\r\n
    AT+BLIST?\r\n
    AT+RST= DD\r\n

    busy microcom和minicom是linux的串口调试工具,如果通过它们无法向某个UART口发送AT指令,那么从以下几个方面排查:

    (1)看看设置的串口波特率对不对,只有和模块一致的波特率,AT的操作和回显才是对的。

    (2)cpu的UART口能用吗?

    minicom打开串口,发送任意字符串,用示波器测其TX对地有没有波形输出,有则表示cpu的uart口可用。至于波形是否正确需要后续仔细分析;

    (3)lora模块坏了吗?

    如果担心cpu接lora模块的中间电路对定位结果有影响,有两个方向可以探索:

    一是先将lora对外电路断开,引出其TX RX VDD和GND,通过TTL转USB模块,接到pc电脑上,用windows的串口调试助手,往该串口上发AT指令。

    如果没有回显或者有乱码,再用示波器测试pc发给模块的TX引脚的波形,如果有,再测RX的波形。

    二是lora模块有reset引脚,用金属物手动触发模块复位,看看模块的TX有没有波形输出。

    上述方法基本定位lora模块是否正常。

    (3)如果前三个方向都没出现问题。

    那么看看模块和cpu间的电路有没有问题。这个电路很简单一般不会出错。

    如果是还没发现问题,可能和时序和波形有关了,要分析具体的输出波形了:通过电压的高低电平读出具体的01值,再结合波特率,看看和实际的AT命令字符是否一致。

  • 相关阅读:
    学生花卉网网页设计作品 学生鲜花网页模板 简单在线花店主页成品 鲜花网页制作 HTML学生花店商城网站作业设计
    RocketMQ—RocketMQ发送同步、异步、单向、延迟、批量、顺序、批量消息、带标签消息
    【乳腺超声、乳腺钼靶、宫颈癌】等项目数据调研,及相关参考内容整理汇总
    Forescout宣布任命Rik Ferguson为安全情报副总裁
    【JavaEE初阶】文件操作 和 IO (下篇)
    Spire.PDF for .NET【文档操作】演示:动态创建 PDF 并将其发送到客户端浏览器
    【C】指针初阶
    分布式数据库系统实验五
    java-php-python-日常办公管理系统计算机毕业设计
    【Java 基础篇】Java Set 集合详解:轻松管理不重复元素
  • 原文地址:https://blog.csdn.net/hannibaychty/article/details/125428046