娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月06日(星期五)

正在發生

2019年09月06日 | STM32L4系列 ADC基本原理

發布者:王大雷 來源: eefocus關鍵字:STM32L4系列  ADC  基本原理 手機看文章 掃描二維碼
隨時隨地手機看文章

一、ADC簡介

Analog-to-Digital Converter的縮寫。指模/數轉換器或者模擬/數字轉換器。


STM32ADC簡介

STM32 擁有 1~3 個 ADC,ADC1和ADC2緊密耦合,可在雙模式下工作(ADC1為主模式)。每個ADC由一個12位逐次逼近的模數轉換器組成。每個ADC有多達19個多路復用通道。各種通道的A/D轉換可以在單一、連續、掃描或不連續模式下執行。ADC的結果是存儲在左對齊或右對齊的16位數據寄存器中。模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定義的高/低閥值。


ADC工作框圖(根據STM32F1的ADC框圖介紹STM32L4系列的ADC,大部分相同,有些寄存器有所變動)


下面根據上圖一一介紹

STM32L4ADC寄存器表

1.電壓輸入范圍:

ADC輸入范圍為: VREF- <= VIN <= VREF+。由 VREF-、VREF+ 、VDDA 、VSSA、這四個外部引腳決定。一般把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的輸入電壓范圍為:0~3.3V。如果我們想讓輸入的電壓范圍變寬,去到可以測試負電壓或者更高的正電壓,我們可以在外部加一個電壓調理電路,把需要轉換的電壓抬升或者降壓到 0~3.3V,這樣 ADC 就可以測量了。不要直接將高于 3.3V 的電壓接到 ADC 管腳上,那樣將可能燒壞芯片。


2.通道轉換順序


信道選擇(SQRx、JSQRx)


每個ADC最多有19個多路復用通道:5個來自GPIO板的快速模擬輸入(ADCx_INP/INN[1..5]),來自GPIO PADS的多達11個慢模擬輸入(ADCx_INP/INN[6..16])


ADC連接到以下內部模擬輸入:內部參考電壓(VREFINT)連接到ADC1_INP0/INN0。內部溫度傳感器(VTS)連接到ADC1_INP17/INN17。vbat監控通道(vbat/3)連接到ADC1_INP18/INN18。DAC1內部通道連接到ADC1_INP/INN17。


規則通道組序列寄存器有 3 個,分別是 SQR3、 SQR2、 SQR1。 SQR3 控制著規則序列中的第一個到第六個轉換,對應的位為:SQ1[4:0]~SQ6[4:0],第一次轉換的是位 4:0 SQ1[4:0],如果通道 3 想第一次轉換,那么在 SQ1[4:0]寫 3即可。SQR2 控制著規則序列中的第 7 到第 12 個轉換,對應的位為:SQ7[4:0]~SQ12[4:0],如果通道 1 想第 8 個轉換,則 SQ8[4:0]寫 1 即可。SQR1 控 制 著 規 則 序 列 中 的 第 13 到 第 16 個 轉 換 , 對 應 位 為 :SQ13[4:0]~SQ16[4:0],如果通道 6 想第 10 個轉換,則 SQ10[4:0]寫 6 即可。具體使用多少個通道,由 SQR1 的位 L[3:0]決定,最多 16 個通道。


注入通道組序列寄存器只有一個,是 JSQR。它最多支持 4 個通道,具體多少個由 JSQR 的 JL[2:0]決定。注意:


當 JL[1:0] = 3(有 4 次注入轉換)時, ADC 將按以下順序轉換通道:JSQ1[4:0]、JSQ2[4:0]、 JSQ3[4:0] 和 JSQ4[4:0]。


當 JL = 2 (有 3 次注入轉換)時,ADC 將按以下順序轉換通道:JSQ2[4:0]、JSQ3[4:0] 和 JSQ4[4:0]。


當 JL = 1 (有 2 次注入轉換)時,ADC 轉換通道的順序為:先是 JSQ3[4:0],而后是 JSQ4[4:0]。


