原创 IO短路带来的思考

2009-7-10 23:08 5693 6 7 分类: FPGA/CPLD

IO短路带来的思考


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


按照常理来说,对于IO脚来说VH遇到VL,那么一般人一定会想当然的以为结果是VL。事实是这样的吗?特权同学就遇上了这么个很让人郁闷的问题。


         当时在调一个液晶控制板,板子是新做的,自己动手焊接(水平有限,给后来的故事埋下了伏笔)。一切OK,就把早就写好仿真过的代码烧进去,然后接口部分是一个51的单片机,同样烧进备好的代码。本来就是先做一个很简单的指令测试,控制板部分是一个CPLD,一方面做MCU接口,接收指令(各种传送数据方式)和数据(缓存到RAM中);另一方面事实扫描LCD显示驱动。奇怪的是测试一条写数据指令,让LCD现实上半屏幕全红色下半屏幕全白色。指令控制方面MCU先是使用了内部的一个清屏指令,将LCD全清白色,然后使用一条写入一个数据后X坐标自增,如下做了一个简单的遍历处理。


         for(m=0;m<136;m++)      //上半屏幕显示红色


         {


                   WR_XLADDR = 0;


                   WR_XHADDR = 0;


                   WR_YLADDR = m%256;


                   WR_YHADDR = 0;


                   for(n=0;n<480;n++)


                            WR_DATA = 0xe0;             //单点红色}


         }


         而结果比较怪异,背景白色都没有问题,而上半屏幕的全红色却是第1行红色,第23行白色、第45行红色,第67行白色……如此下去。再测了一下Y自增方式,问题也类似,本来是要写左半屏幕绿色,右半屏幕黑色(也是先清屏黑色,再写绿色),出现了第1列红色,第23列白色、第45列红色,第67列白色……。他们都有共性,所以一直很纳闷,开始的时候总以为是出在CPLD代码部分,因为这次的缓冲SDRAM的控制是新设计,可能是这个控制时序的问题,再回头仿真测试结果没有改观。最后静下心来好好分析了下,而且特别在每次写入红色数据时加了很大的延时进行观察,发现第1行显示完红色立即跳到第4行显示红色,然后停了大约2行的时间再进行第3行的显示,紧接着是第6行的显示。于是就想到是不是最低两个地址线出现短路或者其中一个短路到GND或者VCC。而出现的地址是先2’b00,紧接着2’b11,先得很乖,如果是其中一个接GND了,那么地址出现顺序应该是00001010或者00010001;如果是一个接VCC了,那么地址顺序应该是01011111或者10111011。所以排除了地址脚和VCC或者GND短路的可能。还有就是,即便是地址短路了,如果出现在SDRAM的地址脚上,那么读写都一样,即所谓的负负得正,也不会出现这样的现象。


         那么到底是出现了什么问题了呢?冒失每次遍历都会进行一次Y地址的重新写入(通过MCUCPLD的接口),而清屏指令只要发一条指令,CPLD内部处理地址的运算。所以问题被定位到了MCUCPLD得接口部分,它们之间接了4245进行电平转换,地址的低2位是不是短路了?那么如果是4245输入端短路了会怎样?是4245的输出端短路了又会怎样?


         按照常理,IO口的VHVL短路,在没有动手测试前,我觉得应该是输出VL。所以这个认识也会否决了问题发现的原因出在这两个IO口上,因为地址线正常输入00011011,那么短路后输出也应该是00000011,而不会一下0011的跳变。但是,事实证明我错了。万用表一测,确实两个IO口短路了(4245的输出端短路),为了验证我的判断,先烧了一个把两个地址线一个拉高一个拉低的代码,再次上电测量,电平大约在1.65V,这个1.65V是要输入CPLD的(3.3V LVTTL电平)。查看了芯片资料,发现>1.7V判断为VIH,而这个基本属于边界值的1.65V都在输入CPLD时被判定为VIH了。所以就出现了最后的现象。


         感觉问题一点点解开了,于是扯开两条短路线,重新上电测试,一切步入正轨。看来问题果然如此,两个IO短路的的确确不会只输出一个简单的VL,这个4245就给了一个1.65V,而别的器件若出现这个情况会怎样呢?我不知道,但是有一点现在是可以肯定的,两个IO短路的输出结果需要根据这两个IO的电路本身进行判断。


         任何问题都不可以想当然。


 


 


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

ilove314_323192455 2015-3-23 11:15

比如配置相关的引脚复用,需要在setting里面修改一下设定

用户377235 2015-3-19 00:05

只使用这个IP核,搭配一些控制模块,在锁定管脚的时候为什么有些和hard processor连接复用的管脚锁定不了呢?

ilove314_323192455 2013-3-8 18:58

这个应该是以太网协议中实现的,可能是发出错误或暂停指示,远方设备可能会随后重发,具体实现要去翻翻以太网的协议

用户433737 2013-3-7 19:27

例如在发送的时候,section full=1的时候,我们停止向FIFO写入数据,但是当section empty=1的时候我们怎么控制远方的设备停止读取FIFO中的数据。

用户433737 2013-3-7 19:23

例如在发送时,almost full提示出现,我们可以控制停止向FIFO写,但是当almost empty提示出现时,我们怎么使远方设备停止读取数据呢?

用户142112 2009-7-12 21:57

IO口对地有阻抗。
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条