在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C總線、UART總線和A/D轉(zhuǎn)換器應(yīng)用設(shè)計

AGk5_ZLG_zhiyua ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-28 08:57 ? 次閱讀

本文導(dǎo)讀

在傳統(tǒng)的基于寄存器的開發(fā)模式中,使用一個外設(shè)往往要閱讀英文手冊,理解寄存器每一位的含義,一步一步操作、調(diào)試,十分麻煩。AWorks提供的外設(shè)通用接口不僅可以跨平臺復(fù)用,而且非常簡潔,一個外設(shè)往往只有2~3個接口。本文將介紹通用的I2C、UARTADC接口。本文為《面向AWorks框架和接口的編程(上)》第三部分軟件篇——第7章通用外設(shè)接口——第4~6小節(jié):I2C總線、UART總線和A/D轉(zhuǎn)換器

7.4 I2C總線

7.4.1 I2C總線簡介

I2C器件的兩線制總線,不僅硬件電路非常簡潔,而且還具有極強的復(fù)用性和可移植性。I2C總線不僅適用于電路板內(nèi)器件之間的通信,而且通過中繼器還可以實現(xiàn)電路板與電路板之間長距離的信號傳輸,因此使用I2C器件非常容易構(gòu)建系統(tǒng)級電子產(chǎn)品開發(fā)平臺。其特點如下:

  • 總線僅需2根信號線,減少了電路板的空間和芯片管腳的數(shù)量,降低了互連成本;

  • 同一條I2C總線上可以掛接多個器件,器件之間按不同的編址區(qū)分,因此不需要任何附加的I/O或地址譯碼器;

  • 非常容易實現(xiàn)I2C總線的自檢功能,以便及時發(fā)現(xiàn)總線的異常情況;

  • 總線電氣兼容性好,I2C總線規(guī)定器件之間以開漏I/O互連,因此只要選取適當?shù)纳侠?a target="_blank">電阻就能輕易實現(xiàn)3V/5V邏輯電平的兼容;

  • 支持多種通信方式,一主多從是最常見的通信方式。此外還支持雙主機通信、多主機通信與廣播模式;

  • 通信速率高,其標準傳輸速率為100Kbps(每秒100K位),在快速模式下為400Kbps,按照后來修訂的版本,位速率可高達3.4Mbps。

7.4.2 I2C接口

絕大部分情況下,MCU都作為I2C主機與I2C從機器件通信,因此這里僅介紹AWorks中將MCU作為I2C主機的相關(guān)接口,接口原型詳見表7.14。

表7.14 I2C標準接口函數(shù)

1. 定義I2C從機器件實例

對于用戶來講,使用I2C總線的目的往往是用于操作一個從機器件,比如,LM75、E2PROM等。MCU作為I2C主機與從機器件通信,需要知道從機器件的相關(guān)信息,比如,I2C從機地址等。在AWorks中,定義了統(tǒng)一的從機器件類型:aw_i2c_device_t,用于包含從機器件相關(guān)的信息,以便主機正確的與之通信。該類型的具體定義用戶無需關(guān)心,在使用I2C操作一個從機器件前,必須先使用該類型定義一個與從機器件對應(yīng)的器件實例,例如:

其中,dev為用戶自定義的從機實例,其地址可以作為接口函數(shù)中p_dev的實參傳遞。

2. 初始化從機器件實例

當完成從機器件實例的定義后,還需要完成其初始化,指定從機器件相關(guān)的信息,初始化函數(shù)的原型為:

其中,p_dev為指向I2C從機實例的指針,busid為I2C總線編號,addr為從機器件地址,flags為從機器件相關(guān)的一些標志。

在AWorks中,一個系統(tǒng)往往具有多條I2C總線,各總線之間通過busid區(qū)分,一個系統(tǒng)實際支持的I2C總線條數(shù)與具體硬件平臺相關(guān)。例如,在i.MX28x系統(tǒng)中,最高可以支持2條I2C總線,對應(yīng)的總線編號即為:0 ~ 1。busid參數(shù)即用于指定使用那條I2C總線與從機器件進行通信。

addr為從機器件的I2C地址,由于讀/寫方向位由系統(tǒng)自動控制,因此,地址中不需要包含讀寫方向位。地址可以為7位地址和10位地址。

flags為從機器件相關(guān)的屬性標志,可分為3大類:從機地址的位數(shù)、是否忽略無應(yīng)答和器件內(nèi)子地址(通常又稱之為“寄存器地址”)的字節(jié)數(shù)。具體可用屬性標志詳見表7.15,可使用“|”操作連接多個屬性標志。

表7.15 從機設(shè)備屬性

例如,要使用I2C0(I2C總線的busid為0)操作溫度傳感器芯片LM75B,則應(yīng)該首先定義并初始化一個與LM75B對應(yīng)的從機器件。這就還需要知道兩點重要的信息:器件從機地址和實例屬性。

要獲取這些信息,就必須查看芯片相關(guān)的數(shù)據(jù)手冊,對于LM75B,其引腳分布圖詳見圖7.12。LM75B的器件地址為7位地址:1001A2、A1、A0,其中,A2、A1、A0分別為引腳A2、A1、A0的狀態(tài)。在擴展板中,LM75B等效的應(yīng)用電路詳見圖7.11。

其中,R9和R10是I2C總線的上拉電阻,同時,只要短接(J13_1、J13_2)與(J11_1、J11_2),LM75的SCL和SDA引腳分別與I2C0總線的SCL和SDA相連。

圖7.11 LM75B應(yīng)用電路

圖7.12 LM75B管腳圖

由圖7.11可知,A2、A1、A0均與地連接,因此,LM75的地址中相應(yīng)位的值均為0,由此可得LM75B的7位地址為:1001000,即0x48。

從機屬性分為從機地址屬性、應(yīng)答屬性和器件內(nèi)子地址屬性。LM75B的從機地址為7位,其對應(yīng)的屬性標志為AW_I2C_ADDR_7BIT。

如果從機實例不能應(yīng)答,則設(shè)置AW_I2C_IGNORE_NAK標志,一般來說,標準的I2C從機器件均可產(chǎn)生應(yīng)答信號,除非特殊說明,否則都不需要使用該標志。LM75B內(nèi)部共計有4個寄存器,它們的定義詳見表7.16。

表7.16 LM75B內(nèi)部寄存器列表

由表中地址欄內(nèi)容可知,所有寄存器的地址均為8位,因此,器件內(nèi)子地址為一個字節(jié),對應(yīng)的屬性標志為:AW_I2C_SUBADDR_1BYTE。因為器件子地址只有一個字節(jié),所以沒有高字節(jié)與低字節(jié)之分,也就無需使用

AW_I2C_SUBADDR_MSB_FIRST

或AW_I2C_SUBADDR_LSB_FIRST標志。

通過以上分析,得到了LM75B相關(guān)的從機信息,為此,可以定義并初始化一個與LM75B對應(yīng)的從機器件實例,范例程序詳見程序清單7.26。

程序清單7.26 從機器件實例初始化函數(shù)范例程序

3. 讀操作

從I2C從機器件指定的子地址中讀出數(shù)據(jù)的函數(shù)原型為:

其中,p_dev為指向I2C從機實例的指針,subaddr為器件子地址,以指定讀取數(shù)據(jù)的位置,p_buf指向存放讀取數(shù)據(jù)的緩沖區(qū),nbytes指定讀取數(shù)據(jù)的字節(jié)數(shù)。返回值為標準的錯誤號,返回AW_OK時表示讀取成功,否則,表示讀取失敗。

由表7.16可知,在LM75B中,地址0存放了2字節(jié)的溫度值,如需讀取溫度,則可以直接從地址0中讀取2字節(jié)數(shù)據(jù),范例程序詳見程序清單7.27。

程序清單7.27 讀取數(shù)據(jù)范例程序

讀取的兩字節(jié)數(shù)據(jù)表示的溫度值是多少呢?這兩個字節(jié)具體表示的溫度值含義可從芯片的數(shù)據(jù)手冊獲取。溫度使用16位二進制補碼表示,最高位為符號位,最高位為1時,表示溫度為負數(shù)。讀取溫度時,讀取的首個字節(jié)是高8位數(shù)據(jù),緊接著的字節(jié)是低8位數(shù)據(jù)。各個位表示的溫度權(quán)重詳見表7.17。

表7.17 溫度值數(shù)據(jù)各個位的含義

表中,2的n次方表示溫度的權(quán)重。實際中,LM75B的溫度分辨率有限,只能達到小數(shù)點后3位,低5位的值通常為0,是無效的,因此,LM75B實際溫度的分辨率為2-3,即0.125℃。

據(jù)此,可以將字節(jié)0和字節(jié)1合并為一個有符號的16位整數(shù),例如:

由于低5位無效,因此,式中將字節(jié)1與0xE0(1110 0000)作了 “與”運算,將低5位可靠的清0。同時,式中將整數(shù)部分左移了8位,小數(shù)部分也使用整數(shù)表示,相當于把原溫度值擴大了256(28)倍。因此,temp的值為實際溫度值的256倍,由此得到了LM75B采集到的溫度值。

基于此,可以編寫一個溫度采集的范例程序,詳見程序清單7.28。

程序清單7.28 溫度采集范例程序

程序中,每秒采集一次溫度值,并使用aw_kprintf()打印輸出。打印輸出當前的溫度值時,由于aw_kprintf()暫時不支持直接打印浮點數(shù),例如:

因此,分別打印了整數(shù)部分和小數(shù)部分,整數(shù)部分可以將temp整除256得到。計算小數(shù)部分時,先將temp擴大了1000倍,再除以256,得到的值即為實際溫度的1000倍,最后對1000取余,即可得到實際溫度小數(shù)點后3位的值。例如,實際溫度為11.375度,則temp的值為11.375的256倍,即2912,整數(shù)部分即為該值整除256:

小數(shù)部分的值計算過程如下:

最終打印輸出的結(jié)果即為:

這樣的計算過程雖然看起來復(fù)雜了一些,但是其卻從根本上避免了浮點運算,保證了程序運行的效率。在沒有硬件浮點運算單元的MCU中,浮點運算是通過軟件模擬的,效率非常低下。在AWorks中,如非必要,都應(yīng)該盡可能避免浮點運算。即使是在有浮點運算單元的MCU中,也應(yīng)該在一些基礎(chǔ)的運算中避免使用浮點運算,因為在少量簡單的浮點運算中,使用硬件浮點運算單元計算時,效率并不能得到明顯的提升,反而增加了系統(tǒng)的負擔,例如,當外部中斷產(chǎn)生時,需要保護現(xiàn)場,如果使用了硬件浮點運算單元,則保護現(xiàn)場的數(shù)據(jù)量將大大增加。一般來講,只有在需要大量浮點運算的場合(比如,在一些算法計算中,很難使用整數(shù)運算來避免浮點運算),才使用浮點運算。

需要特別說明的是,這里通過I2C總線直接讀取了LM75B溫度傳感器中的溫度值,僅用于介紹I2C總線接口的使用方法。實際中,AWorks已經(jīng)定義了通用的溫度接口,在應(yīng)用中讀取溫度時,均建議直接使用通用的溫度接口。

4. 寫操作

向I2C從機實例指定的子地址中寫入數(shù)據(jù)的函數(shù)原型為:

其中,p_dev為指向I2C從機實例的指針,subaddr為器件子地址,以指定寫入數(shù)據(jù)的位置,p_buf指向存放待寫入數(shù)據(jù)的緩沖區(qū),nbytes指定寫入數(shù)據(jù)的字節(jié)數(shù)。返回值為標準的錯誤號,返回AW_OK時表示寫入成功,否則,表示寫入失敗。

由表7.16可知,在LM75B中,地址2和地址3中各存放了2字節(jié)的溫度值,分別表示溫度上限值(Thyst)和下限值(TOS),Thyst必須小于TOS,兩個溫度值均是可讀可寫的,默認情況下,Thyst的值為75℃,TOS的值為80℃。它們存儲溫度值的格式和地址0中溫度值的格式類似,唯一不同的是,其表示溫度的分辨率只有0.5度,因此,小數(shù)部分只有一位有效,低7位全為0。例如,同樣將2字節(jié)數(shù)據(jù)看作一個有符號的16位整數(shù)temp,則temp的值為溫度值的256倍。由此可得,若要表示80.5度,則對應(yīng)的16位數(shù)據(jù)的值為:80.5 * 256 = 20608,即0x5080。

LM75B每次采集到新的溫度時,都將與這兩個溫度值作比較,比較的結(jié)果將決定OS引腳的輸出,以作為一種溫度報警的機制。具體比較的方法與LM75B所處的模式相關(guān),LM75B可以工作在比較模式或中斷模式(可通過配置寄存器配置):若LM75B工作在比較模式,則當采樣溫度大于TOS時,OS引腳輸出激活電平(激活電平可以通過配置寄存器配置為高電平或低電平),當采樣溫度降低到THYST以下時,OS引腳恢復(fù)到正常電平;若LM75B工作在中斷模式,首先,采樣溫度與TOS比較,當采樣溫度大于TOS時,OS引腳輸出激活電平,直到主機讀取一次LM75B后,OS引腳將自動恢復(fù)為正常電平。接著,采樣溫度將切換為與THYST比較,當采樣溫度低于THYST時,OS引腳輸出激活電平,直到主機讀取一次LM75B后,OS引腳將自動恢復(fù)為正常電平。接著,又將采樣溫度切換為與TOS比較,當采樣溫度大于TOS時,OS引腳輸出激活電平,以此類推。示意圖詳見圖7.13。

圖7.13 LM75B的OS引腳輸出示意圖

注:圖中以激活電平為低電平,正常電平為高電平為例。在中斷模式下,OS引腳可以被兩種操作復(fù)位為正常電平:被主機讀取一次數(shù)據(jù);主機通過寫配置寄存器,使LM75B進入關(guān)機模式。更多詳細的內(nèi)容可以查閱LM75B的數(shù)據(jù)手冊,這里僅為簡單介紹使用AWorks的I2C接口操作I2C從機器件的方法。

例如,要修改TOS的值為80.5℃,則需要修改TOS寄存器的值為0x5080,寫入時,高字節(jié)先寫入,低字節(jié)后寫入,即先寫入0x50,后寫入0x80。范例程序詳見程序清單7.29。

程序清單7.29 寫入數(shù)據(jù)范例程序

由于TOS寄存器是可讀可寫的,為了驗證是否寫入成功,可以通過I2C讀取接口,再讀取出TOS寄存器的值,如果讀出的值與寫入的值相同,則表明寫入成功。范例程序詳見程序清單7.30。

程序清單7.30 驗證寫入數(shù)據(jù)是否成功的范例程序

7.5 UART總線

7.5.1 UART簡介

UART

(Universal Asynchronous Receiver/Transmitter)是一種通用異步收發(fā)傳輸器,其使用串行的方式在雙機之間進行數(shù)據(jù)交換,實現(xiàn)全雙工通信。數(shù)據(jù)引腳僅包含用于接收數(shù)據(jù)的RXD和用于發(fā)送數(shù)據(jù)的TXD。

UART是一種串行通信協(xié)議,數(shù)據(jù)在數(shù)據(jù)線上按位一位一位的發(fā)送,UART協(xié)議主要有以下幾個概念需要了解:

  • 波特率

波特率是衡量數(shù)據(jù)傳輸速率的指標,表示每秒傳送數(shù)據(jù)的位數(shù),值越大,數(shù)據(jù)通信的速率越高,數(shù)據(jù)傳輸?shù)迷娇臁3R姷牟ㄌ芈视?800、9600、14400、19200、38400、115200等等,如果波特率為115200,則表示每秒鐘可以傳輸115200位(注意:是bit,不是byte)數(shù)據(jù)。

  • 空閑位

數(shù)據(jù)線上沒有數(shù)據(jù)傳輸時,數(shù)據(jù)線處于空閑狀態(tài)。空閑狀態(tài)的電平邏輯為“1”。

  • 起始位

起始位表示一幀數(shù)據(jù)傳輸?shù)拈_始,起始位的電平邏輯是“0”。

  • 數(shù)據(jù)位

緊接起始位后,即為實際通信傳輸?shù)臄?shù)據(jù),數(shù)據(jù)的位數(shù)可以是5、6、7、8等,數(shù)據(jù)傳輸時,從最低位開始依次傳輸。

  • 奇偶校驗位

奇偶校驗位用于接收方對數(shù)據(jù)進行校驗,及時發(fā)現(xiàn)由于通信故障等問題造成的錯誤數(shù)據(jù)。奇偶校驗位是可選的,可以不使用奇偶校驗位。奇偶校驗有奇校驗和偶校驗兩種形式,該位的邏輯電平與校驗方法和所有數(shù)據(jù)位中邏輯“1”的個數(shù)相關(guān)。

奇校驗:通過設(shè)置該位的值(“1”或“0”),使該位和數(shù)據(jù)位中邏輯“1”的總個數(shù)為奇數(shù)。例如,數(shù)據(jù)位為8位,值為:10011001,1的個數(shù)為4個(偶數(shù)),則奇校驗時,為了使1的個數(shù)為奇數(shù),就要設(shè)置奇偶校驗位的值為1,使1的總個數(shù)為5個(奇數(shù))。

偶校驗:通過設(shè)置該位的值(“1”或“0”),使該位和數(shù)據(jù)位中邏輯“1”的總個數(shù)為偶數(shù)。例如,數(shù)據(jù)位為8位,值為:10011001,1的個數(shù)為4個(偶數(shù)),則偶校驗時,為了使1的個數(shù)為偶數(shù),就要設(shè)置奇偶校驗位的值為0,使1的個數(shù)保持不變,為4(偶數(shù))。

通信雙方使用的校驗方法應(yīng)該一致,接收方通過判斷“1”的個數(shù)是否為奇數(shù)(奇校驗)或偶數(shù)(偶校驗)來判定數(shù)據(jù)在通信過程中是否出錯。

  • 停止位

停止位表示一幀數(shù)據(jù)的結(jié)束,其電平邏輯為“1”,其寬度可以是1位、1.5位、2位。即其持續(xù)的時間為位數(shù)乘以傳輸一位的時間(由波特率決定),例如,波特率為115200,則傳輸一位的時間為1/115200秒,約為8.68us。若停止位的寬度為1.5位,則表示停止位持續(xù)的時間為:1.5 × 8.68us ≈ 13us。

常見的幀格式為:1位起始位,8位數(shù)據(jù)位,無校驗,1位停止位。由于起始位的寬度恒為1位,不會變化,而數(shù)據(jù)位,校驗位和停止位都是可變的,因此,往往在描述串口通信協(xié)議時,都只是描述其波特率、數(shù)據(jù)位,校驗位和停止位,不再單獨說明起始位。

注意,通信雙方必須使用完全相同的協(xié)議,包括波特率、起始位、數(shù)據(jù)位、停止位等。如果協(xié)議不一致,則通信數(shù)據(jù)會錯亂,不能正常通信。在通信中,若出現(xiàn)亂碼的情況,應(yīng)該首先檢查通信雙方所使用的協(xié)議是否一致。

7.5.2 串行接口

在AWorks中,定義了通用的串行接口,可以使用串行接口操作UART,實現(xiàn)數(shù)據(jù)的收發(fā)。接口原型詳見表7.18。

表7.18 串行接口(aw_serial.h)

1. UART控制

在使用UART進行數(shù)據(jù)傳輸前,需要正確配置串行通信協(xié)議,比如:波特率、數(shù)據(jù)位、停止位、校驗位等。其函數(shù)原型為:

其中,com為串口設(shè)備的ID,request表示本次請求控制的命令,p_arg為與request對應(yīng)的參數(shù),其具體類型與request的值相關(guān)。返回值為標準的錯誤號,返回AW_OK時表示本次控制成功,否則,表示控制失敗。

