STM32 ADC介紹(硬件原理篇)

目錄

背景

AD轉換器

采樣與保持

量化

編碼

AD轉換器轉換原理

DA轉換原理

AD轉換原理

1.逐次逼近型AD轉換器

2.并聯比較型AD轉換器

編碼器

同步D觸發器和邊沿D觸發器

基本RS觸發器

同步RS觸發器

同步D觸發器

邊沿型D觸發器(維持-阻塞D觸發器)


背景

在數字系統的廣泛應用中,用數字系統處理模擬量的情況十分普遍,因此引入了模擬信號和數字信號的接口問題。為了解決這一問題,首先利用模數轉換電路把模擬信號轉成數字信號。(數字信號經過處理之后,也可以通過數模轉換電路將模擬信號轉換回模擬信號)。單片機開發當中,ADC是經常要到的外設。通過本篇文章對ADC硬件部分進行原理說明。本篇文章需要涉及到基爾霍夫電壓定理、理想運放的虛短虛斷特性、以及采樣量化編碼、觸發器知識,所以需要電路、模擬電路、數字電路的基礎知識。另外,DA轉換方法有多種、AD轉換的方法也有多種。本篇中就以最常用的方法(T型電阻網絡DA轉換器、逐次逼近AD轉換器并聯比較型AD轉換器)來對DA轉換和AD轉換原理進行說明。嵌入式軟件工程師能理解更好,但是不一定要掌握,只要懂得和硬件工程師合作懂得配置相關寄存器或者調用相關固件庫函數即可。不要被嚇倒!

AD轉換器

AD轉換器中一般要經過采樣、保持、量化、編碼這四個步驟來完成從模擬量到數字量的轉換。

采樣與保持

截圖部分就是經典的采樣保持電路。Ui(t)為輸入的模擬信號。其中場效應管做成采樣開關。它通過采樣頻率f(sample)的采樣脈沖來完成控制開關的通斷。電容C為保持功能,當采樣開關導通的時候,電容迅速通電,使得電容的電壓=輸入的模擬電壓!;當采樣開關斷開的時候,由于電容的漏電很小,所以電容電壓基本保持不變!

因此經過采樣保持電路之后,輸入的模擬信號變成了一系列時間間隔內的階梯信號。

量化

將采樣輸出的電壓用某個最小單位的整數倍來表示的過程。這個最小數量單位稱為量化單位(經常用🔺表示)。

編碼

將量化的結果用代碼來表示出來的過程稱為編碼(最小量化單位的整數倍->二進制數)。

AD轉換器轉換原理

本篇文章只是對原理進行一個說明。不同的芯片可以采用不同的技術。不代表stm32就是采用該技術。這篇文章只是個人學習過模電和數電的知識。在ADC原理說明的時候,將這些知識串聯起來,形成一個知識的閉環。

因為AD轉換器轉換原理DA轉換器,因此先對DA轉換的原理先進行說明!

DA轉換原理

本篇文章以T型電阻網絡型進行說明

當dn-1閉合的時候,也就是說最左邊的電阻接到參考電壓,其他的模擬開關接地。

看截圖中的電路,從左往右看,兩個2R并聯再和R串聯 等價于一個2R電阻。所以最終的等效電路是

理想運放的兩個特性(虛短和虛斷)

虛短:反向輸入端和同向輸入端電位相同

虛斷:運放的反向輸入端和同相輸入端的電流為0.

1)根據虛短特性可以知道,反相輸入端的電壓和同相輸入端的電壓相等,都為0.

2)根據虛斷原理可以知道流過RF的電流(截圖中的紅色箭頭)。

3)根據基爾霍夫電壓定理可以知道Uo的電壓就等于Rf上的電壓大小相等,方向相反!

當d0為1(連接參考電壓時),其他位模擬開關全部接地情況。

該等效電路也很好理解,通過從右往左看,就可以知道,和dn-1接參考電壓的類似。

再根據電路知識中的線性電路的疊加原理可知

