搜索
bottom↓
回复: 2

新塘nuc972 uart2 RS485自动方向控制的BUG及解决方法

[复制链接]

出0入0汤圆

发表于 2020-3-4 15:51:16 | 显示全部楼层 |阅读模式
新塘nuc972 uart2 RS485自动方向控制的BUG及解决方法
先说结论:
Nuc970 UART2 485自动方向控制功能在nuc970bsp-release-20160511包中无法使用
将linux/drivers/tty/serial/nuc970-serial.c文件中的
#elif defined (CONFIG_NUC970_UART2_PF_FC) 修改为
#elif defined (CONFIG_NUC970_UART2_ FC _PF)即可
不清楚新塘后面的bsp包有没有修正该功能,在此提醒各位。

感谢redworlf007和wangwenxue,经常看你们的关于新塘 nuc972 Linux的帖子,收获颇丰,继续向你们学习。
以下是过程,大神请略过。
1、Nuc972串口支持RS485自动方向控制功能,该功能在串口发送的时候自动控制RTS的方向引脚,通过在linux的串口配置中,可以选择相应的引脚模式。

2、该模式的选择会在menuconfig退出的时候,生产autoconfig.h文件,该文件在includegeneratedautoconf.h中会配置相应的预定义条件。

3、在nuc970-serial.c文件nuc970serial_pinctrl函数中,会读取该预定义用于对串口引脚的初始化
需要将#elif defined (CONFIG_NUC970_UART2_PF_FC) 修改为#elif defined (CONFIG_NUC970_UART2_ FC _PF)

根据不同的配置选择初始化不同的引脚,该函数会调用drviers/pinctrl/pinctrl-nuc970.c中的nuc970_enable函数
在该函数中,根据传入的引脚功能组配置不同的引脚功能,直接修改寄存器配置具体过程如下
3.1、nuc970_pinctrl_probe函数向平台注册了nuc970_pinmap数组结构,且注册了设备描述结构体。


3.2、在nuc970_pinmap结构中有对于具体功能的描述

注意这里的.name就是serical-nuc970.c文件中的传递参数值
3.3、在nuc970_pinmap结构体中描述了组成uart2_fc功能的引脚组由2个uart2_0_grp和uart2_1_grp,并通过nuc970_pinctrl_groups数组

3.4、查看nuc972数据手册,寄存器设置相关部分

3.5、该结构体中.pins最后根据相应的数组,查找到了具体的某一个引脚

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2020-3-4 16:00:29 | 显示全部楼层
已阅 紫薯布丁

出0入4汤圆

发表于 2020-3-4 22:08:53 | 显示全部楼层
留个脚印!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 14:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表