在AWorks中,一個系統(tǒng)往往可以有多路串口輸出,例如,在i.MX28x中,有1路調(diào)試串口,5路應(yīng)用串口,為了區(qū)分各個串口,為各個串口設(shè)備分配了唯一的編號,如在i.MX28x中,各個串口設(shè)備分配的編號詳見表7.19。

表7.19 各串口設(shè)備對應(yīng)的編號

COM0 ~ COM5是在aw_serial.h文件中定義的宏,即:

request表示本次請求控制的命令,p_arg為與之對應(yīng)的參數(shù)。常見命令與對應(yīng)p_arg參數(shù)的實際類型詳見表7.20。

表7.20 UART常用控制命令

  • 設(shè)置波特率

設(shè)置波特率使用SIO_BAUD_SET命令,該命令(包括后文以SIO_口味前綴的各個命令宏定義)在aw_sio_common.h文件中定義,aw_serial.h文件已經(jīng)自動包含該文件,用于無需再額外包含。設(shè)置波特率為115200的范例程序詳見程序清單7.31。

程序清單7.31 設(shè)置波特率范例程序

  • 獲取波特率

獲取波特率使用SIO_BAUD_GET命令,獲取波特率的范例程序詳見程序清單7.32。

程序清單7.32 獲取波特率范例程序

  • 設(shè)置硬件參數(shù)

設(shè)置硬件參數(shù)包括通信協(xié)議相關(guān)的參數(shù),比如:數(shù)據(jù)位、校驗位、停止位等。設(shè)置硬件參數(shù)對應(yīng)的命令為SIO_HW_OPTS_SET,其對應(yīng)的p_arg為32位整數(shù),是由多個參數(shù)宏通過或(“|”)運算符連接組成。相關(guān)的參數(shù)宏詳見表7.21。

表7.21 UART硬件參數(shù)(aw_sio_common.h)

例如,幾種常見的配置范例詳見程序清單7.33。

程序清單7.33 設(shè)置硬件參數(shù)的范例程序

  • 獲取硬件參數(shù)

獲取當前硬件參數(shù)的命令為SIO_HW_OPTS_GET。例如,通過獲取硬件參數(shù),判斷當前使用何種校驗方式的范例程序詳見程序清單7.34。

程序清單7.34 獲取硬件參數(shù)的范例程序

此外,在發(fā)送或接收數(shù)據(jù)時,還會使用到幾個命令,這些命令在講解發(fā)送數(shù)據(jù)和接收數(shù)據(jù)時再詳細介紹。

2. 發(fā)送數(shù)據(jù)

在AWorks中,為每個串口設(shè)備都分配了一個發(fā)送數(shù)據(jù)緩沖區(qū)(默認大小為128字節(jié)),用于緩存用戶發(fā)送的數(shù)據(jù)。當用戶發(fā)送數(shù)據(jù)時,首先會將數(shù)據(jù)加載到緩沖區(qū)中,加載到緩沖區(qū)后,串口設(shè)備將按照設(shè)定的波特率自動發(fā)送緩沖區(qū)中的數(shù)據(jù)。用戶將數(shù)據(jù)寫入緩沖區(qū)后,即可不用再處理串口的發(fā)送,轉(zhuǎn)而處理其它事務(wù)。發(fā)送數(shù)據(jù)的函數(shù)原型為:

其中,com為串口設(shè)備的編號,p_buffer指向待發(fā)送數(shù)據(jù)的緩沖區(qū),nbytes為發(fā)送數(shù)據(jù)的字節(jié)數(shù)。返回值為成功寫入緩沖區(qū)的數(shù)據(jù)個數(shù)。比如,發(fā)送一個字符串“Hello World!“,范例程序詳見程序清單7.35。

程序清單7.35 發(fā)送數(shù)據(jù)范例程序

3. 接收數(shù)據(jù)

在AWorks中,同樣為每個串口設(shè)備都分配了一個接收數(shù)據(jù)緩沖區(qū)(默認大小為128字節(jié)),用于緩存串口設(shè)備接收到的數(shù)據(jù),用戶可以通過命令查詢當前接收到的數(shù)據(jù)字節(jié)數(shù),其對應(yīng)的命令為:AW_FIONREAD,獲取COM1的接收緩沖區(qū)中已接收數(shù)據(jù)個數(shù)的范例程序詳見程序清單7.36。

程序清單7.36 獲取接收緩沖區(qū)中已接收數(shù)據(jù)個數(shù)的范例程序

用戶可通過接收數(shù)據(jù)接口讀取緩沖區(qū)中的數(shù)據(jù),其函數(shù)原型為:

其中,com為串口設(shè)備的編號,p_buffer指向存儲讀取數(shù)據(jù)的緩沖區(qū),maxbytes為讀取數(shù)據(jù)的最大字節(jié)數(shù),其值往往與p_buffer指向的緩沖區(qū)大小一致。返回值為成功讀取的數(shù)據(jù)個數(shù)。例如,接收數(shù)據(jù)的范例程序詳見程序清單7.37。

程序清單7.37 接收數(shù)據(jù)范例程序

若當前接收緩沖區(qū)中具有足夠的數(shù)據(jù),即已接收數(shù)據(jù)不小于maxbytes,則成功讀取maxbytes字節(jié)的數(shù)據(jù),函數(shù)立即返回。若沒有足夠的數(shù)據(jù),即已接收數(shù)據(jù)小于maxbytes小,則默認情況下,會一直阻塞等待,直到接收的數(shù)據(jù)量達到maxbytes。若用戶不希望一直阻塞等待,則可以設(shè)定一個超時時間,當?shù)却龝r間達到該值時,無論是否接收到maxbytes字節(jié)的數(shù)據(jù),函數(shù)都會返回。

設(shè)定超時時間的命令為:AW_TIOCRDTIMEOUT(在aw_ioctl.h文件中定義)。設(shè)置超時時間為100ms的范例程序詳見程序清單7.38。

程序清單7.38 設(shè)置讀等待的超時時間為100ms

例如,通過串口控制LED0的亮滅,當接收到"on"時,則點亮LED0,當接收到"off"時,則熄滅LED0。同時,當接收到可以識別的"on"或"off"命令時,回復(fù)"OK!",若是非法命令,無法識別,則回復(fù)"Failed! Unknown Command!",范例程序詳見程序清單7.39。

程序清單7.39 使用串口控制LED0的范例程序

7.6 A/D轉(zhuǎn)換器

7.6.1 模數(shù)信號轉(zhuǎn)換

1. 基本原理

我們經(jīng)常接觸的噪聲和圖像信號都是模擬信號,要將模擬信號轉(zhuǎn)換為數(shù)字信號,必須經(jīng)過采樣、保持、量化與編碼幾個過程,詳見圖7.14。