顯然看截圖中最后的式子就可以看出數-模的轉換了!

DA轉換器的最小輸出電壓與最大輸出電壓的比值稱為分辨率,顯然DA轉換器的位數越多,分辨出的最小電壓能力就越強。

前面的知識講完了,我們現在就可以介紹AD的轉換原理了。

AD轉換原理

1.逐次逼近型AD轉換器

1)轉換開始前,將逐次逼近寄存器清零。

2)開始轉換時將逐次逼近寄存器最高位置為1,其他位全0.此時DA轉換器會輸出電壓和輸入的模擬電壓進行比較

A.DA轉換器的輸出電壓U0 < 輸入的模擬電壓U1.說明DA轉換的電壓太大,要減小,此時Uc=1.

通過控制邏輯將最高位清零,次高位置為1,繼續比較。

B.DA轉換器的輸出電壓U0 >?輸入的模擬電壓U1.說明DA轉換的電壓太小,要增大,此時Uc=0.

通過控制邏輯將最高位保持為1,次高位置為1,繼續比較。

就這樣子逐位進行直到最低位,轉換過程結束。此時寄存器的數值就是轉換的結果。

2.并聯比較型AD轉換器

1)顯然通過并聯比較型工作示意圖,根據電阻的伏安特性可以知道各個電阻的電壓。

2)各個電阻的電壓與模擬輸入電壓在運放電路中進行比較

? ? ? A.當模擬輸入電壓>電阻側電壓,輸出1

? ? ? B.當模擬輸入電壓<電阻側電壓,輸出0

3)和運放的比較結果有7中情況,可以用編碼器將7中狀態信息轉化為計算機系統可以處理的二進制信息

編碼器

因為數字系統只能處理二值運算,因此需要將數字電路的各種信息用二值代碼表示出來。這個過程就是編碼。實現編碼的電路就稱為編碼器。編碼器是一個多輸入和多輸出的組合邏輯電路。m表示輸入信息的狀態數,n表示代碼的位數,一般情況下他們之間存在m<= 2的n次方關系。

寄存器+代碼轉換器-》編碼器

輸入有7種狀態,所以3條輸出線即可(2的3 次方-1)!

顯然就完成了模數的轉化。

下面對編碼器的涉及到的邏輯器件進行說明,以完成所學的電路、模電、數電的知識閉環。

同步D觸發器和邊沿D觸發器

在復雜的數字電路中,要繼續進行各種的復雜的運算與控制,就必須將曾經的輸入過的信號以及運算結果暫時保存起來。以便與新的輸入信號進一步運算來共同確定電路的輸出狀態。這樣子就要求電路中必須包含記憶功能的電路單元-觸發器

觸發器輸出有Q和Q非,因此也稱為雙穩態觸發器。

同步D觸發器的由來:

基本RS觸發器 -> 同步RS觸發器 ->同步D觸發器 和邊沿D觸發器

基本RS觸發器

同步RS觸發器

同步RS觸發器是為了使得多個相關的觸發器同時工作,必須給電路加上統一的控制信號,這個控制信號就叫做時鐘脈沖信號,簡稱CP.,這種觸發器叫做同步RS觸發器

D觸發器是在同步RS觸發器的基礎上解決約束條件問題(即同步RS寄存器都是有效設置信號情況)而產生的。

特性方程

補充同步輸入端和異步輸入端的概念!

同步D觸發器

D觸發器的特性方程位

邊沿型D觸發器(維持-阻塞D觸發器)


由同步RS觸發器與利用反饋構成了邊沿型D觸發器!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70265.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

公網遠程家里局域網電腦過程詳細記錄,包含設置路由器。

由于從校內遷居小區,校內需要遠程控制訪問小區內個人電腦,于是早些時間剛好自己是電信寬帶,可以申請公網ipv4不需要花錢,所以就打電話直接申請即可,申請成功后訪問光貓設備管理界面192.168.1.1,輸入用戶名密碼登錄超管(密碼是網上查下就有了)設置了光貓為橋接模式,然后…