當 JL = 0(有 1 次注入轉換)時, ADC 將僅轉換 JSQ4[4:0] 通道。


如果在轉換期間修改 ADC_SQRx 或 ADC_JSQR 寄存器,將復位當前轉換并向ADC 發送一個新的啟動脈沖,以轉換新選擇的通道組。


3.通道轉換標志


規則通道組由多達16個轉換組成。規則通道及其在轉換序列中的順序在ADC寄存器中選擇。規則通道組中的轉換總數必須寫入ADC SQR1寄存器的L[3:0]位中。


注入通道組由最多4個轉換組成。注入通道及其在轉換序列中的順序必須在ADC JSQR寄存器中選擇。注入組中的轉換總數必須寫入ADC JSQR寄存器的L[1:0]位中。


規則通道組:從名字來理解,規則通道就是一種規規矩矩的通道,類似于正常執行的程序。通常我們使用的都是這個通道。注入通道組:從名字來理解,注入即為插入,是一種不安分的通道,類似于中斷。當程序正常往下執行時,中斷可以打斷程序的執行。同樣如果在規則通道轉換過程中,有注入通道插隊,那么就要先轉換完注入通道,等注入通道轉換完成后,再回到規則通道的轉換流程。


4.觸發源


選擇好輸入通道,設置好轉換順序,接下來就可以開始轉換。要開啟 ADC轉換,可以直接設置 ADC 控制寄存器 ADC_CR的 ADEN 位為 1,即使能 ADC。設置ADC_CFGR的EXTSEL[3:0]選擇觸發規則組轉換開始的外部事件,設置ADC_JSQR的JXTSEL[3:0]選擇觸發注入組轉換開始的外部事件。如果使能了外部觸發事件,可以設置 ADC 控制寄存器ADC_CFGR的EXTEN[1:0]:規則通道的外部觸發啟用和極性選擇,ADC_JSQR的JEXTEN[1:0]注入通道的外部觸發啟用和極性選擇,,可以有 4 種狀態,分別是:禁止觸發檢測、上升沿檢測、下降沿檢測以及上升沿和下降沿均檢測。


5.時鐘


三個ADC的輸入時鐘相同,可以在兩個不同的時鐘源之間選擇。ADC時鐘來自系統時鐘或PLLSAI1輸出(A)。它可以達到80兆赫,并且可以通過以下預分頻器值進行劃分:1、2、4、6、8、10、12、16、32、64128或256,通過配置ADC1_CCR寄存器。它與AHB時鐘不同步。或者,ADC時鐘可由ADC總線接口的AHB時鐘除以可編程系數(1、2或4)。此可編程系數是使用ADC1_CCR中的CKMODE位字段配置的。如果編程因子為“1”,則AHB預分頻器必須設置為“1”。


ADC時鐘可以是特定的時鐘源。


時鐘源:


–系統時鐘


–PLLSAI1(單ADC實現)要選擇此方案,必須重置ADCX_CCR寄存器的位CKMODE[1:0]。


PRESC[3:0]: ADC預分頻


時鐘對于所有的ADC來說都是通用的。0000:輸入ADC時鐘不分頻,0001:輸入ADC時鐘除以2,0010:輸入ADC時鐘除以4,0011:輸入ADC時鐘除以6,0100:輸入ADC時鐘除以8,0101:輸入ADC時鐘除以10,0110:輸入ADC時鐘除以12,0111:輸入ADC時鐘除以16,1000:輸入ADC時鐘除以32,1001:輸入ADC時鐘除以64,1010:輸入ADC時鐘除以128,1011:輸入ADC時鐘除以256,其他:保留


ADC預分頻器僅當CKMODE[1:0]=0b00時才應用該值


CKMODE[1:0]:ADC時鐘模式


這些位由軟件設置和清除,以定義ADC時鐘方案(主ADC和從ADC共用):


