HK32F103x/C/D/E是深圳市航順芯片技術(shù)研發(fā)有限公司推出的中大容量的103系列芯片。作為32位MCU常用ADC模塊,在各類產(chǎn)品中有諸多應(yīng)用,比如節(jié)省I/O引腳的按鍵檢測應(yīng)用,以及各類傳感器,比如光傳感器、濕度傳感器、溫度傳感器等,把各種各樣的模擬信號轉(zhuǎn)換為電壓、電流信號,ADC模塊通過對該電壓、電流信號的精確測量,實現(xiàn)MCU對外部世界的精確感知,從而實現(xiàn)對應(yīng)用的精準控制。
HK32F103x/C/D/E的ADC的功能描述:
12 位 ADC 是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達 18 個通道,可測量 16 個外部和 2 個內(nèi)部信號源。各通道的 A/D 轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC 的結(jié)果可以左對齊或右對齊方式存儲在 16 位數(shù)據(jù)寄存器中。
模擬看門狗特性允許應(yīng)用程序檢測輸入電壓是否超出用戶定義的高/低閥值。
ADC 的輸入時鐘不得超過 14MHz,它是由 PCLK2 經(jīng)分頻產(chǎn)生。
HK32F103x/C/D/E的ADC的主要特征:
● 12 位分辨率
● 轉(zhuǎn)換結(jié)束、注入轉(zhuǎn)換結(jié)束和發(fā)生模擬看門狗事件時產(chǎn)生中斷
● 單次和連續(xù)轉(zhuǎn)換模式
● 從通道 0 到通道 n 的自動掃描模式
● 自校準
● 帶內(nèi)嵌數(shù)據(jù)一致性的數(shù)據(jù)對齊
● 采樣間隔可以按通道分別編程
● 規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換均有外部觸發(fā)選項
● 間斷模式
● 雙重模式(帶 2 個或以上 ADC 的器件)
● ADC 轉(zhuǎn)換時間:
─ HK32F103xx 增強型產(chǎn)品:時鐘為 56MHz 時為 1μs(時鐘為 72MHz 為 1.17μs)
● ADC 供電要求:2V 到 5.5V
● ADC 輸入范圍:VREF- ≤ VIN ≤ VREF+
● 規(guī)則通道轉(zhuǎn)換期間有 DMA 請求產(chǎn)生。
注意:如果有 VREF-引腳(取決于封裝),必須和 VSSA 相連接
外部觸發(fā)轉(zhuǎn)換
轉(zhuǎn)換可以由外部事件觸發(fā)(例如定時器捕獲,EXTI 線)。如果設(shè)置了 EXTTRIG 控制位,則外部事件就能夠觸發(fā)轉(zhuǎn)換。EXTSEL[2:0]和 JEXTSEL2:0]控制位允許應(yīng)用程序選擇 8 個可能的事件中的某一個,可以觸發(fā)規(guī)則和注入組的采樣。
注意:當(dāng)外部觸發(fā)信號被選為 ADC 規(guī)則或注入轉(zhuǎn)換時,只有它的上升沿可以啟動轉(zhuǎn)換。
表 43 ADC1 和 ADC2 用于規(guī)則通道的外部觸發(fā)
表 44 ADC1 和 ADC2 用于注入通道的外部觸發(fā)
表 45 ADC3 用于規(guī)則通道的外部觸發(fā)
表 46 ADC3 用于注入通道的外部觸發(fā)
軟件觸發(fā)事件可以通過對寄存器 ADC_CR2 的 SWSTART 或 JSWSTART 位置“1”產(chǎn)生。規(guī)則組的轉(zhuǎn)換可以被注入觸發(fā)打斷。
以下是HK32F103系列的功能框圖:
HK32F103x/C/D/E在ADC使用過程中需要注意的地方:
問題描述:
[1]當(dāng) ADC 在常規(guī)通道采樣時,使用并配置一個通道進行采樣,軟件啟動采樣,然后利用判斷EOC的方式來讀取采樣數(shù)據(jù),讀到的數(shù)據(jù)是上一次采樣的結(jié)果。
[2]當(dāng) ADC 在常規(guī)通道采樣時,使用并配置多個通道采樣,軟件啟動采樣,然后利用判斷EOC的方式去讀取采樣數(shù)據(jù),讀到的數(shù)據(jù)是上一個通道采樣的結(jié)果。
根本原因:
在常規(guī)通道采樣時,由于 EOC 標志置位后,數(shù)據(jù)寄存器 ADC_DR 沒有被及時正確更新。ADC_DR寄存器要么是上一個采樣的數(shù)據(jù)(對應(yīng)上述[1]),要么是上一個通道的采樣數(shù)據(jù)(對應(yīng)上述)。
解決方案:
在讀取 ADC_DR 數(shù)據(jù)寄存器之前,增加 3 個 NOP 指令。示例代碼如下:
參考應(yīng)用代碼如下: