Ads 468x60px

##EasyReadMore##

28 7月, 2017

[Debug] GPIO DI/DO error

問題描述:

本次20台gateway,有一台在安裝程式後,log有記錄異常的訊息,

結果無法使用DI/DO,log訊息如下圖,在請精英判斷一下,感謝。

image

除錯:  

因為 QX 對內的 GPIO 看起來是正常的,板子上的燈是可以由 GPIO 控制
所以把問題指向控制對外 GPIO 的 IC

查看所有 GPIO 狀態:

cat /sys/kernel/debug/gpio
GPIOs 0-7, platform/sch_gpio.2398, sch_gpio.2398:
gpio-2 (cy8c9540a-int-s3 ) in hi
gpio-3 (sysfs ) out lo
gpio-7 (cy8c9540a-a0 ) in hi

GPIOs 8-15, intel_qrk_gip_gpio:
gpio-8 (SPI_CS ) out hi
gpio-9 (dac7564-ldac ) out lo
gpio-10 (SPI_CS ) out hi
gpio-11 (cy8c9540a-a0 ) in lo
gpio-13 (cy8c9540a-int-s0 ) in hi

GPIOs 16-55, cy8c9540a, can sleep:
gpio-20 (sysfs ) out lo
gpio-21 (sysfs ) out lo
gpio-22 (sysfs ) out lo
gpio-23 (sysfs ) out lo
gpio-29 (sysfs ) out lo
gpio-36 (sysfs ) out lo
gpio-37 (sysfs ) out lo

IOT_Test_Tool:

先使用 IOT_Test_Tool 內的 dido.sh 來測試所有對外的 GPIO 做測試

執行後發現有些 GPIO 腳位資訊不能互相傳達

image

expand IC:

下面指令查詢 expand IC 是否有問題:
dmesg | grep cy8c

可以看到下面 cy8c9540a: probe of 0-0021 這一顆讀不到:
[ 22.580375] cy8c9540a 0-0020: dev_id=0x40
[ 22.718193] cy8c9540a 0-0021: can't read device ID
[ 22.718290] cy8c9540a: probe of 0-0021 failed with error –121


換IO測試板→換測試線→ IO board :

更換之後用測試程式就正常了, 問題應該是在 IO 板上面硬件問題。

處理:

拿給 EE 檢測後發現是 CPU board 與 IO board 之間的焊點空焊,資料丟不過去

image

驗證:

再試一次 dmesg | grep cy8c

[   23.138327] cy8c9540a 0-0020: dev_id=0x40

[   23.348526] cy8c9540a 0-0021: dev_id=0x40

接著試 dido.sh 就正常運作了 

0 意見:

張貼留言

 
Blogger Templates