CH9434 串口可以接收数据,不能发送数据

配置:波特率:115200、接收FIFO触发256字节、FIFO使能、

问题:接收数据正确:接收指示灯闪烁并且接收数据正确;调用 CH9434UARTxSetTxFIFOData()子程序,每1S间隔发送3个字节数据,发送数据指示灯不闪烁,没有数据发出;

现象:使用示波器测试SPI发送数据正确,在每一次发送数据时,会读取FIFO写计数器长度,长度按照 X-3 规律进行;

请问各位大佬,这会是什么问题?

您好这样的情况建议直接测量9434的TX上有没有实际的波形,同时往发送FIFO填送数据时, 可以读取下LSR寄存器的状态


配置:波特率:9600、使用linux RK3568

问题:1.ch9434 串口不能接收数据

           2.ch9434 串口发送数据 有个别字节 高位/低位与写入寄存器的不一致

现象:1.驱动中断 未调用成功

           2.例:芯片发送 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15

                     串口调试助手会收到 31 32 B3 04 05 06 07 0A 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 E5

请问各位大佬,这会是什么问题?



楼上问题已通过其他平台沟通解决


TX上没有实际的波形,同时往发送FIFO填送数据时, 读取LSR寄存器 = 0x00

但是 测试SPI发送数据是正确的,9434初始化、端口初始化是按照咱们提供的示例程序


串口是否有转485信号,如果有,需要使能TNOW引脚,还有可以将目前串口初始化部分的代码贴出看下


1、主控芯片发送 3字节/秒 ,示波器在9434芯片的TXD没有检测到信号;

2、使能TNOW后,端口485没有输出信号;

3、串口初始化内容如下:示例程序在附件中

(1)初始化芯片电源时钟寄存器0x48:使用外部晶振并开启倍频、分屏系数13(11001101b);
(2)初始化串口配置:

        ◆LCR:8个数据位、1个停止位、无校验位、(00000011b);

        ◆DLM:DLL:[ ((32M*15/13)*10/8/115200)+5]/10 = 40(0x00 0x28);

        ◆FCR:接收FIFO触发字节256B、接收FIFO清空、发送FIFO清空、FIFO使能(00000111b);

        ◆MCR:AFE使能、OUT2中断使能、RTS使能中断、DTR使能(xx101011b);

        ◆IER:线路中断使能、发送中断使能、接收终端使能(00000111b);

4、循环发送 3个字节/秒;

icon_rar.gifCH9434.zip



首先第一点,串口初始化部分,流控使能全部关掉,不管是单穿的串口还是转485,都不需要开启流控使能,这个是针对232串口功能的,会影响串口的发送,至于TNOW引脚,建议先去掉485,单独调试9434的TTL串口是否正常,正常后再连接上硬件开启tnow使能调试485


程序循环逻辑:接收到的字节内容 后将接收数据发送回PC端;
问题:
1、串口0接收发送数据正常、同样的串口初始化配置,串口1接收1次数据后,INT端口输出低电平,一直有接收中断产生;
2、按照初始化串口0的配置,同样初始化串口2、3之后,接收数据后返回数据有乱码,例如:

接收数据(十六进制):AA、CC、55、BB
返回数据(十六进制):AA、0E、0E、CC、0E、0E、55、0E、0E、BB、0E、0E



循环发送,是否是串口的TXRX相互短接,串口1一直有中断,可以看下RX引脚是否有电平变化,说明一直有数据进来,另外后续回复可以联系xcc@wch.cn邮箱


只有登录才能回复,可以选择微信账号登录