| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 基于瑞芯微RV1109 Linux串口驱动调试心得(给正点原子DS100示波器点赞!) -> 正文阅读 |
|
[系统运维]基于瑞芯微RV1109 Linux串口驱动调试心得(给正点原子DS100示波器点赞!) |
点击上方「嵌入式云IOT技术圈」,选择「置顶公众号」第一时间查看嵌入式笔记!在调试的时候发现板厂供应商调整了RK原厂的原理图设计,然后他们把串口5原来的M0的连接换成了另一路IO M1,也就是说他们并没有按照原厂的原理图去设计,所以UART5根本动不起来,由于好久没搞驱动了,对驱动也不熟,所以只能硬着头皮追代码、上示波器、上逻辑分析仪调试等等,走了很多弯路,最后终于把问题给找出来了,在此记录一下调试过程。 1、关于uart5节点pinctrl配置的描述
我的电路原理图是这样的: 看到如上原理图的标识,我们很容易就知道pinctrl配置的IO是什么:
也就是上面定义的这个节点。 2、原厂默认配置的uart5节点的配置描述原厂 关于
驱动会根据以下的aliase,来对应串口编号,比如serial0最后会在/dev/目录下生成ttyS0,其它以此类推: 关于
这个配置一般来说是原厂的一个默认的参数配置,然后我们只需要找到板厂的dts将节点的状态设置为okay,那么这个驱动一般来说就可以使用了。 3、板厂端开启串口功能3.1、基于中断收发的串口配置默认情况下,配置的串口是基于中断方式的。 在xxx.dts(你自己板子的dts配置)中添加你的端口使能:
一般情况下,串口不需要硬件流控来进行控制,所以可以将上面的这个节点简化为如下:
其中
这部分一定要和硬件原理图对应好,确保配置正确,否则串口很可能工作不正常,配置完毕后如果串口没有开DMA的时候,在使用这个串口驱动的时候可能会看到如下信息: 但并不影响正常使用,报这个错的原因是因为没有配置dma的端口。 3.2、基于dma方式配置这部分参考原厂的UART文档的: 如果要配置成DMA的方式,那么DTS要做如下的修改:
这里的DMAC通道号需要通过手册来查找 4、串口驱动调试4.1、查看开机是否有串口驱动加载信息调试指令如下:
可以看到: 4.2、查看串口pinctrl的占用情况调试指令如下:
如上,这里的ff5a0000指的是设备树节点的标识: 可以看到: 打出来的信息会告诉你,当前你的串口的发送、接收以及硬件流控的引脚接在CPU管脚的哪个位置,如上所示,我的串口收发引脚分别接在 4.3、查看串口时钟调试指令如下:
可以看到: 这个时钟频率就是设备树里配置的时钟频率,如下: 波特率 = 时钟源 / 16 / DIV,DIV是分频系数。 我这边的时钟默认分频系数为1,所以DIV为1,根据以上计算公式,可计算得到波特率为: 波特率 = 24000000 / 16 / 1 = 1500000 4.4、测试串口是否收发正常我们可以借助busybox的stty工具来进行设置,接下来我们将串口波特率为115200: 接下来用串口调试助手进行收发测试: 测试双向发送和接收成功!驱动调试完成!下班鸟!秀一下调试过程中用正点原子DS100示波器打出来的时序图,此处一定要推荐下正点原子的DS100示波器,要是没有它,估计我不能下午6点半按时下班了吧! 往期精彩如何添加APP到Buildroot里(以瑞芯微rv1126为例) 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得 Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一) Linux MIPI DSI驱动调试笔记-LCD时序参数配置(三) Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二) 瑞芯微RV1109配置GPIO设备树修改笔记(熟悉新平台从点灯大法开始) 新产品立项了,作为嵌入式软件工程师该如何来开展设计工作?(个人经验分享) 觉得本次分享的文章对您有帮助,随手点 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 11:39:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |