ELEOK
標題: SAIL-IMX6Q AD7606模塊調試記錄 [打印本頁]
作者: 電魚電子 時間: 2019-7-10 15:57
標題: SAIL-IMX6Q AD7606模塊調試記錄
1 本文總結了調試AD7606模塊的過程,遇到的問題及解決方法。主要問題出現在了硬件焊接上,包括焊接芯片,貼片元器件,焊接連接線出現虛焊,焊連等情況,最終導致了在調試時出現返回值不正確的問題。
2 驅動移植
(1) 將AD7606驅動拷貝到
/sail-imx6q-linux-4.1.15/drivers/staging/iio/adc/目錄下,包括ad7606.h、ad7606_core.c、ad7606_par.c、ad7606_ring.c、ad7606_spi.c;
將spi.c、imx-spi.c拷貝到/sail-imx6q-linux-4.1.15/drivers/spi/目錄下。
(2) 通過&ecspi2完善ecspi2節點信息
在/arch/arm/boot/dts/sail-imx6q.dts中通過使用&ecspi2訪問ecspi2這個節點,該節點用來描述開發板上的spi信息。
在/arch/arm/boot/dts目錄下使用gedit打開sail-imx6q.dts如下圖:
圖片144.png (11.62 KB)
下載附件
2019-7-10 15:56 上傳
完善后的節點信息如下圖
圖片145.png (55.78 KB)
下載附件
2019-7-10 15:56 上傳
(3) 編寫AD7606引腳信息
編寫iomux信息,具體參考imx6q原理圖,下圖是根據原理圖中的引腳連接方式編寫的iomux信息,
圖片146.png (64.87 KB)
下載附件
2019-7-10 15:56 上傳
配置內核,在~/sail-imx6q-linux-4.1.15目錄下執行make menuconfig,進行如下修改,
Device Drivers --->
SPI support ---> -*- Utilities for Bitbanging SPI masters
<*> GPIO-based bitbanding SPI Master
<*> Freescale i.MX SPI controllers
<*> User mode SPI device driver support
Device Drivers --->
Staging drivers ---> IIO staging drivers --->
Analog to digital converters --->
<*> Analog Devices AD7606 ADC driver
<*> spi interface support
<*> Industrial I/O support --->
---Industrial I/O support
-*- Enable buffer support within IIO
IIO callback buffer used for push in-kernel interfaces -*- Industrial I/O buffering based on kfifo
-*- Enable triggered sampling support
修改完畢后,選擇<Save>保存。退出。重新編譯內核,執行
make -j8 zImage ZIMAGE_LOADADDR=0x10008000
編譯時間較長,需等待幾分鐘。編譯結果如下圖
圖片147.png (102.19 KB)
下載附件
2019-7-10 15:56 上傳
將重新編譯的zImage及sail-imx6q.dtb拷貝到指定位置,重新燒錄linux系統。
3 調試
下圖是實物圖的正面,圖中綠色板子為IMX6Q主板,藍色板子是AD7606模塊。由于是測試,直接將AD模塊的5V電源引出至模擬輸入(圖中杜邦線連線)。
圖片148.png (175.94 KB)
下載附件
2019-7-10 15:56 上傳
下圖是實物圖的反面,因為在測試過程中發現直接用杜邦線連接會導致接觸不實,故直接將連接相應管腳的線焊上。后又發現線很容易斷,用膠將焊接部分粘起來。
圖片149.png (138.55 KB)
下載附件
2019-7-10 15:56 上傳
將主板上的SW4撥碼開關撥至01,SW3撥碼開關撥至0111,選擇eMMC啟動模式。
在PC機打開超級終端,打開SAIL-IMX6Q主板電源,正常啟動如下圖
圖片150.png (28.74 KB)
下載附件
2019-7-10 15:56 上傳
輸入root,進入root用戶。
輸入 cd /sys/bus/iio/device/查看設備節點,如下圖所示。若不存在節點則證明驅動移植失敗,需重新移植,若節點存在,則可進入節點測試AD模塊是否能正常使用。
圖片151.png (9.8 KB)
下載附件
2019-7-10 15:56 上傳
進入節點,執行cat in_voltage0_raw 查看轉換結果
圖片152.png (7.29 KB)
下載附件
2019-7-10 15:56 上傳
本次在模擬輸入端接入5V輸入,轉換結果為32767,經過公式計算:
32767*10/(216-1)=4.9999≈5V
調試過程出現的問題
(1) 返回值為空,
原因及解決辦法:經過測量,AD模塊的CS和CLK腳連接,模塊損壞,重新焊一塊AD模塊;
(2) 返回值有時正常,有時為0,
原因及解決辦法:使用杜邦線連接,有的線很松,可能是線的問題,將AD模塊與板卡的連接線直接焊到相應管腳上。焊完后經測試能正常使用。
4 總結
這次調試AD7606,軟件的移植工作是照著文檔做的,所以并沒有出現太大的問題,主要是焊接遇到的問題,包括焊接芯片和貼片元器件。因為之前幾乎沒有焊接過貼片元器件,導致這次焊的良莠不齊,虛焊,芯片管腳錫連在一起經常發生。其次就是開始測試時返回值不正確,感覺無從下手,不知道是軟件問題還是硬件問題,對照了半天軟件配置,沒有發現錯誤,浪費了很多時間,也沒有發現問題所在,然后著手測試硬件,但由于不知道哪里出問題,只能蒙著測,所幸找到問題,重新焊了一塊能正常使用了。
| 歡迎光臨 ELEOK (http://m.afoofa.cn/) |
Powered by Discuz! X5.0 |