流行編程語言全解析:優勢、應用與短板

Python&#xff1a; 優勢 Python 以其簡潔、易讀的語法聞名&#xff0c;新手能快速上手。豐富的庫和框架&#xff0c;能極大地提高開發效率。 適用領域 數據科學與分析&#xff1a;處理和分析大規模數據集&#xff0c;進行數據可視化。典型示例&#xff1a;Google 用 Pytho…

統信服務器操作系統V20 1070A 安裝docker新版本26.1.4

應用場景&#xff1a; 硬件/整機信息&#xff1a;x86平臺、深信服超融合平臺 OS版本信息&#xff1a;統信V20 1070a 1.獲取docker二進制包 鏈接: https://pan.baidu.com/s/1SukBlra0mQxvslTfFakzGw?pwd5s5y 提取碼: 5s5y tar xvf docker-26.1.4.tgz groupadd docker ch…

在 Vue 3 中使用 Lottie 動畫:實現一個加載動畫

在現代前端開發中&#xff0c;動畫是提升用戶體驗的重要元素之一。Lottie 是一個流行的動畫庫&#xff0c;它允許我們使用 JSON 文件來渲染高質量的動畫。本文將介紹如何在 Vue 3 項目中集成 Lottie 動畫&#xff0c;并實現一個加載動畫效果。 如果對你有幫助請幫忙點個&#x…

【Spring】Spring配置文件

目錄 ?什么是配置文件&#xff1f; 配置文件的作用 SpringBoot配置文件 配置文件格式 配置文件的優先級 properties配置文件說明 properties基本語法 讀取配置文件 properties缺點 yml配置文件說明 yml基本語法 使用yml連接數據庫 yml配置不同數據類型及null 注意…

藍橋杯篇---實時時鐘 DS1302

文章目錄 前言特點簡介1.低功耗2.時鐘/日歷功能3.32字節的額外RAM4.串行接口 DS1302 引腳說明1.VCC12.VCC23.GND4.CE5.I/O6.SCLK DS1302 寄存器1.秒寄存器2.分鐘寄存器3.小時寄存器4.日寄存器5.月寄存器6.星期寄存器7.年寄存器8.控制寄存器 DS1302 與 IAP25F2K61S2 的連接1.CE連…

Dubbo:高效的分布式服務框架

引言 在當今互聯網應用的快速發展中&#xff0c;微服務架構已經成為一種主流的設計模式&#xff0c;它將一個大型單體應用拆分成多個小型、松耦合的服務。Dubbo 作為一款由阿里巴巴開源的 RPC 服務框架&#xff0c;專門為解決分布式系統中服務通信和治理的問題而設計。本文將深…

Visual Studio Code使用ai大模型編成

1、在Visual Studio Code搜索安裝roo code 2、去https://openrouter.ai/settings/keys官網申請個免費的配置使用

【Javascript Day18】

目錄 標簽事件綁定的屬性參數 阻止默認行為 dialog的實現及組織冒泡&#xff08;捕獲&#xff09;傳遞 基于冒泡的事件委托 鍵盤事件的事件源對象信息 JS的自動觸發操作 標簽事件綁定的屬性參數 <!-- 標簽上的事件綁定&#xff0c;事件源對象通過 關鍵字event傳遞 --…

解鎖機器學習核心算法 | 支持向量機:機器學習中的分類利刃

一、引言 在機器學習的龐大算法體系中&#xff0c;有十種算法被廣泛認為是最具代表性和實用性的&#xff0c;它們猶如機器學習領域的 “十大神器”&#xff0c;各自發揮著獨特的作用。這十大算法包括線性回歸、邏輯回歸、決策樹、隨機森林、K - 近鄰算法、K - 平均算法、支持向…

玩客云 IP查找

1.玩客云使用靜態IP在不同網段路由器下不能使用&#xff0c;動態不好找IP地址 1.1使用python3 實現自動獲取發送 import requests import os import socket# 從環境變量獲取 PushPlus 的 token 和群組編碼 PUSH_PLUS_TOKEN os.getenv("PUSH_PLUS_TOKEN") PUSH_PLU…

