使用文章目录第一memtool工具1 .工具目录2.pin脚配置3 .数据手册对应章节GPIO时,其内部网络参考第二调试问题:485收发切换延迟问题第三UART接收的噪声进行数据第四UART
使用第一个memtool工具1 .工具目录/unit_tests/memtool
2 .常用于更改寄存器,例如PIN脚配置root @ imx 6u ll 14 x 14 evk :~./unit _ tests/memtooliomuxc.SW _ pad _ CTL _ pad _ UART4_ rx _ data.SOC : I.MX6ulliomuxcaddr 33600 x 20 e 0000 IOM uxc.SW _ pad 652000 art4_rx_data.sre(0.0) () ) ) ) 33600 x1 selectoneoutofnextvaluesforpad : UART4_ rx _ ddata outofnextvaluesforpad : UART4_ rx _ dataiomuxc.SW _ pad _ CTL _ pad _ UART4_ rx _ data.speed 33600 x2 selectoneououu TL _ pad _ UART4_ rx _ data.ode (33600 x0 selectoneoutofnextvaluesforpad 3360 UART4_ rx _ dataiomuxc.SW _ pad _ cttad esforpad : UART4_ rx _ dataiomuxc.SW _ pad _ CTL _ pad _ UART4_ rx _ data.PUE (33600 x1 selectoneoutofnextvalueluere x _ data.pus (33600 x2 selectoneoutofnextvaluesforpad 3360 UART4_ rx _ dataiomuxc.SW _ pad _ CTL _ pad _ u u u rx4) art4_rx_data3.支持的数据手册章节32.6.176 SW _ pad _ CTL _ pad _ art4_ rx _ data pad _ CTL _ pad _ rt4_ rx _ DD
第二调试问题:485发送接收切换延迟问题我们的解决方案:
添加一个TCdrain(FD )//初始化串行软盘=open(/dev/ttys1 ),O_RDWR | O_NOCTTY ); init_serial(FD,9600,8,1,' n ' ); set_485_dir(low; //默认为接收状态//发送数据set_485_dir(high ); write(FD,buf,sizeof ) buf ); TC drain (软盘; //此语句的判断时间不准确,约为10-20msset_485_dir(low ); //接收数据read (; 虽然是网络解决方案,但:没有得到验证
3359 blog.csdn.net/chasing _ chasing/article/details/94398560
33559 www.cn blogs.com/leisure _ CHN/p/10381616.html后,经过客户的问题反馈,这样处理还是会出现问题。
拓扑图:
云服务
|
|
|
m2m--------485---------客户设备
测试过程:
1 .服务器发现M2M连接
2 .服务器发送M2M 1字节的命令
3.m1通过485传输到客户终端
4、终端响应31字节的数据
5 .通过m2m传递到服务器
6 .服务器发送1字节命令
7 .当以m2m传输到客户终端时,终端响应于1029字节的数据
8 .此时,由于M2m的收发切换,在未进入接收模式之前,客户端开始传输数据,之前的数据丢失
发送一字节的
第三UART接收噪声,在数据被识别为在IMX6ULL平台上,串行端口遇到接收数据的异常的情况下,具体说明如下
外部连接到IMX6ULL串行端口的设备在休眠时会从外部设备发出噪声,并被示波器捕获。 该波形为低电平,约40~50us。
通信中使用的波特率为9600bps、8N1。 在imx 6u ll APP应用程序侧读取串行数据时,立即接收到0xFF的数据。
对于问题:9600bps,理论上起始位为104us,该噪声不足以识别为开始位。 为什么串行端口检测到0xFF,并一直收到? 此问题可使用GPIO模拟外部设备的传输来重构:
1.APP应用程序使用minicom读取串行数据,命令使用: minicom-w-h-d/dev/tty mxc3- b 9600
2 .使用一个GPIO引脚模拟外部设备发送的噪声,在硬件上连接此GPIO和RX。
控制GPIO将每3s输出40~50us的低电平到串行端口的RX .测试代码放入附件。
刚打开打印寄存器:串行端口有00个数据时,寄存器异常:9433600 x 2440、98:0x408c触发异常后的寄存器:9433600x2410、98:0x408d、…
这个问题应该是由控制器识别的问题引起的,最后提交给nxp论坛也没有解决。
最后,是让客户处理输出的噪声。
第四个UART接收到的数据丢失问题通过示波器比较测试波形,结果显示外部RS232线与我们设备连接时、未连接时还是不同的,原来是-5v的波形,连接后变成-1v等
比较结果怀疑是ESD设备的影响,将其消除后恢复正常。
随后发现,与以前的版本相比,硬件更换了ESD设备。