打印
[其他芯片]

CH9434调试问题求助

[复制链接]
4182|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 通宵敲代码 于 2021-5-7 16:07 编辑

公司项目因为外接传感器太多,导致串口不够用,
所以通过SPI接了一片CH9434外扩了四路串口,
参考沁恒官方的资料做了代码移植,

主控芯片是STM32H7,目前测试SPI驱动芯片应该是正常的,
四路串口配置均为波特率115200,数据8位,停止1位,无校验和,开始FIFO,关闭流控;
上电初始化CH9434后,四路串口均能正常输出调试信息,也就是说串口输出是没问题的,如下图


但是通过外接串口往CH9434的串口发送数据,在RX引脚上输入的信号是正常的,通过SPI读到的却是乱码,如下图


而且只要给串口发送一次数据,CH9434的中断引脚就会一直拉低,手册上给的读取LSR清中断的办法不起作用


下图是设备没法清中断时各个串口寄存器的状态




总结一下现在遇到的问题:
1、上电正常配置CH9434,SPI写入串口发送数据正常,串口接收通过SPI读取数据会乱码,四个通道都是这样;
2、串口接收到数据之后会一直触发CH9434中断引脚输出,手册上给的读取LSR寄存器清中断的方法不起作用;





使用特权

评论回复
沙发
通宵敲代码|  楼主 | 2021-5-7 16:08 | 只看该作者
@WCHTech2 有时间帮忙指点一二啊,有劳了

使用特权

评论回复
板凳
weifeng90| | 2021-5-7 19:13 | 只看该作者
以前用过NXP的一款SPI括4串口的芯片,也是调试了很久,才算把代码搞稳定。

使用特权

评论回复
地板
WCHTech2| | 2021-5-7 20:12 | 只看该作者
您好,方便用示波器或者逻辑分析仪抓一下9434串口RX端的串口数据波形,可能是一直触发break信号了。
正常串口数据接收过程如下:
1、CH9434先将数据存储在FIFO中,当达到FIFO触发位时,产生一个接收数据可用中断
2、当FIFO数据没有达到触发位时,且等待4个数据时间没有接收到数据,则产生一个接收数据超时中断
3、只有以上两个中断可以通过SPI读取9434串口接收的数据。

使用特权

评论回复
5
单片小菜| | 2021-5-7 22:43 | 只看该作者
需要进行评估一下,示波器看看波形如何?

使用特权

评论回复
6
嵌入小菜菜| | 2021-5-7 23:46 | 只看该作者
持续关注中,不错的帖子。

使用特权

评论回复
7
通宵敲代码|  楼主 | 2021-5-8 08:53 | 只看该作者
本帖最后由 通宵敲代码 于 2021-5-8 08:54 编辑
WCHTech2 发表于 2021-5-7 20:12
您好,方便用示波器或者逻辑分析仪抓一下9434串口RX端的串口数据波形,可能是一直触发break信号了。
正常串 ...

串口这一段的数据应该是没问题的,测试发送的是数字“1234567890”,如下图



接收数据第一行是上电通过CH9434串口输出的数据,是正常的,
第二行是发送“1234567890”后,通过CH9434重新发回来的数据,
我确认过在CH9434的SPI那一端读取到的FIFO数据就是错误的了

这是在CH9434芯片的RX端抓取的数据,发送的数字“1234567890”


这是通过逻辑分析仪抓取的RX端的数据,同样是发送的“1234567890”




使用特权

评论回复
评论
通宵敲代码 2021-5-8 09:26 回复TA
@WCHTech2 :联系了,等着加微信沟通呢,谢谢了 
WCHTech2 2021-5-8 09:21 回复TA
您好,可以直接联系技术支持:025-52638375 
8
通宵敲代码|  楼主 | 2021-5-12 15:43 | 只看该作者
CH9434调试问题,目前咨询原厂技术,申请了原厂的开发板测试,目前问题依然没解决,还是集中在下面两点,1、往CH9434的RX脚发送数据,通过SPI读出来之后是乱码;
2、只要往往RX脚发送过数据,就一直触发接收线路状态中断,而且清不掉;

所有的寄存器配置数据全部核对过,也读出来确认过,能想到的测试方法也试了,
鉴于问题出现在CH9434芯片内部,也不好排查,决定放弃这个方案,
大家引以为鉴了



使用特权

评论回复
9
WCHTech2| | 2021-5-12 21:27 | 只看该作者
通宵敲代码 发表于 2021-5-12 15:43
CH9434调试问题,目前咨询原厂技术,申请了原厂的开发板测试,目前问题依然没解决,还是集中在下面两点,1 ...

您好,原厂的技术已将STM32F103的参考代码发您,可正常运行,对照着检测您的代码即可,如有问题可咨询原厂技术:025-52638375

使用特权

评论回复
评论
通宵敲代码 2021-5-13 17:47 回复TA
已经找到问题了,多谢了 
10
通宵敲代码|  楼主 | 2021-5-13 17:53 | 只看该作者
本帖最后由 通宵敲代码 于 2021-5-13 17:55 编辑

通过对比原厂提供的CH32F103得代码,在野火指南者F103板子上移植CH9434程序进行测试,

逐行对比初始化程序及CH9434寄存器状态,
在发现在SPI接口的MISO引脚配置为上拉模式时问题出现,
而MISO引脚浮空作者配置为下拉模式不存在此问题,
遂对H743芯片的SPI接口的MISO单独处理,问题解决。


附上CH9434在野火指南者STM32F103VET6上的移植及程序
野火_指南者原理图_2020-05-06.pdf (191.63 KB)
CH9434M_STM32_YeHuo.zip (3.52 MB)

感谢原厂的支持

使用特权

评论回复
11
ningkq| | 2022-8-14 13:45 | 只看该作者
使用这个芯片做 Modbus RTU 特别简单,因为3.5字符问题硬件已经帮你解决了,只需要收到指令发出应答就可以了

使用特权

评论回复
12
ningkq| | 2022-8-14 14:18 | 只看该作者
其实国内厂商的产品也都不错,就是这个例程太简陋了,不详细,需要花不少时间去探索,比如说这个中断,时有时无的,让人摸不着头脑

使用特权

评论回复
13
〽️〽️〽️| | 2022-10-25 13:50 | 只看该作者
谢谢,看了楼主参考代码,有帮助解决我的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:年轻不是资本,奋斗才是良策!

302

主题

7539

帖子

69

粉丝