新闻  |   论坛  |   博客  |   在线研讨会
由于CPLD引脚分配错误导致VC33不能正确读取16c550寄存器
0750long | 2009-06-22 09:02:55    阅读:1666   发布文章

由于CPLD引脚分配错误导致VC33不能正确读取16c550寄存器

 

        VC33只带了一个串口,已经用在了AD接口上。为了同PC进行通讯,用16c550外扩一个串口。

          开始调试,CPLD的程序是好久以前写的,这次调试只是简单修改了一下有关串口译码部分,调试了三天都没办法正确读取16c550的寄存器。期间几次修改16c550的初始化部分和CPLD中关于16c550的译码时序,都没有效果。没办法,还是编了一段反复读写16c550寄存器的程序,然后老老实实的用示波器检查DPS读写16c550的各个时序,都没发现问题,这下理所应当的怀疑是16c550坏了,又花了21大洋买了一个换上,结果“涛声依旧”。这下就更没有目标了,只好再次耐心检查读写时序,当测到外扩Flash的片选时,发现居然和16c550的片选时序相同,这样每次读16c550寄存器内容时,Flash也被选中,信号在数据线上叠加,导致不能正确读出16c550寄存器内容。这下问题就好办了,Flash的片选译码也是由CPLD负责的,经过重新检查CPLD程序中的Flash译码部分,再对照电路图,发现Flash的片选引脚分配错误,改正后问题解决。

         至此,16c550寄存器不能正确读取的问题终于解决。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客