ADC知識(2)——直流參數(輸入電壓參考,參考電流輸入,積分非線性誤差,差分非線性誤差)...

目錄

四、 ? ? ? 輸入參考電壓范圍

五、 ? ? ? 參考電流

六、 ? ? ? 非線性問題

差分非線性誤差

積分非線性


四、 ? ? ? 輸入參考電壓范圍

大多數數據手冊中,將它定義為一個特定的參考電壓值,通常這個電壓作為 此轉換器最常用的參考電壓。在參考輸入電壓范圍內,使用任何其他參考電壓值 器件的性能與指定的電壓值是相同的。但是并不意味著這個參數不夠重要,在設計中需要選取合適的參考電壓范圍,從而更好的利用ADC的動態范圍。

圖 5未完全利用ADC動態范圍

在數據手冊中往往會說明,參數是如何受不同參考電壓影響的,以ADS9110 為例給出了指定的參考范圍中不同的參考電壓對于性能的影響:

以上的所述均為參考電壓范圍對于性能的影響。另一個方面,參考電壓的輸入紋波也會對器件的性能造成極大的影響。這個我后期再講。

五、 ? ? ? 參考電流
?

SAR型ADC的輸入參考端,連接到了一組開關電容上,在轉換周期內開關電容連接到了比較電路,與參考電壓比較,進行快速的充電和放電,對于整個轉換周期中,輸入參考電流最大的那個值,作為內部電容充電的起始位(關于SAR型ADC的具體詳細工作流程請自行百度)。有的ADC會指出這一個參數。

這個表展示的是 ADS8881 的例子 可以看出在整個轉化中 它的典型電流值是 300μA。注意,這里的 300μA 是指的平均電流。一般在實際電流最大可以達到幾個mA,同時還需要注意的是。假如整個轉換周期為100nS,可能到達峰值之前的時間就有十幾納秒。一般情況下我們會在輸入電容端,放置一個較大的濾波電容。以來滿足電流的快速瞬態響應,同時參考端也會提供一個平均電流,來補充電容器之間的快速變化。一般情況下瞬變的時間相對較短。所以在 ADC的參考端會需要一個較寬的寬帶緩沖區。數據手冊中的參考端應該放置何種電容(封裝,材料,容量等等)正是基于此得到的。在設計中一定不可以忽視這個問題。

六、 ? ? ? 非線性問題

為了討論ADC的非線性問題,首先需要先了解ADC的理想模型。

這里呈現的是一個 ADC 的理想傳輸函數水平軸表示連續的模擬輸入信號 縱軸顯示的是數字輸出代碼。可以被認為 將模擬輸入信號近似到隨其最接近的數字對應位置。ADC的滿量程輸入范圍在數字編碼的總數上是被等量劃分的,也就是將這個圖中的紅色的虛線轉化成了階梯性的藍線 位數是指數字輸出。在這個例子中我們有四位二進制數字用于表示滿量程模擬信號。二進制數字代碼數量是24即16。在本次例子中,用滿量程電壓(2V)除以16等于 0.125V 即為能測量的電壓分辨(滿量程輸入范圍為 0 到 2V 但最大可檢測的輸入電壓是 是滿量程減去一個 LSB,即 1.875V )。

? ? ? ? ? ? 圖 8 理想ADC模型

?

差分非線性誤差

差分非線性是用來衡量實際一個LSB和一個理想LSB之間的區別。

左圖為直觀的表示了ADC的差分非線性ED (Differential Linearity Error)從這個圖中可以看出。一些數字輸出對應的寬度要比實際寬度長(或者更短)。如果與理想代碼寬度相同,則差分非線性為零。

圖 9 ADC差分非線性示意圖

在某些極端情況下,當這種誤差很大的時候,會導致完全跳過代碼的轉換。通常稱為缺失代碼。舉個例子,假設在數字4`b1000處對應的數字量化寬度足夠寬,以至于覆蓋到1001對應的輸出,導致任何模擬電壓輸入ADC都無法輸出1001這個代碼。丟失代碼是很多電子系統中非常嚴重的問題,因此現在大多數的 ADC 都會設計和測試這個參數,以保證盡量減少不確定度。下圖是一個更加實用的 18位 AD 轉換的示例。這個圖中是將計算了數千個 DNL組合在一起形成了一個圖示。可以看出這顆器件的DNL通常是小于0.5個 LSB 的。是一個十分低噪聲的ADC。當然了STM32 內部的ADC的性能就要差一些了。(依據手冊通常在±1LSB最大可達±2LSB)。


積分非線性

?積分非線性是用來衡量 ADC 傳遞函數與擬合直線的比較。

為了消除增益和偏置誤差,我們通常將實際ADC傳遞函數的兩個端點進行擬合 在這個例子中,綠色的線就表示擬合直線。從初始代碼 0000到終止代碼 1111 對于一個理想的線性 ADC 它的擬合直線是處于傳遞函數的中間的。然而在這個情況下可以看出被測的函數,即為藍色這條線。它偏離了線性擬合,所以具有一個正的積分非線性。與差分非線性相同積分非線性也可以表示在ADC的輸出代碼上,可以用 LSB 來表示,也可以用滿量程的百分比來表示。一般來說這個誤差相較于積分非線性誤差來說要大好幾倍(STM32的這兩個指標如所示)。

圖 12 STM32的積分非線性和差分非線性

轉載于:https://www.cnblogs.com/maobitcoder/p/10740277.html

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

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

相關文章

LuckyDraw app使用CosmosDB的成本分析

我在以前的博客里說過我的LuckyDraw app在數據存儲方面使用的是 Azure Table Storage,當時選擇這個的原因是成本考慮,因為它實在是便宜,對于我這種個人開發維護的免費的teams app來說,成本是一個很重要的考量點。 當然&#xff0…

React 重溫之 組件生命周期

生命周期 任何事物都不會憑空產生,也不會無故消亡。一個事物從產生到消亡經理的各個階段,我們稱之為 生命周期。 具體到我們的前端組件上來,一個組件的生命周期可以大體分為創建、更新、銷毀這個三個階段。 本文主要介紹React 的組件生命周期…

遷移聊天記錄到Teams

有一些朋友問我teams是否支持將其他平臺/系統里的聊天記錄遷移某個channel里,答案是肯定的,teams團隊在去年年中的時候就提供了這個功能。這個功能是通過graph api來完成的,我們今天就來看看如何遷移聊天記錄到teams里。 首先,我…

leetcode-191-Number of 1 Bits

題目描述: Write a function that takes an unsigned integer and returns the number of 1 bits it has (also known as the Hamming weight). Example 1: Input: 11 Output: 3 Explanation: Integer 11 has binary representation 000000000000000000000000000010…

androidsdk里的android.bat和uiautomatorview.bat啟動就閃退問題

進入D:\androidsdk\tools文件夾: 使用編輯文件工具: rem Check we have a valid Java.exe in the path.set java_execall lib\find_java.bat 替換成下列代碼: rem Check we have a valid Java.exe in the path.set java_exeC:\Program Files\…

10 個優質的 Laravel 擴展推薦

這里有 10 個用來搭建 Laravel 應用的包 為何會創建這個包的列表?因為我是一個「比較懶」的開發者,在臉書上是多個 Laravel 小組的成員。平日遇到最多的問題就是開發是需要用那些包。我很懶所以我不想每次都從頭開始搞這些東東。 為何此文沒有包括管理包…

Teams AppId, InstallationId 和 ExternalId 的區別

大家如果看teams的 graph api 開發文檔,可能會把 app id, installation id 和 external id 搞混,我自己一開始的時候就有點被搞暈了,再加上app manifest里面的 id 和 bot id,基本就徹底暈掉了。 那我們今天這篇文章就來講講這幾種…

osi參考模型(開放系統互連參考模型)

自互聯網誕生以來,隨著網絡飛速發展,用戶迫切要求能在不同體系結構的網絡空間交換信息,使得不同的網絡能夠互聯起來。 國際化標準組織(International Organization for Standardization,即ISO)從1977年開始…

Java:反射+泛型:獲取類型參數的實例

2019獨角獸企業重金招聘Python工程師標準>>> 場景描述&#xff1a; 我需要開發四個頁面&#xff0c;每個頁面都是只涉及增刪改查的基本邏輯。 最簡單的寫法&#xff1a; 創建四個接口A,B,C,D&#xff0c;每個接口中都聲明了增刪改查四個方法,完全一致 public Map<…

servlet(1)

servlet類分級&#xff1a; 1.ServletConfig接口類&#xff1a;理解為讀取servlet配置的類&#xff0c;里面有四個抽象方法如下&#xff1a; ①getServletName:獲取servlet在web.xml中的名字 ②getServletContext&#xff1a;獲取Servlet上下文&#xff0c;相當于web項目管理所…

如何在 Apple Silicon (M1) 上開發 Teams App

apple 在幾個月前發布了自家的芯片 M1&#xff0c;由于將多核cpu&#xff0c;多核gpu&#xff0c;神經網絡運算&#xff0c;內存和其他一切處理部件高度整合在一起&#xff0c;大大提高數據傳輸速度。發布后好評如潮&#xff0c;我也沒有忍住&#xff0c;入手了一臺最低配的mac…

BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——題解

https://www.lydsy.com/JudgeOnline/problem.php?id5289 https://www.luogu.org/problemnew/show/P4437 考慮對于a[i]m,a[m]n&#xff0c;我們令p[j]i,p[k]m&#xff08;一定會有一對(j,k)滿足這個條件的&#xff09;&#xff0c;則我們會有p[k]a[p[j]]&#xff0c;此時我們要…

集成學習-Adaboost

Adaboost 中文名叫自適應提升算法&#xff0c;是一種boosting算法。 boosting算法的基本思想 對于一個復雜任務來說&#xff0c;單個專家的決策過于片面&#xff0c;需要集合多個專家的決策得到最終的決策&#xff0c;通俗講就是三個臭皮匠頂個諸葛亮。 對于給定的數據集&#…

主動給團隊或用戶安裝Teams App

在寫這篇文章的時候&#xff0c;這個新功能還處在 Public Review&#xff0c;這意味著可能&#xff08;很小的可能性&#xff09;這里寫的方法在正式發布前還會有一些改動。 之前有一些做teams app開發的朋友問過我&#xff0c;能不能主動給一個team或者一個用戶安裝一個指定的…

thinkphp5多級控制器是什么?怎么使用?

thinkphp5多級控制器是什么&#xff1f;怎么使用&#xff1f; 一、總結 1、多級控制器是讓控制器的級數變成多級&#xff0c;也就是controller目錄下可以新建其它目錄。 2、使用的話注意目錄下的控制的的命名空間&#xff08;加上目錄名&#xff09;&#xff08;namespace app\…

給Teams消息附加圖片的三種方式

Teams消息支持三種不同的方式來添加圖片&#xff0c;這篇文章我們來一起看一下這三種方式。 Inline圖片 var imagePath Path.Combine(Environment.CurrentDirectory, "abc.png"); var imageData Convert.ToBase64String(File.ReadAllBytes(imagePath)); var image…

4月18日 MySQL學習

正式開始了數據庫的學習 昨天下好的MySQL 今天正式開始學習的&#xff0c;介紹了多種數據庫軟件&#xff0c;當然 學習的這個是開源的 免費的。 DBMS(數據庫管理系統)這就是我們學習的數據庫的軟件 數據庫分為關系型數據庫管理系統和非關系型數據庫管理系統(沒有深入的了解) 今…

企業數據湖構建之旅

摘要&#xff1a;隨著互聯網的發展&#xff0c;數據的規模和類型都呈現一個爆炸性的增長&#xff0c;對于這么多類型的數據&#xff0c;如何進行有效的管理和存儲&#xff0c;包括數據的分析&#xff0c;這是大家要面臨的一個問題。在武漢云棲大會上&#xff0c;阿里云高級產品…

用AzureFunction開發最簡單的Teams Bot

之前我有一篇文章講了如何在azure function上開發最簡單的outgoing webhook&#xff0c;收到一些反饋&#xff0c;建議我介紹一下如果在azure function上開發teams bot&#xff0c;那這篇文章就來講一下如何用function來快速開發bot。 我們先創建一個azure function資源&#…

20189215 2018-2019-2 《密碼與安全新技術專題》第7周作業

課程&#xff1a;《密碼與安全新技術專題》 班級&#xff1a; 1892班 姓名&#xff1a; 李煬 學號&#xff1a;20189215 上課教師&#xff1a;謝四江 上課日期&#xff1a;2019年4月9日 必修/選修&#xff1a; 選修 1.本次講座的學習總結 講座主題&#xff1a;信息隱藏 信息隱藏…