Linux(Centos 7.6)命令詳解:cat

1.命令作用 將文件或標準輸入連接到標準輸出(Concatenate FILE(s), or standard input, to standard output)&#xff0c; 即將文件內容輸出到屏幕上&#xff0c;或者將多個文件合并成一個文件。 2.命令語法 Usage: cat [OPTION]... [FILE]... 3.參數詳解 OPTION: -A, -…

深入解析Qt事件循環

在Qt開發中&#xff0c;QApplication::exec()這行代碼是每個開發者都熟悉的“魔法咒語”。為什么GUI程序必須調用它才能響應操作&#xff1f;為何耗時操作會導致界面凍結&#xff1f;本文將以事件循環為核心&#xff0c;揭示Qt高效運轉的底層邏輯&#xff0c;探討其設計哲學與最…

Hive增量遷移方案與實操PB級

客戶一共1PB數據&#xff0c;每天新增10T&#xff0c;有些表只保留3天。 需要客戶提供&#xff1a; a.tbl_size(大小GB) a.last_mtime(最新更新時間) a.tbl_ttl(保留時間) b.last_part_dt(分區值) b.last_part_size(最新分區大小) t_day(表更新規律,t幾) 因為目前…

未來游戲:當人工智能重構虛擬世界的底層邏輯

未來游戲&#xff1a;當人工智能重構虛擬世界的底層邏輯 在《賽博朋克2077》夜之城的霓虹燈下&#xff0c;玩家或許已經注意到酒吧里NPC開始出現微表情變化&#xff1b;在《艾爾登法環》的開放世界中&#xff0c;敵人的戰術包抄逐漸顯露出類人智慧。這些細節預示著游戲產業正站…

React中如何處理高階組件中的錯誤

在 React 高階組件中處理錯誤是確保應用程序健壯性和穩定性的重要環節。以下是一些處理高階組件中錯誤的常見方法&#xff1a; 1. 捕獲渲染時的錯誤 在高階組件中&#xff0c;渲染過程可能會因為各種原因&#xff08;如 props 數據格式錯誤、組件內部邏輯異常等&#xff09;拋…

deepseek-v3在阿里云和騰訊云的使用中的差異

隨著deepseek在各大云商上線&#xff0c;試用了下阿里云和騰訊云的deepseek服務&#xff0c;在回答經典數學問題9.9和9.11誰大時&#xff0c;發現還是有差異的。將相關的問題記錄如下。 1、問題表現 筆者使用的openai的官方sdk go-openai。 因本文中測驗主要使用阿里云和騰訊…

寶塔面板開始ssl后,使用域名訪問不了后臺管理

寶塔面板后臺開啟ssl訪問后&#xff0c;用的證書是其他第三方頒發的證書 再使用 域名/xxx 的形式&#xff1a;https://域名:xxx/xxx 訪問后臺&#xff0c;結果出現如下&#xff0c;不管使用 http 還是 https 的路徑訪問都進不后臺管理 這個時候可以使用 https://ip/xxx 的方式來…

開發板部署|RK3588部署DeepSeek-1.5B

前言 在 RK3588 上部署大模型可以顯著提升計算效率、節能、加速推理過程&#xff0c;并實現本地化推理&#xff0c;適合各種邊緣計算應用&#xff0c;如智能設備、自動駕駛、工業機器人、健康監測等領域。此外&#xff0c;RK3588 配備了強大的 NPU&#xff08;神經網絡處理單元…

UDP與TCP

用UDP一定比用TCP快嗎&#xff1f; 假設我們需要在a電腦的進程發一段數據到b電腦的進程我們可以選擇使用TCP或UDP協議進行通信。 對于TCP這樣的可靠性協議每次消息發出后都能明確知道對方有沒有收到&#xff0c;就像打電話一樣&#xff0c;只要“喂喂"兩下對方就能回你個…