圖7.14 模數(shù)信號轉(zhuǎn)換示意圖

將以一定的時間間隔提取信號的大小的操作稱為采樣,其值為樣本值,提取信號大小的時間間隔越短越能正確地重現(xiàn)信號。由于縮短時間間隔會導(dǎo)致數(shù)據(jù)量增加,所以縮短時間間隔要適可而止。注意,取樣頻率大于或等于模擬信號中最高頻率的2倍,就能夠無失真地恢復(fù)原信號。

將采樣所得信號轉(zhuǎn)換為數(shù)字信號往往需要一定的時間,為了給后續(xù)的量化編碼電路提供一個穩(wěn)定值,采樣電路的輸出還必須保持一段時間,而采樣與保持過程都是同時完成的。雖然通過采樣將在時間軸上連續(xù)的信號轉(zhuǎn)換成了不連續(xù)的(離散的)信號,但采樣后的信號幅度仍然是連續(xù)的值(模擬量)。

此時可以在振幅方向上以某一定的間隔進行劃分,決定個樣本值屬于哪一區(qū)間,將記在其區(qū)間的值分配給其樣本值。圖7.14將區(qū)間分割為0~0.5、0.5~1.5、1.5~2.5,再用0、1、2……代表各區(qū)間,對小數(shù)點后面的值按照四舍五入處理,比如,201.6屬于201.5~202.5,則賦值202;123.4屬于122.5~123.5,則賦值123,這樣的操作稱為量化。

量化前的信號幅度與量化后的信號幅度出現(xiàn)了不同,這一差值在重現(xiàn)信號時將會以噪聲的形式表現(xiàn)出來,所以將此差值稱為量化噪聲。為了降低這種噪聲,只要將量化時階梯間的間隔減小就可以了。但減小量化間隔會引起階梯數(shù)目的增加,導(dǎo)致數(shù)據(jù)量增大。所以量化的階梯數(shù)也必須適當,可以根據(jù)所需的信噪比(S/N)確定。

將量化后的信號轉(zhuǎn)換為二進制數(shù),即用0和1的碼組合來表示的處理過程稱為編碼,“1”表示有脈沖,“0”表示無脈沖。當量化級數(shù)取為64級時,表示這些數(shù)值的二進制的位數(shù)必須是6位;當量化級數(shù)取為256級時,則必須用8位二進制數(shù)表示。

2. 基準電壓

基準電壓就是模數(shù)轉(zhuǎn)換器可以轉(zhuǎn)換的最大電壓,以8位A/D模數(shù)轉(zhuǎn)換器為例,這種轉(zhuǎn)換器可以將0V到其基準電壓范圍內(nèi)的輸入電壓轉(zhuǎn)換為對應(yīng)的數(shù)值表示。其輸入電壓范圍分別對應(yīng)4096個數(shù)值(步長),其計算方法為:參考電壓/256=5/256=19.5mV。

看起來這里給出的10位A/D的步長電壓值,但上述公式還定義了該模數(shù)轉(zhuǎn)化器的轉(zhuǎn)換精度,無論如何所有A/D的轉(zhuǎn)換精度都低于其基準電壓的精度,而提高輸出精度的唯一方法只有增加定標校準電路。

現(xiàn)在很多MCU都內(nèi)置A/D,即可以使用電源電壓作為其基準電壓,也可以使用外部基準電壓。如果將電源電壓作為基準電壓使用的話,假設(shè)該電壓為5V,則對3V輸入電壓的測量結(jié)果為:(輸入電壓/基準電壓)×255=(3/5)×255=99H。顯然,如果電源電壓升高1%,則輸出值為(3/5.05)×255=97H。實際上典型電源電壓的誤差一般在2~3%,其變化對A/D的輸出影響是很大的。

3. 轉(zhuǎn)換精度

A/D的輸出精度是由基準輸入和輸出字長共同決定的,輸出精度定義了A/D可以進行轉(zhuǎn)換的最小電壓變化。轉(zhuǎn)換精度就是A/D最小步長值,該值可以通過計算基準電壓和最大轉(zhuǎn)換值的比例得到。對于上面給出的使用5V基準電壓的8位A/D來說,其分辨率為19.5mV,也就是說,所有低于19.5mV的輸入電壓的輸出值都為0,在19.5mV~39mV之間的輸入電壓的輸出值為1,而在39mV~58.6mV之間的輸入電壓的輸出值為3,以此類推。

提高分辨率的一種方法是降低基準電壓,如果將基準電壓從5V降到2.5V,則分辨率上升到2.5/256=9.7mV,但最高測量電壓降到了2.5V。而不降低基準電壓又能提高分辨率的唯一方法是增加A/D的數(shù)字位數(shù),對于使用5V基準電壓的12位A/D來說,其輸出范圍可達4096,其分辨率為1.22mV。

在實際的應(yīng)用場合是有噪音的,顯然該12位A/D會將系統(tǒng)中1.22mV的噪音作為其輸入電壓進行轉(zhuǎn)換。如果輸入信號帶有10mV的噪音電壓,則只能通過對噪音樣本進行多次采樣并對采樣結(jié)果進行平均處理,否則該轉(zhuǎn)換器無法對10mV的真實輸入電壓進行響應(yīng)。

4. 累積精度

如果在放大器前端使用誤差5%的電阻,則該誤差將會導(dǎo)致12位A/D無法正常工作。也就是說,A/D的測量精度一定小于其轉(zhuǎn)換誤差、基準電壓誤差與所有模擬放大器誤差的累計之和。雖然轉(zhuǎn)換精度會受到器件誤差的制約,但通過對每個系統(tǒng)單獨進行定標,也能夠得到較為滿意的輸出精度。如果使用精確的定標電壓作為標準輸入,且借助存儲在MCU程序中的定標電壓常數(shù)對所有輸入進行糾正,則可以有效地提高轉(zhuǎn)換精度,但無論如何無法對溫漂或器件老化而帶來的影響進行校正。

5. 基準源選型

引起電壓基準輸出電壓背離標稱值的主要因素是:初始精度、溫度系數(shù)與噪聲,以及長期漂移等,因此在選擇一個電壓基準時,需根據(jù)系統(tǒng)要求的分辨率精度、供電電壓、工作溫度范圍等情況綜合考慮,不能簡單地以單個參數(shù)為選擇條件。

比如,要求12 位A/D分辨到1LSB,即相當于1/212=244ppm。如果工作溫度范圍在10℃,那么一個初始精度為0.01%(相當于100ppm),溫度系數(shù)為10ppm/℃(溫度范圍內(nèi)偏移100ppm)的基準已能滿足系統(tǒng)的精度要求,因為基準引起的總誤差為200ppm,但如果工作溫度范圍擴大到15℃以上,該基準就不適用了。