00:ck_adcx(x=123)(異步時鐘模式)。


01:HCLK/1(同步時鐘模式)。只有當AHB時鐘預分頻器設置為1(RCC寄存器中的hpre[3:0]=0xxx)并且系統時鐘有50%的占空比時,才能啟用此配置。


10:HCLK/2(同步時鐘模式)


11:HCLK/4(同步時鐘模式)


PLLSAI1 configuration register (RCC_PLLSAI1CFGR)


PPLADC1CLK。此輸出可以選擇為ADC時鐘。這些位只能在PLLSAI1被禁用時寫入。PLLADC1CLK輸出時鐘頻率=VCOSAI1頻率/PLLSAI1R與PLLSAI1R=2, 4, 6,或8。


00:PLLSAI1R=2,01:PLLSAI1R=4,10:PLLSAI1R=6,11:PLLSAI1R=8


位24 PLLSAI1REN:PLLSAI1 PLLADC1CLK輸出啟用


通過軟件設置和重置以啟用PLLSAI1的PLLADC1CLK輸出(用作ADC時鐘)。當不使用PLLSAI1的PLLADC1CLK輸出時,PLLSAI1REN的值應為0。


0:PLLADC1CLK輸出禁用,1:PLLADC1CLK輸出啟用


ADC時鐘還可由ADC總線接口的AHB時鐘可編程系數(1、2或4)得出。在此模式下,可根據位CKMODE[1:0])選擇可編程系數(/1、2或4)。要選擇此方案,ADCX UCR寄存器的位CKMODE[1:0]必須與“00”不同。注:對于選項2,只有當AHB預分頻器設置為1(RCC_CFGR寄存器中的hpre[3:0]=0xxx)時,才能使用1的預定標系數(ckmode[1:0]=01)。選項1)具有達到最大ADC時鐘頻率的優勢,無論已選擇AHB時鐘方案。ADC時鐘最終可除以以下比率:1、2、4、6、8、12、16、32、64、128、256;使用配置有位預分頻器ADCx_CCR寄存器。不要讓ADC時鐘超過14MHz,否則可能不準。


6.數據寄存器


ADC 轉換后的數據根據轉換組的不同,規則組的數據放在 ADC_DR 寄存器內,注入組的數據放在 JDRx 內。


位31:16保留,必須保持在復位值。


位15:0 RData[15:0]:規則數據轉換


這些位是只讀的。它們包含上次轉換的規則通道的轉換結果。數據左對齊或右對齊。STM32的ADC 是 12 位轉換精度,而數據寄存器是 16 位,所以 ADC在存放數據的時候就有左對齊和右對齊區分。如果是左對齊,AD 轉換完成數據存放在 ADC_DR 寄存器的[4:15]位內;如果是右對齊,則存放在 ADC_DR 寄存器的[0:11]位內。具體選擇何種存放方式,需通過 ADC_CR2 的 11 位 ALIGN 設置。


在規則組中,含有 16 路通道,對應著存放規則數據的寄存器只有 1 個,如果使用多通道轉換,那么轉換后的數據就全部擠在 ADC_DR 寄存器內,前一個時間點轉換的通道數據,就會被下一個時間點的另外一個通道轉換的數據覆蓋掉,所以當通道轉換完成后就應該把數據取走,或者開啟 DMA 模式,把數據傳輸到內存里面,不然就會造成數據的覆蓋。 最常用的做法就是開啟 DMA 傳輸。如果沒有使用 DMA 傳輸,我們一般通過 ADC 狀態寄存器 ADC_SR 獲取當前 ADC 轉換的進度狀態,進而進行程序控制。


而在注入組中,最多含有 4 路通道,對應著存放注入數據的寄存器正好有 4個,不會跟規則寄存器那樣產生數據覆蓋的問題。


7.ADC中斷


