新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > IO短路帶來的思考

        IO短路帶來的思考

        作者: 時間:2015-03-02 來源:網絡 收藏
        編者按: IO腳短路,不能憑借自己的臆想判斷出結果,要根據這個IO電路本身進行判斷,否則只能把問題變得更加復雜。

          按照常理來說,對于IO腳來說VH遇到VL,那么一般人一定會想當然的以為結果是VL。事實是這樣的嗎?特權同學就遇上了這么個很讓人郁悶的問題。

        本文引用地址:http://www.104case.com/article/270306.htm

          當時在調一個液晶控制板,板子是新做的,自己動手焊接(水平有限,給后來的故事埋下了伏筆)。一切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了。所以就出現了最后的現象。

          感覺問題一點點解開了,于是扯開兩條短路線,重新上電測試,一切步入正軌??磥韱栴}果然如此,兩個的的確確不會只輸出一個簡單的VL,這個4245就給了一個1.65V,而別的器件若出現這個情況會怎樣呢?我不知道,但是有一點現在是可以肯定的,兩個的輸出結果需要根據這兩個IO的電路本身進行判斷。

          任何問題都不可以想當然。



        關鍵詞: IO短路

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 松滋市| 常州市| 自治县| 清镇市| 信宜市| 东平县| 永城市| 东莞市| 石门县| 怀宁县| 商水县| 沅陵县| 铜陵市| 南京市| 西林县| 绩溪县| 沧源| 大理市| 常州市| 海晏县| 林州市| 报价| 东兴市| 吴旗县| 灵石县| 吕梁市| 昌邑市| 太湖县| 威海市| 宝应县| 寿宁县| 洪泽县| 和林格尔县| 衡东县| 建宁县| 寿阳县| 峨眉山市| 九寨沟县| 福建省| 毕节市| 景德镇市|