6. 常用基準源

(1)初始精度的確定

初始精度的選擇取決于系統(tǒng)的精度要求,對于數(shù)據(jù)采集系統(tǒng)來說,如果采用n位的ADC,那么其滿刻度分辨率為1/2n,若要求達到1LSB的精度,則電壓基準的初始精度為:

初始精度≤1/2n=1/2n×102%

如果考慮到其它誤差的影響,則實際的初始精度要選得比上式更高一些,比如,按1/2LSB的分辨率精度來計算,即上式所得結(jié)果再除以2,即:

初始精度≤1/2n+1=1/2n+1×102%

(2)溫度系數(shù)的確定

溫度系數(shù)是選擇電壓基準另一個重要的參數(shù),除了與系統(tǒng)要求的精度有關(guān)外,溫度系數(shù)還與系統(tǒng)的工作溫度范圍有直接的關(guān)系。對于數(shù)據(jù)采集系統(tǒng)來說,假設(shè)所用ADC的位數(shù)是n,要求達到1LSB的精度,工作溫度范圍是ΔT,那么基準的溫度系數(shù)TC可由下式確定:

同樣地,考慮到其它誤差的影響,實際的TC值還要選得比上式更小一些。溫度范圍ΔT通常以25℃為基準來計算,以工業(yè)溫度范圍-40℃~+85℃為例,ΔT可取60℃(85℃-25℃),因為制造商通常在25℃附近將基準因溫度變化引起的誤差調(diào)到最小。

圖7.15 系統(tǒng)精度與基準溫度系數(shù)TC的關(guān)系

如圖7.15所示是一個十分有用的速查工具,它以25℃為變化基準,溫度在1℃~00℃變化時,8~20位ADC在1LSB分辨精度的要求下,將所需基準的TC值繪制成圖,由該圖表可迅速查得所需的TC值。

TL431和REF3325/3330均為典型的電壓基準源產(chǎn)品,詳見表7.22。TL431的輸出電壓僅用兩個電阻就可以在2.5~36V范圍內(nèi)實現(xiàn)連續(xù)可調(diào),負載電流1~100mA。在可調(diào)壓電源、開關(guān)電源、運放電路常用它代替穩(wěn)壓二極管。REF3325輸出2.5V,REF3330輸出3.0V。

表7.22 電壓基準源選型參數(shù)表

REF33xx是一種低功耗、低壓差、高精密度的電壓基準產(chǎn)品,采用小型的SC70-3和SOT23-3封裝。體積小和功耗低(最大電流為5μA)的特點使得REF33xx系列產(chǎn)品成為眾多便攜式和電池供電應(yīng)用的最佳選擇。在負載正常的情況下,REF33xx系列產(chǎn)品可在高于指定輸出電壓180mV的電源電壓下工作,但REF3312除外,因為它的最小電源電壓為1.8V。

圖7.16 12bits系統(tǒng)基準選擇

從初始精度和溫漂特性來看,REF3325/3330均優(yōu)于TL431,但是TL431的輸出電壓范圍很寬,且工作電流范圍很大,甚至可以代替一些LDO

由于基準的初始精度和溫漂特性是影響系統(tǒng)整體精度的關(guān)鍵參數(shù),因此它們都不能用于高精密的采集系統(tǒng)和高分辨率的場合。而對于12bits的AD來說,由于精度要求在0.1%左右的采集系統(tǒng),到底選哪個型號呢?測量系統(tǒng)的初始精度,均可通過對系統(tǒng)校準消除初始精度引入的誤差;對于溫漂的選擇,必須參考1LSB分辨精度來進行選擇,詳見圖7.16。

如果不是工作在嚴苛環(huán)境下,通常工作溫度為-10℃~50℃,溫度變化在60℃,如果考慮0.1%系統(tǒng)精度,溫度特性低于50ppm,則選擇REF3325/3330。

7.6.2 A/D轉(zhuǎn)換接口

AWorks提供了A/D轉(zhuǎn)換接口,可以直接通過接口獲取相應(yīng)引腳輸入的模擬電壓大小。相關(guān)接口詳見表7.23。

表7.23 ADC通用接口函數(shù)

1. 獲取ADC通道的采樣率

獲取當前ADC通道的采樣率,采樣率的單位為Samples/s,表示每秒進行多少次采樣。其函數(shù)原型為:

其中,ch為ADC的通道號,p_rate為輸出參數(shù),用以得到指定通道的采樣率。返回值為標準的錯誤號,返回AW_OK時表示獲取成功,否則,表示獲取失敗,失敗的原因可能是通道號不存在。

通常情況下,一個A/D轉(zhuǎn)換器往往支持多個通道,即可以支持多路模擬信號輸入,在部分微控制器中,還存在多個A/D轉(zhuǎn)換器。在AWorks中,為了區(qū)分各個模擬信號輸入的通道,為每個通道定義了一個唯一的通道號。例如,在i.MX28x中,有LRADC和HSADC兩個A/D轉(zhuǎn)換器,它們分別支持16個通道和8個通道。各通道對應(yīng)的編號在{chip}_adc_def.h文件中使用宏的形式進行了定義。例如,在i.MX28x中,各個通道號在imx28x_adc_def.h文件中定義如下:

由此可見,通過宏的形式,將通道號 0 ~ 23 使用了更具有意義的宏來表示。用戶也可通過查看此文件獲知當前硬件平臺支持的ADC通道數(shù)目。

通道號的類型為aw_adc_channel_t,其本質(zhì)上是一個無符號整數(shù)類型,具體的位寬與平臺相關(guān)。如一個平臺中僅支持24個通道,則其類型可能為uint8_t,即使用8位來表示通道號。獲取通道0的采樣率范例程序詳見程序清單7.40。

程序清單7.40 獲取采樣率的范例程序

2. 設(shè)置ADC通道的采樣率

由于采樣頻率必須大于或等于模擬信號中最高頻率的2倍,才能夠無失真地恢復(fù)原信號,因此,實際中,可能需要根據(jù)模擬信號的頻率調(diào)整A/D轉(zhuǎn)換器的采樣率。設(shè)置某一通道采樣率的函數(shù)原型為:

其中,ch為ADC的通道號,rate為設(shè)置的采樣率。返回值為標準的錯誤號,返回AW_OK時表示設(shè)置成功,否則,表示設(shè)置失敗。

一般情況下,若對采樣率沒有特殊的要求,使用默認的采樣率即可。此外,A/D轉(zhuǎn)換器可能只支持部分采樣率,并不能支持任意的采樣率,當使用該函數(shù)設(shè)置采樣率時,系統(tǒng)會自動設(shè)定一個最為接近的采樣率,因此,實際采樣率可能與設(shè)置的采樣率存在差異,實際采樣率可由aw_adc_rate_get()函數(shù)獲取。

