前言
MCAL的作用是隔離硬件,對上提供統一的標準接口。前面的MCAL_ADC文章<<AUTOSAR-MCAL--ADC模塊詳解>>已經基于RenesasRH850芯片詳細介紹過ADC模塊了,由于最近開始使用Infineon TC3xx芯片,在配置ADC模塊的時候發現ADC模塊對上提供的標準接口是一樣的,在切換芯片的時候,IoHwAb_ADC模塊基本不用修改,但是對于具體ADC模塊的配置,和芯片特性強相關的地方還是有很多地方(AUTOSAR MCAL標準定義的配置項都是一樣的),本文將詳細介紹基于Infineon TC3xx芯片MCAL_ADC模塊特有的一些配置功能。
正文
1.TC377芯片ADC硬件資源
在配置一個MCAL模塊的時候主要關注這個模塊的三個特性:
1)ADC硬件單元:ADC模塊有多少個ADC硬件單元Unit,每個Unit有多少個通道Channel,這樣我們就可以知道這個ADC模塊最大可以配置多少路ADC數據了。
2) ADC時鐘源:知道ADC時鐘源和可以使用的分頻系數就可以知道ADC模塊最大/小的使用時鐘頻率了(時鐘頻率在ADC模塊作用不是特別明顯,在配置PWM/ICU模塊的時候就非常重要)。
3) ADC中斷源:使用ADC轉換完成中斷的話就需要知道使用的中斷源,也就是每個Unit/Group的中斷號,這個中斷號在配置OS的ISR的時候需要用到。
Note: 如果是新手的話,查看TC3xx系列芯片共有的特性應該查看下圖的文檔:
查看TC37x具體芯片的硬件資源情況需要查看下圖的另一份文檔:
兩份文檔需要結合起來看,才能找到自己想要的東西。
1.1ADC硬件單元
TC37xx有8組ADC采集單元,Group0-8是Primary Groups,Group8-11是Secondary Groups,每組Primary Group有8個Channels,每組Secondary Group有18個Channels,總共可以同時采集8*4 + 16*4 = 96路ADC值。
1.2.ADC時鐘源
ADC模塊使用fADC作息模塊參考時鐘,fADC的具體配置在MCU模塊(后面分析TC3xxMCU模塊的時候再具體分析)。
1.3ADC中斷源
Group0-3的ISR中斷地址計算公式為:0x670 + x*0x10 + y*0x4,其中x為Group號,也就是0/1/2/3,y是選擇那一路Service Request輸出。
那這個y值怎么確定?-- 見下文分析
Group 0可以配置使用G0SR0-3中的一路作為中斷輸入請求信號。
通過配置GxSEVNP寄存器的SEViNP位域可以選擇使用那一路Service Request Line。
不過需要注意的是在EB的MCAL_ADC配置項里面沒有關于每個Group的Service Request的配置項,所以GxSEVNP寄存器的SEViNP位域為默認值0。
綜上所訴,我們得出Group0使用的中斷服務的地址為:
Group0的ISR中斷地址:0x670 + 0*0x10 + 0*0x4 = 0x670,其他Group使用的中斷服務的地址以此類推。
2. TC3XX MCAL特有的配置
2.1 External Multiplexer Control
在TC3xx的ADC模塊的General配置屬性里面有關于Emux相關的配置選項,這些配置參數不是AUTOSAR_MCAL標準定義的,是TC3xx芯片特有的。
從上文可以 得知TC37x總共可以同時采集96路ADC,如果項目中采集的ADC超過96路(芯片引腳又足夠用)該怎么辦?-- 換更多Pin腳的芯片顯然不劃算,那就可以考慮TC3xx的EVADC模塊硬件實現的外部多路復用器的功能,簡單的來講,就是使用一路ADC通道可以采集最多八路的ADC信號,具體由Emux相關寄存器配置實現。
一般情況,ADC通道足夠,在配置MCAL_ADC的時候不用配置EMUX,了解有這個特性即可。
2.2 Input Class Register
在ADC 模塊的頂層配置容器里面有一個全局(Global)的配置容器ADCGlobalInputClass。
在AdcHwUnit配置容易下面有一個AdcHwUnitInputClass的子配置。
AdcChannel配置容器下的每一路Channel都會引用一個AdcInputClass,可以選擇Globl的InputClass,也可以選擇每一個HwUinit下的Input Class。
那這個Input Class 到底是什么了? -- 查看芯片手冊
配置InputClass其實就是配置GxlCLASSi和GLOBICLASSi系列寄存器。
翻譯過來就是:全局輸入類寄存器為通過其通道控制寄存器GxCHCTRy中的位字段ICLSEL選擇它們的相應組的每個通道定義采樣時間和數據轉換模式。
翻譯過來:特定于組的輸入類寄存器為通過其通道控制寄存器GxCHCTRy中的位字段ICLSEL選擇它們的任何組的每個通道定義采樣時間和數據轉換模式。
也就是說Input Class在配置每個AdcChannel的采樣時間、轉換模式(具體哪些模式可以參考芯片手冊)、預充電時間等輸入屬性,個人覺得如果沒有特殊性能要求的話,這些可選屬性維持默認配置就可以了。
3.總結
現在的芯片手冊基本都快上萬頁了,在接觸一塊新的芯片的時候先把芯片手冊看完,基本是不可能的,就算看完也記不住,所有只有等需要解決疑惑的時候帶著問題的查手冊,才是比較合適的學習方法。
-
模塊
+關注
關注
7文章
2718瀏覽量
47560 -
接口
+關注
關注
33文章
8639瀏覽量
151385 -
adc
+關注
關注
98文章
6512瀏覽量
545016 -
AUTOSAR
+關注
關注
10文章
362瀏覽量
21623 -
Infineon
+關注
關注
2文章
92瀏覽量
29118
原文標題:AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模塊
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論