我现在手头有一块BeagleBone,SDK用的是TI SDK6.0,最近想测试一下串口功能,但在使用中发现虽然驱动已经成功生成了6个设备结点,但除了串口0(做了console)之外,其它都没有输出啊(用示波器抓过)?程序中打开、配置及发送数据显示都是正常的,我怀疑是不是引脚没有找对?但我看了驱动,好像也没有做UART的PINMUX啊?我目前的引脚是按照BB的原理图连接的。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我现在手头有一块BeagleBone,SDK用的是TI SDK6.0,最近想测试一下串口功能,但在使用中发现虽然驱动已经成功生成了6个设备结点,但除了串口0(做了console)之外,其它都没有输出啊(用示波器抓过)?程序中打开、配置及发送数据显示都是正常的,我怀疑是不是引脚没有找对?但我看了驱动,好像也没有做UART的PINMUX啊?我目前的引脚是按照BB的原理图连接的。
如果pinmux没做的话,这部分需要你修改代码去使能。增加pinmux后,调试可以成功吗?
确实是PINMUX没做的问题,我在BB设备初始化列表中加了uart的PINMUX就好了。
但是我还是有一点疑问,理论上am335x的引脚初始化模式应该是在$KERNEL_DIR/arch/arm/mach-omap2/mux33xx.c里面统一配置成的mode0,而我想用的UART1的相关引脚都是mode0,为什么还需要重新配置呢?
你看到的mux33xx.c里面只是一些定义而已,真正的初始化实现需要你跟代码看board-am335xevm.c文件,是不是在这里面并未进行配置。而且即使是配置了,后面会不会又被改了,因为这几个管脚还有其他的复用模式。跟代码就能找到源头了。