ADC可生成中斷:在ADC通電后,當ADC準備就緒時(標記ADRDY),規則組轉換結束時(標志EOC),在規則組轉換序列結束時(標志EOS),注入組轉換結束時(Flag Jeoc),注入組轉換序列結束時(Flag Jeos),發生模擬看門狗檢測時(標記AWD1、AWD2和AWD3),當采樣階段結束時(標志EOSMP),發生數據溢出時(標志OVR),當注入的序列上下文隊列溢出時(標記JQOVF)

通道采樣時間


每個通道可以用不同的采樣時間進行采樣,采樣時間可使用ADC_SMPR1和ADC寄存器中的SMP[2:0]位進行編程。因此可以選擇


在以下采樣時間值中:


?SMP=000:2.5 ADC時鐘周期


?SMP=001:6.5 ADC時鐘周期


?SMP=010:12.5 ADC時鐘周期


?SMP=011:24.5 ADC時鐘周期


?SMP=100:47.5 ADC時鐘周期


?SMP=101:92.5 ADC時鐘周期


?SMP=110:247.5 ADC時鐘周期


?SMP=111:640.5 ADC時鐘周期


ADC 要完成對輸入電壓的采樣需要若干個 ADC_CLK 周期,計算公式:


TCONV = 采樣時間 + 12.5   (ADC 周期)


例子:


當fadc_clk=80 MHz且采樣時間為2.5 ADC時鐘周期時:tconv=(2.5+12.5)ADC時鐘周期=15 ADC時鐘周期,T=1/f,15*(1/80M)=187.5 ns(對于快速通道)


ADC采樣數值與實際電壓值轉換

STM32的ADC是12位逐次逼近型的模擬數字轉換器,也就是說ADC模塊讀到的數據是12位的數據。。二進制的12位可表示0-4095個數,也就是說轉換器通過采集轉換所得到的最大值是4095,111111111111 = 4095,0v-3.3v平均分成4096份。給出任意X坐標值,求Y值

DMA(Direct Memory Access,直接內存存取) ,用來提供在外設和存儲器之間或者存儲器和存儲器之間的高速數據傳輸。DMA是直接存儲器存取用來提供在外設和存儲器之間或者存儲器和存儲器之間的高速數據傳輸。無須CPU任何干預,通過DMA數據可以快速地移動。這就節省了CPU的資源來做其他操作。

關鍵字:STM32L4系列  ADC  基本原理 引用地址:STM32L4系列 ADC基本原理

上一篇:STM32L4 PWM蜂鳴器
下一篇:STM32 環境光傳感器ADC采樣

推薦閱讀

Auterion是一家初創公司,它提供了一個基于流行的PX4開源軟件構建的無人機操作系統。該創企已經獲得了1000萬美元的種子融資。此輪融資的投資者包括Lakestar、Mosaic Ventures、Costanoa Ventures和Tectonic Ventures。這家年輕的瑞士公司表示,此次注資將用于與更廣泛的PX4社區密切合作,進一步開發開源代碼,并以Auterion平臺的形式將該技術帶給更多的...
近日,由百度和一汽聯手打造的中國首批量產L4級自動駕駛乘用車——紅旗EV,獲得5張北京市自動駕駛道路測試牌照。據了解,此前,紅旗EV已經在湖南長沙的135公里的城市開放測試道路上開展測試。資料顯示,相比歷代Apollo無人駕駛汽車,紅旗EV實現了包括安全、量產能力,以及外觀內飾、駕乘體驗等維度的優化升級。值得一提的是,紅旗EV在操作交互方面迎來重大...
援引 Android Central 上周報道,一加內部正在開發代號為“Clover”的入門手機,市場售價在 200 美元左右。現在該機已經現身 GeekBench 5 跑分庫,確認搭載高通驍龍 460 處理器和 4GB 內存。  今天型號為“OnePlus BE2012”現身 GeekBench 5 跑分庫,而該型號就是代號為“Clover”的新機。根據跑分測試結果,單核成績為 245...
9月2日至9月7日,2021年中國國際服務貿易交易會在北京舉辦,本屆服貿會以“數字開啟未來,服務促進發展”為主題,數字服務成為重點內容之一,展示出大批5G、AI、云計算等方面的創新成果。在9月3日舉行的“第四次工業革命技術賦能產業數字化與零碳化論壇”上,高通公司全球副總裁侯明娟分享了5G、AI、物聯網的結合在眾多行業的應用情況。侯明娟表示,5G加上...

