运行的是mistral的UART_0程序,基础之上我修改了一下,增加了UART0的引脚复用设置,和UART0的时钟设置截图如下,程序正常运行,但是串口没有数据打印
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.
Chi Xiaoyan,
是否有尝试过DM8148_EVM.gel里面的ALL_ADPLL_CLOCKS_ENABLE_API(),UARTClkEnable()脚本?
运行UARTClkEnable()没问题,运行ALL_ADPLL_CLOCKS_ENABLE_API()时会卡在USB_PLL,我把gel里的USB_PLL移出来,
运行发现卡在while (( (RD_MEM_32(Base_Address+STATUS)) & 0x00000600) != 0x00000600);
相应的寄存器USBPLL_STATUS Register读到的值是0xE0000121
Chi Xiaoyan,
你是在你自己的板子上测试的,对么?
你使用的仿真器是什么型号?仿真器的速度可以降低么?
去掉USB PLL这部分代码后,UART可以正常运行么?
XDS510PLUS,我把速度降到2M,去掉USB_PLL,ALL_ADPLL运行通过,UART仍然不能运行
Chi Xiaoyan,
会否是外围电路有问题?能否测量一下uart0的TX引脚是否有输出?
如果没有信号输出,能否换成其他UART口测试一下?
UART0引脚是直接引到外部应该没有问题,TX始终高电平没信号。我移到UART2之后就可以发送数据,正常运行。什么原因呢?
程序一样的,引脚定义我也改了,用UART2就可以正常运行,UART0外设不工作,还有什么需要设置的吗?难道跟UART0是做boot启动的原因?很费解
Chi Xiaoyan,
能不能在其他板子上也同样测试一下,看看是否是单板的问题?
能否检查一下原理图/pcb,看信号线接的是否正确?
对了,我之前配置UART0的TX,RX引脚上拉,下拉,都没问题,感觉应该不是板子线路问题
Chi Xiaoyan,
板子如果配置为串口启动,上电后,串口有CCC打印么?
配置了BOOTMODE= 00001,没有打印ccc,什么都没有打印,而且发现UART2虽然可以打印,但是波特率只有大概十分之一,按照115200配置的,x16UART,DLL配置0x26,用示波器量出实际波特率大概为11764
算了一下UART2的总线时钟48M实际大概只有4M,UART4的总线时钟192M实际只有20M,都差了10倍左右,应该是时钟配置的有问题?但是我的gel实在TI官网下载的啊?
xiaoyan Chi 说:配置了BOOTMODE= 00001,没有打印ccc,什么都没有打印
请问你板子上的系统时钟是否输出正常?频率是否为20M?
uart 启动时候是rom里面的代码来配置uart0的,和你的软件没有关系,先把这个弄对了。你能否测量一下uart0的TX输出引脚?
Chi Xiaoyan,
我没有说你配置的启动模式有问题。我的意思是如果uart启动和你的代码没有关系,运行的代码在芯片里面,如果uart启动时候uart0信号不正确,请再检查一下硬件。
请问是否有在其他板子上有同样的现象?
您好,上次多谢您的帮助,我们经过修改把USB_PLL_1v8接通了,但是现在使用UART0仍然不能出信号,UART1,2已经可以出正常的信号,USB_PLL也可以达到960M速率,gel自检都过了,UART0是直接接出来的,应该不存在硬件问题了,我少些的UART0,UART2的程序是相同的,唯一的不同就是引脚复用不同,难道是我哪里设置不正确?另外我试了UART0启动,串口还是什么都没有打印