天天看點

linux驅動之ADC實驗概述基礎知識添加裝置樹測試

概述

ADC使用的是SOC自帶的功能,一般SOC廠家已經把相應的驅動代碼寫好,我們隻需要在裝置樹中使能該功能則可。在進行ADC讀操作時,隻需要了解對IIO子系統的使用操作,即可完成ADC的讀取。

基礎知識

(一) IIO子系統

IIO(industrial I/O )子系統是專門用于ADC/DAC的核心子系統,Linux核心通過IIO架構把模數轉換的功能集合在一起。加速度計、陀螺儀、電壓測量、廣電傳感器等都屬于IIO系列器件。

IIO作為字元裝置暴露給使用者空間,使用者空間與IIO驅動程式互動有兩種方式:

  1. /sys/bus/iio/iio:device/:表示傳感器及通道
  2. /dev/iio:deviceX:表示到處裝置事件和資料緩沖區的字元裝置。

    讀取ADC,以下方式使用軟體寫入start的方式,每次觸發一次采樣:

    cat /sys/bus/iio/devices/iio:device0/xxx_raw

添加裝置樹

檢視SOC的裝置樹ADC接口描述,通過compatible比對可以找到ADC相關驅動檔案。

linux驅動之ADC實驗概述基礎知識添加裝置樹測試

寫自己的裝置樹

linux驅動之ADC實驗概述基礎知識添加裝置樹測試

編譯下載下傳過後,檢視裝置樹節點。

linux驅動之ADC實驗概述基礎知識添加裝置樹測試

測試

執行:cat /sys/bus/iio/devices/iio:device0/xxx_raw,檢視ADC采樣值。

linux驅動之ADC實驗概述基礎知識添加裝置樹測試

繼續閱讀