史海拾趣

問答坊 | AI 解惑

怎樣才能成為一名合格的FPGA開發工程師

如題!小弟我正努力想成為一名合格的FPGA開發工程師,現在正在努力學習中,希望各位前輩指點。 迫切想知道想學好FPGA需要掌握哪些知識??? 先謝謝啦!…

查看全部問答∨

【藏書閣】模擬電子練習集 童書白

又名 :電子技術基礎試題匯編 模擬部分 目錄: 詳細信息: 本書各章次序與教材相同。每章的第一部分是在總結教材各章內容的基礎上給出的“基本概念與分析計算的依據”,所以在“節”的安排上有的有整合。每章的第二部分是“習題解析”,在 ...…

查看全部問答∨

平安城市監控系統的多級存儲架構(圖)

目前在全國各地建設的平安城市視頻監控系統中,攝像頭的數量少則幾萬個,多則幾十萬個,甚至上百萬個,這些攝像頭產生的視頻信息所要求的存儲容量是非常龐大的。我們可以簡單測算一下,假設有10萬個攝像頭,每個攝像頭按CIF(352×288)格式,25幀/秒 ...…

查看全部問答∨

液漲式溫控開關

溫度傳感部件由溫包、毛細管、薄膜片以及膨脹介質組成。在溫包被加熱時,介質被加熱并開始膨脹。介質的膨脹增加了整個傳感部件閉合系統中的壓力。增加的壓力被轉化為薄膜片的位移。 這種位移也稱為行程,可觸動快動開關,該開關可斷開或者閉合電路 ...…

查看全部問答∨

新手問:為什么不能上傳附件?

想上傳個有用的文檔,為什么老是出錯,提示出現未知錯誤? 文件還沒有1M呢 請高手幫忙,我是新手…

查看全部問答∨

A/D轉換好像總是沒有完成

16F73進行A/D轉換,設置了ACDON1,ACDON0等,有一局while(ADG0);就是等待A/D轉換完畢置位ADG0,但是好像總是沒有完成,也就是總是執行不到while(ADG0);的下一句。不知道是什么原因?謝謝!…

查看全部問答∨

VHDL寫的乒乓球游戲,球動不了,求救高手!

點陣是16行16列的,第0行是用來顯示球拍的。球拍從0列到15列每四個連點為表示一個狀態,分別為P0到P3。 library IEEE; use IEEE.STD_Logic_1164.all; use IEEE.std_logic_unsigned.all; entity DotMartixDisplay is       &nbs ...…

查看全部問答∨

救命呀 VS2005編譯鏈接錯誤

大家好, 最近我轉了一個項目從EVC到VS2005,在EVC下,可以正常編譯與鏈接,但在VS2005下, 我自己所寫的lib庫總是鏈接不成功,既使我用VS2005生成lib庫,它依然有鏈接錯誤。 我感覺是CSring的問題,但不知道怎樣解決,大家幫幫忙了。 thanks i ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 南通市| 阿拉善盟| 萨迦县| 延安市| 读书| 永修县| 惠水县| 融水| 东乌| 南澳县| 门源| 防城港市| 原阳县| 安丘市| 习水县| 新晃| 深水埗区| 连城县| 泗阳县| 双峰县| 荆州市| 工布江达县| 察雅县| 新巴尔虎左旗| 科尔| 临泽县| 象州县| 且末县| 剑河县| 青海省| 太原市| 都江堰市| 景东| 襄樊市| 东方市| 宜春市| 玛曲县| 湘乡市| 时尚| 滁州市| 盱眙县|