01
概述
這里的IO不是指芯片的那種通用GPIO(只有高低電平的那種),這里說的I/O信號包括模擬信號和 數字信號 ,包括ADC、PWM、DIO等。
I/O Signal Interface :對數據進行初步處理,比如按鍵輸入去抖動
Dirver for ext. ADC: ASIC:ASIC的縮寫是Application Specific Integrated Circuit,特殊應用集成電路,外掛ADC芯片驅動。
Dirver for ext. I/O ASIC :外擴I/O口芯片
SPI Handle :一般外掛芯片通過SPI連接,這里就是講SPI驅動進行封裝
ADCPWMDIO :是MCAL驅動,一般由芯片廠商提供
在實際使用中,覺得之所以要弄一個I/O Hardware Abstraction的另外一個原因是,避免APP直接訪問底層。實際都是把I/O Hardware Abstraction當做一個CDD來搞,里面的內容自己實現,在達芬奇工具中新建一個SWC,然后自己實現功能(比如實現去斗的操作)。
02
一個示例
開個玩笑,要是直接12V懟在IO口,估計有可能燒片子,
一般是按下面的接法,采取分壓電阻分壓
假設ADC是12 bit的,ADC值范圍是0-4096:
1) Adc_ReadGroup ,Adc_ReadGroup這個函數時ADC MCAL中提供的,用于讀取原始的ADC值,假如是3724。
2) Get_SensorValue ,是IoHwAb中的一個Server runable,被Send_Voltage函數調用,在這里獲取原始值,你可以做些濾波去斗處理,比如搞一個滑動平均值濾波。
3) Send_Voltage :傳感器SWC調用Get_SensorValueADC值,最后計算得出真實的電壓值,比如
3724 * 3.3 /4096 * 4 = 12V,X4是因為有分壓電阻
所有的DIO、PWM、ADC一般都是這么來搞的
-
傳感器
+關注
關注
2552文章
51294瀏覽量
755205 -
濾波器
+關注
關注
161文章
7853瀏覽量
178514 -
GPIO
+關注
關注
16文章
1215瀏覽量
52230 -
ADC芯片
+關注
關注
3文章
78瀏覽量
20356 -
PWM驅動
+關注
關注
0文章
28瀏覽量
1226
發布評論請先 登錄
相關推薦
評論