注意,通常情況下,一個A/D轉(zhuǎn)換器的所有通道共用一個采樣率,因此,設(shè)置其中一個通道的采樣率時,可能會影響其它通道的采樣率。

設(shè)置通道0的采樣率為1000的范例程序詳見程序清單7.41。

程序清單7.41 設(shè)置采樣率范例程序

設(shè)置采樣率為1000 Samples/s。表示每秒采集1000個數(shù)據(jù)點,即每隔1毫秒采集一個數(shù)據(jù)點。

3. 獲取ADC通道的基準電壓

一般來講,在對精度要求不是特別嚴格的場合,可以直接使用MCU的電源電壓作為ADC的基準電壓。但若對精度要求較高,往往需要使用具有更高精度的外部基準源電壓作為ADC的基準電壓。當前ADC實際使用的基準電壓可通過該接口獲得,其函數(shù)原型為:

其中,ch為ADC的通道號。基準電壓通過返回值返回:若返回值大于0,則獲取成功,其值即為基準電壓(單位:mV);若返回值小于0,則獲取失敗。

獲取通道0的基準電壓范例程序詳見程序清單7.42。

程序清單7.42 獲取基準電壓范例程序

例如,基準電壓為2.5V,則vref的值為2500。

4. 獲取ADC通道的轉(zhuǎn)換位數(shù)

獲取ADC通道的轉(zhuǎn)換位數(shù),其函數(shù)原型為:

其中,ch為ADC的通道號。轉(zhuǎn)換位數(shù)通過返回值返回:若返回值大于0,則獲取成功,其值即為轉(zhuǎn)換位數(shù);若返回值小于0,則獲取失敗。

獲取通道0的轉(zhuǎn)換位數(shù)范例程序詳見程序清單7.43。

程序清單7.43 獲取轉(zhuǎn)換位數(shù)范例程序

如在i.MX28x中,LRADC和HSADC均為12位AD轉(zhuǎn)換器,因此,bits的值為12。

5. 讀取ADC通道的采樣值

讀取指定通道的采樣值,其函數(shù)原型為:

其中,ch為ADC的通道號,p_val為存儲采樣值的緩沖區(qū),samples指定本次采樣的次數(shù),urgent指定本次讀取操作的優(yōu)先級。返回值為標準的錯誤號,返回AW_OK時表示讀取成功,否則,表示讀取失敗。

p_val指向用于存儲采樣值的緩沖區(qū),緩沖區(qū)實際類型與ADC的位數(shù)相關(guān):若ADC的位數(shù)為 1 ~ 8,則其類型為uint8_t;若ADC的位數(shù)為9 ~ 16,則其類型為uint16_t;若ADC的位數(shù)為 17 ~ 32,則其類型為uint32_t。例如,在i.MX28x中,ADC的位數(shù)為12,則應(yīng)使用uint16_t類型的緩沖區(qū)來存儲ADC的采樣值。如定義一個大小為100的緩沖區(qū),以存儲100個采樣值:

samples表示本次讀取的采樣值個數(shù)。實際應(yīng)用中,每次讀取操作往往會讀取多個采樣值,以便通過取平均值等方法對采樣值進行處理,得到更加準確的結(jié)果。多個采樣值將依次存放在p_val指向的緩沖區(qū)中,需確保p_val指向的緩沖區(qū)的大小與samples保持一致。

實際上,讀取采樣值的操作包含的完整過程為:首先需要啟動ADC轉(zhuǎn)換,然后等待轉(zhuǎn)換完成(轉(zhuǎn)換的時間與采樣率相關(guān)),轉(zhuǎn)換完成后,再將轉(zhuǎn)換結(jié)果存儲在用戶提供的緩沖區(qū)中。顯然,整個過程需要消耗一定的時間。雖然一個A/D轉(zhuǎn)換器往往有多個通道,但某一時刻只能對某一個通道的輸入進行轉(zhuǎn)換,并不能同時轉(zhuǎn)換多個通道。若當前A/D轉(zhuǎn)換器正在轉(zhuǎn)換中,則后續(xù)其它通道的轉(zhuǎn)換請求就只能排隊等待,urgent指定了轉(zhuǎn)換請求的緊急性,其決定了排隊的方式,若urgent為TRUE,表示緊急轉(zhuǎn)換請求,排隊時將插隊到頭部,以便當前A/D轉(zhuǎn)換結(jié)束后,立即啟動需要緊急轉(zhuǎn)換的通道;若urgent為FALSE,則排隊時將依次排至尾部。一般情況下,沒有特殊需求,urgent均設(shè)置為FALSE。

讀取100個采樣值的范例程序詳見程序清單7.44。

程序清單7.44 讀取采樣值的范例程序

此時,多個采樣值存儲在adc_val中,實際中,每次讀取多個采樣值只是為了通過處理得到一個更加精確的采樣值,最簡單的處理方法就是取平均值,范例程序詳見程序清單7.45。

程序清單7.45 數(shù)據(jù)處理范例程序(取平均值)

注意,程序中,為了避免sum溢出,將sum的類型定義為了32位無符號數(shù)。最終的結(jié)果存儲在code變量中。

至此,獲得了一個較為精確的ADC采樣值,但在實際使用A/D轉(zhuǎn)換器時,其目的往往并非簡單的獲取一個ADC采樣值,而是獲取相應(yīng)通道的電壓值。可以通過基準電壓和轉(zhuǎn)換位數(shù)將code轉(zhuǎn)換為電壓值,公式如下:

式中,code為讀取的編碼值,Vref為基準電壓,bits為ADC的位數(shù)。實際中,2的bits次方可以簡化為移位運算,即:

獲取通道0輸入電壓的完整范例程序詳見程序清單7.46。

程序清單7.46 電壓采集綜合范例程序

在i.MX28x中,通道0對應(yīng)的外部輸入引腳時LRADC0引腳,運行程序后,可以通過向該引腳接入模擬電壓來測試ADC采集的結(jié)果是否正確。

程序中,電壓值的計算未使用到浮點運算,僅使用了整數(shù)運算,效率較高。但運算結(jié)果vol的值也只能精確的mV,若需要提高計算結(jié)果的精度,可以使用浮點數(shù)來存儲計算的結(jié)果,將vol的類型定義為float,即:

同時,在計算電壓值時,要確保表達式使用浮點運算,即:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8970

    瀏覽量

    150923
  • 致遠電子
    +關(guān)注

    關(guān)注

    13

    文章

    411

    瀏覽量

    31818

