您的位置 首页 FPGA

IO短路带来的考虑

 IO脚短路,不能凭借自己的臆想判断出结果,要根据这个IO电路本身进行判断,否则只能把问题变得更加复杂。

  依照常理来说,关于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行赤色,第2、3行白色、第4、5行赤色,第6、7行白色……如此下去。再测了一下Y自增方法,问题也相似,原本是要写左半屏幕绿色,右半屏幕黑色(也是先清屏黑色,再写绿色),呈现了第1列赤色,第2、3列白色、第4、5列赤色,第6、7列白色……。他们都有共性,所以一向很疑惑,开端的时分总认为是出在CPLD代码部分,由于这次的缓冲SDRAM的操控是新规划,或许是这个操控时序的问题,再回头仿真测验成果没有改观。最终静下心来好好剖析了下,并且特别在每次写入赤色数据时加了很大的延时进行调查,发现第1行显现完赤色当即跳到第4行显现赤色,然后停了大约2行的时刻再进行第3行的显现,紧接着是第6行的显现。所以就想到是不是最低两个地址线呈现短路或许其间一个短路到GND或许VCC。而呈现的地址是先2’b00,紧接着2’b11,先得很乖,假如是其间一个接GND了,那么地址呈现次序应该是00,00,10,10或许00,01,00,01;假如是一个接VCC了,那么地址次序应该是01,01,11,11或许10,11,10,11。所以排除了地址脚和VCC或许GND短路的或许。还有便是,即便是地址短路了,假如呈现在SDRAM的地址脚上,那么读写都相同,即所谓的负负得正,也不会呈现这样的现象。

  那么到底是呈现了什么问题了呢?莽撞每次遍历都会进行一次Y地址的从头写入(经过MCU与CPLD的接口),而清屏指令只需发一条指令,CPLD内部处理地址的运算。所以问题被定位到了MCU与CPLD得接口部分,它们之间接了4245进行电平转化,地址的低2位是不是短路了?那么假如是4245输入端短路了会怎样?是4245的输出端短路了又会怎样?

  依照常理,IO口的VH和VL短路,在没有着手测验前,我觉得应该是输出VL。所以这个知道也会否决了问题发现的原因出在这两个IO口上,由于地址线正常输入00,01,10,11,那么短路后输出也应该是00,00,00,11,而不会一下00,11的跳变。可是,实际证明我错了。万用表一测,的确两个IO口短路了(4245的输出端短路),为了验证我的判别,先烧了一个把两个地址线一个拉高一个拉低的代码,再次上电丈量,电平大约在1.65V,这个1.65V是要输入CPLD的(3.3V LVTTL电平)。查看了芯片材料,发现>1.7V判别为VIH,而这个根本归于鸿沟值的1.65V都在输入CPLD时被判定为VIH了。所以就呈现了最终的现象。

  感觉问题一点点解开了,所以扯开两条短路线,从头上电测验,全部步入正轨。看来问题不出所料,两个IO短路的的确确不会只输出一个简略的VL,这个4245就给了一个1.65V,而别的器材若呈现这个状况会怎样呢?我不知道,可是有一点现在是能够必定的,两个IO短路的输出成果需求依据这两个IO的电路自身进行判别。

  任何问题都不能够想当然。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/116827.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部