|
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,軟件的移植工作是照著文檔做的,所以并沒有出現太大的問題,主要是焊接遇到的問題,包括焊接芯片和貼片元器件。因為之前幾乎沒有焊接過貼片元器件,導致這次焊的良莠不齊,虛焊,芯片管腳錫連在一起經常發生。其次就是開始測試時返回值不正確,感覺無從下手,不知道是軟件問題還是硬件問題,對照了半天軟件配置,沒有發現錯誤,浪費了很多時間,也沒有發現問題所在,然后著手測試硬件,但由于不知道哪里出問題,只能蒙著測,所幸找到問題,重新焊了一塊能正常使用了。
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|