原文標題:AWorks軟件篇 — 通用外設(shè)接口(I2C、UART、ADC)

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    設(shè)計方案:基于PCF8591的I2C總線A/DD/A轉(zhuǎn)換

    本資料是關(guān)于:基于PCF8591的I2C總線A/DD/A轉(zhuǎn)
    發(fā)表于 07-26 22:47

    PCF8591_8位A/D and D/A轉(zhuǎn)換器相關(guān)資料下載

    3、數(shù)模轉(zhuǎn)換(D/A轉(zhuǎn)換)一、特征?●單電源供電?●通過I2C總線串行輸入/輸出?●用3個硬件地
    發(fā)表于 01-25 07:50

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理
    發(fā)表于 08-13 17:34 ?0次下載

    基于WorldFIP 的現(xiàn)場總線-電流轉(zhuǎn)換器的開發(fā)The D

    本文針對在DCS 向FCS 過渡中一個急待解決的問題――常規(guī)儀表與現(xiàn)場總線的兼容,開發(fā)出基于WorldFIP 的現(xiàn)場總線-電流轉(zhuǎn)換器。文章介紹了WorldFIP 協(xié)議特點,并著重介紹了轉(zhuǎn)換器
    發(fā)表于 06-03 08:10 ?25次下載

    PCA9564 并行總線轉(zhuǎn)I2C總線接口芯片簡介

    PCA9564是一款采用CMOS工藝,支持并行總線與串行I2C總線通信轉(zhuǎn)換的接口器件,適用于微控制/處理器使用并行
    發(fā)表于 03-10 15:47 ?51次下載

    PCA9665并行總線轉(zhuǎn)I2C總線接口芯片簡介

    PCA9665是一款并行總線與串行I2C總線接口轉(zhuǎn)換的器件,適用于微控制/處理器使用并行總線
    發(fā)表于 03-10 15:49 ?46次下載

    電平轉(zhuǎn)換I2C總線中的應(yīng)用(英)

    電平轉(zhuǎn)換I2C總線中的應(yīng)用(英)
    發(fā)表于 07-23 16:16 ?29次下載

    FXM2IC102 電壓轉(zhuǎn)換器,針對I2C總線應(yīng)用

    飛兆發(fā)布電壓轉(zhuǎn)換器FXM2IC102,針對I2C總線應(yīng)用 飛兆半導(dǎo)體公司 (Fairchild Semiconductor) 為設(shè)計人員提供用于I2C (Inter-Integrat
    發(fā)表于 09-02 08:52 ?956次閱讀

    采用I2C總線的ADS1100型16位模/數(shù)轉(zhuǎn)換器的設(shè)計

    采用I2C總線的ADS1100型16位模/數(shù)轉(zhuǎn)換器的設(shè)計 ADS1100是采用2.7V~5.5V單電源供電的連續(xù)自校準模/數(shù)(A/D
    發(fā)表于 02-26 15:01 ?3357次閱讀
    采用<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的ADS1100型16位模/數(shù)<b class='flag-5'>轉(zhuǎn)換器</b>的設(shè)計

    用于中間總線架構(gòu)的半調(diào)節(jié)總線轉(zhuǎn)換器

    用于中間總線架構(gòu)的半調(diào)節(jié)總線轉(zhuǎn)換器 SynQor推出了SQ60系列的新產(chǎn)品,擴展了隔離半調(diào)節(jié)dc-dc轉(zhuǎn)換器的BusQor系列,用于中間總線
    發(fā)表于 01-04 10:00 ?829次閱讀

    電平轉(zhuǎn)換器解決I2C總線應(yīng)用的兼容性

    飛兆半導(dǎo)體公司(Fairchild Semiconductor)開發(fā)了一款可配置雙電壓電平轉(zhuǎn)換器產(chǎn)品FXMA2102,用于I2C總線接口應(yīng)用的電平轉(zhuǎn)換。FXMA2102能夠滿足移動設(shè)備
    發(fā)表于 03-29 15:40 ?61次下載

    SPI、I2CUART三種串行總線協(xié)議的區(qū)別

    SPI、I2CUART三種串行總線協(xié)議的區(qū)別
    發(fā)表于 07-17 17:23 ?0次下載

    I2C與SPI與UART:如何布局這些通用總線

    UART等協(xié)議與下游MCU或可編程IC進行接口。I2C總線,SPI總線UART總線之間的區(qū)別
    的頭像 發(fā)表于 11-08 17:33 ?1805次閱讀
    <b class='flag-5'>I2C</b>與SPI與<b class='flag-5'>UART</b>:如何布局這些通用<b class='flag-5'>總線</b>

    藍牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調(diào)試工作的時候,會經(jīng)常用到I2C、SPI、UART這3條總線I2C、SPI、UART這三種通信
    的頭像 發(fā)表于 01-22 09:41 ?2356次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——<b class='flag-5'>I2C</b>/SPI/<b class='flag-5'>UART</b>

    TCA39306-Q1雙路雙向I3CI2C總線和SMBus電壓電平轉(zhuǎn)換器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TCA39306-Q1雙路雙向I3CI2C總線和SMBus電壓電平轉(zhuǎn)換器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-21 11:03 ?0次下載
    TCA39306-Q1雙路雙向<b class='flag-5'>I3C</b>、<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>和SMBus電壓電平<b class='flag-5'>轉(zhuǎn)換器</b>數(shù)據(jù)表
    主站蜘蛛池模板: 日本加勒比视频在线观看 | 9966国产精品视频 | 日韩免费一级毛片 | 成人一二| 在线视频一区二区三区 | 免费一日本一级裸片在线观看 | 永久国产 | 香蕉久久高清国产精品免费 | 黄色免费在线网址 | 久久免费福利视频 | 91大神在线精品网址 | ww欧洲ww在线视频看 | 一级aaaaa毛片免费视频 | 国产精品欧美一区二区三区不卡 | 午夜影音 | 午夜视频在线观看一区 | 欧美69xx性欧美 | 亚洲天堂不卡 | 五月婷婷六月丁香 | 女人张开腿 让男人桶个爽 免费观看 | 欧美另类69xxxxx性欧 | 在线看av网址 | 日本大片网 | 欧美夜夜 | 人人舔人人爱 | se97se成人亚洲网站 | 99久久精品免费精品国产 | 丝袜美腿视频一区二区三区 | 综合五月天婷婷丁香 | 一级伦奸视频 | 男人天堂伊人 | 午夜小视频免费 | 一级一片免费视频播放 | 黄免费网站| 国产精品四虎在线观看免费 | se色成人亚洲综合 | 色综合激情网 | 永久免费品色堂 | 又粗又大又爽又色又过瘾视频 | 日韩欧美色 | 欧美一卡二三卡四卡不卡 |