使用的测试软件是rdk自带的rs485_test。
发送数据到PC是可以的,但无法接收到数据,一个字节都收不到,经查原因是处于接收状态时并没有产生中断,即中断处理函数serial_omap_irq始终没有执行,在发送状态中断可以正常产生。
另外一种情况是在uboot命令行执行autotest中的485检测功能收发都正常通过,说明相关硬件是没问题的。
所以我想问问内核代码中是否需要做什么修改才能让接收时产生中断?
map dog:
回复 Ray Zheng:
请问485 的复用要怎么设置
我是这样设置的
omap_mux_init_signal("uart0_dtrn.uart1_txd_mux0", 0x4); omap_mux_init_signal("uart0_rin.uart1_rxd_mux0 ", 0x4); omap_mux_init_signal("gmii0_txd5.uart1_rxd_mux1", 0x20); omap_mux_init_signal("gmii0_txd6.uart1_txd_mux1 ", 0x20); omap_mux_init_signal("gmii0_txd7.uart1_ctsn",0x20); omap_mux_init_signal("gmii0_txen.uart1_rtsn ",0x20);
但是txd6和txen的模式都没有设置成功,其他的都设置成功了
还请望指教!!!!!
Ray Zheng:
回复 map dog:
没这么复杂,只简单的把控制收发方向的GPIO功能打开就可以了,一行代码就可以解决:
omap_mux_init_signal("gpio1_1", TI814X_PIN_OUTPUT_PULL_DOWN); //我们用GPIO1_1控制收发方向
map dog:
回复 Ray Zheng:
我试了一下也不行,觉得是cts这个复用没有打开导致收不了数据,但是怎么设置都是pulldown和模式0,请问怎么设置成pullup模式5呢?????
map dog:
回复 map dog:
我试了一下也不行,觉得是rts这个复用没有打开导致收不了数据,但是怎么设置都是pulldown和模式0,请问怎么设置成pullup模式5呢?????
Yan Lu:
回复 map dog:
0x48140910这个寄存器的值改为0x80就可以了
chenkai chen:
回复 Ray Zheng:
请问这个函数是在应用层还是内核中,那么在内核中又是哪一个文件哎,我现在遇到的问题就是不知道怎么去控制GIO88号引脚让他输出高低电平。请你解答一下,我使用的平台 是DM368