《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 通過I2C兼容接口讀取ADC數據
通過I2C兼容接口讀取ADC數據
摘要: 本應用筆記討論了通過I2C兼容接口讀取多字節數據時需要特別注意的地方。介紹了每次讀取一個字節時容易出現的問題,并給出了幾個具體示例。本文也描述了進行數據傳輸的正確方法。
Abstract:
Key words :
</a>兼容" title="兼容">兼容" title="兼容">兼容2線接口是功能強大的總線機制,用于連接微控制器或微處理器與低速外設,例如:集成了模/數轉換器(ADC)的外設。基于該總線的最基本的通信方式(即,寫入/讀取從機寄存器的一個字節)非常直觀。但是,如果因為這種方法簡單而掉以輕心,則會導致嚴重的系統錯誤。
 

單字節通道傳送2字節數據

任何連接外設(尤其是傳感器)的數字接口,都需要確保從器件的內部寄存器正確讀取數據,尤其是在讀取寄存器的過程中數據發生變化的情況下。數據傳輸過程中,如果ADC執行轉換操作并更新寄存器的內容,數據則會發生改變。許多器件帶有內部緩存器(通常不能從外部訪問),用來存放最新轉換結果。當I²C總線處于空閑狀態時,更新所謂的“用戶可訪問”寄存器內容。

 

I²C協議每次只傳送1個字節的數據。因此,如果有效數據字長超過8位,并且沒有合理處置傳輸操作,則會引發問題。比如,MAX44000環境光傳感器(ALS)的數據寄存器具有多達14位的數據(另有1位作為溢出標志,表示需要增加計數/亮度設置)。


表1. MAX44000 ALS數據寄存器

REGISTER B7 B6 B5 B4 B3 B2 B1 B0 REGISTER ADDRESS
ADC High Byte (ALS)   OFL
ALSDATA[13:8]
0x04
ADC Low Byte (ALS)
ALSDATA[7:0]
0x05

我們不能通過I²C直接讀取所有數據ALSDATA[13:0],需要首先讀取寄存器0x04的內容,然后讀取寄存器0x05的內容,再把這些數據合并到一個至少16位的寄存器內。因此,在讀取這些數據時需要特別謹慎。通過兩次簡單的單字節讀操作(利用STOP (P)條件終止)完成數據讀取,如圖1所示。

圖1. 單字節讀操作
圖1. 單字節讀操作

這種方法存在致命缺陷,確切地說,向器件發送STOP條件,返回“用戶可見”的寄存器內容。由此,從寄存器0x04讀取數據后,實際的14位數據可能在讀取0x05寄存器之前已經更新。幾種情形下,這種缺陷可能導致嚴重錯誤。

例如,當MAX44000環境光傳感器處于10位、12位或14位模式時,亮度處于相對穩定狀態,假設亮度在小范圍波動,或許亮度正在緩慢上升,或周圍存在少量噪聲,使得0x04和0x05寄存器的14位數據計數值為255或256,考慮表2中的三種情形。

表2. 誤差圖示說明

State of Registers During
First Byte Read (Read 0x04 Only)
State of Registers During
Second Byte Read (Read 0x05 Only)
Result (14 Bit)
Illustration of the Glitch Illustration of the Glitch Illustration of the Glitch
Illustration of the Glitch Illustration of the Glitch Illustration of the Glitch
Illustration of the Glitch Illustration of the Glitch Illustration of the Glitch

在后兩種情形下,我們可能讀到0或511,而不是讀255或256,這是一個很嚴重的錯誤。發生這已錯誤的原因在于,第一次和第二次讀操作之間,發出STOP狀態后,寄存器0x04和0x05中的數據被更新。第一種出現問題情形下,第一個字節可以正確讀出,但在讀第二個字節時,總數為256的數據對應的最低位為零,因而,我們從器件中得到讀數0;第二種出現問題的情形下,數據總計數值為256,由于在STOP狀態發出后,第二個字節的數據在讀取之前減少了1,所以顯示為511,圖2給出了多次讀取數據時,這種故障的抽樣情況。

圖2. 多次采樣時,實際讀取單字節的數值
圖2. 多次采樣時,實際讀取單字節的數值

這個問題很容易通過一次讀取2字節數據來避免,如圖3所示。具體操作是,讀取第一個數據字節后,發送REPEATED START (而不是STOP)進行操作,操作非常簡單。通過讀取2個字節,盡管在兩個器件之間發送完全相同的位數,卻可避免器件不恰當地更新I²C寄存器的內容。

圖3. 2字節讀操作示意圖
圖3. 2字節讀操作示意圖

上述示例適用于MAX44000和MAX44009,進行多次讀操作時不會自動遞增寄存器指針。器件功能各有差異,但工作原理相同。也可以將其很容易地擴展到N字節讀取操作。應用筆記AN3588:“MAXQ2000微控制器軟件I²C驅動”一文給出了幾個C程序示例。

此內容為AET網站原創,未經授權禁止轉載。

相關內容


亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品自拍小视频| 91久久久久| 欧美另类视频| 美女成人午夜| 久久久久国产精品午夜一区| 欧美亚洲一区二区在线观看| 亚洲一区二区免费看| 亚洲图片欧洲图片日韩av| 日韩亚洲成人av在线| 亚洲日本欧美天堂| 亚洲精品乱码久久久久| 最新国产成人av网站网址麻豆| 欧美一区免费| 欧美在线观看一区| 欧美亚洲免费电影| 午夜亚洲福利| 性色av一区二区三区在线观看 | 日韩一级免费| 亚洲美女在线视频| 日韩小视频在线观看专区| 日韩视频一区二区三区在线播放免费观看| 91久久在线| 999在线观看精品免费不卡网站| 亚洲巨乳在线| 一区二区三区波多野结衣在线观看| 一区二区三区精品视频| 中文亚洲字幕| 欧美一区二区成人| 久久久久网址| 欧美高清视频在线| 欧美三区在线| 国产欧美日韩一区二区三区| 狠狠色丁香婷婷综合久久片| 在线看欧美视频| 亚洲美女精品成人在线视频| 国产精品99久久不卡二区| 午夜激情一区| 久久精品国产免费| 亚洲日韩欧美视频一区| 亚洲天堂免费在线观看视频| 欧美一区二区三区在| 久久亚洲精品伦理| 欧美激情国产日韩精品一区18| 欧美日韩中字| 国产一区二区三区免费不卡| 亚洲国产精品久久久久秋霞影院 | 欧美激情一区二区三级高清视频| 欧美日韩精品欧美日韩精品 | 欧美日韩国产在线播放| 国产精品久久久久久一区二区三区| 国产精品一区二区在线观看网站| 激情久久久久久久久久久久久久久久| 91久久国产自产拍夜夜嗨| 亚洲在线免费| 亚洲日本中文字幕免费在线不卡| 亚洲一区一卡| 久久这里只有精品视频首页| 欧美日韩在线一区二区| 国产视频欧美视频| 亚洲精品日本| 欧美一区二区视频97| 亚洲美女在线看| 欧美综合二区| 欧美日本在线| 国产一级揄自揄精品视频| 亚洲精品在线免费| 欧美伊人久久久久久久久影院| 999亚洲国产精| 久久精品亚洲一区二区| 欧美日韩亚洲国产精品| 影音先锋日韩资源| 亚洲一区视频| 一本到高清视频免费精品| 久久精品国产精品亚洲综合| 欧美日韩1区2区3区| 国产一区深夜福利| 一本综合精品| 亚洲人成在线观看网站高清| 午夜综合激情| 欧美日韩国产123区| 国语自产精品视频在线看抢先版结局| 日韩视频专区| 亚洲国产精品尤物yw在线观看| 午夜欧美精品| 欧美日韩综合| 亚洲欧洲日产国产综合网| 欧美一区二区视频观看视频| 亚洲一区二区三区免费观看| 欧美成人精精品一区二区频| 国产一区二区三区奇米久涩| 亚洲视频网在线直播| 日韩视频在线一区二区| 久久久久久久久伊人| 国产精品久久国产精麻豆99网站| 亚洲韩国日本中文字幕| 欧美在线黄色| 欧美专区18| 国产精品日韩久久久久| 亚洲美洲欧洲综合国产一区| 亚洲国语精品自产拍在线观看| 欧美专区在线| 国产欧美 在线欧美| 亚洲午夜一区| 亚洲一区二区三区精品在线观看| 欧美紧缚bdsm在线视频| 亚洲国产精品一区| 91久久久久久久久| 麻豆精品视频在线观看| 韩国一区电影| 久久国产精品99国产| 欧美在线视频播放| 国产伦精品一区二区三区在线观看| 国产精品99久久久久久白浆小说| 中国成人在线视频| 欧美日本在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲国产一区在线| 蜜桃av噜噜一区二区三区| 激情久久中文字幕| 亚洲国产成人av在线| 久久久亚洲人| 黄色日韩精品| 亚洲国产日韩欧美在线99| 久热精品在线视频| 亚洲风情亚aⅴ在线发布| 最新成人av在线| 欧美激情自拍| 亚洲精品影院| 亚洲一区综合| 国产精品综合av一区二区国产馆| 亚洲欧美一区二区视频| 久久黄色网页| 黄色精品一二区| 亚洲精品在线视频观看| 欧美激情一区二区三区成人 | 欧美在线影院| 久久亚洲一区二区| 在线观看成人av电影| 亚洲三级电影在线观看| 欧美日韩国产精品一区二区亚洲| 一个色综合av| 欧美一区亚洲二区| 国产一区二区久久| 亚洲欧洲日产国码二区| 欧美华人在线视频| 99在线热播精品免费99热| 亚洲专区在线视频| 国产午夜精品理论片a级大结局 | 亚洲国产黄色| 亚洲视频高清| 国产精品实拍| 亚洲大胆人体在线| 欧美激情综合| 亚洲视频一区在线| 久久国产精品毛片| 亚洲福利视频一区| 亚洲一区在线观看视频| 国产欧美日韩精品一区| 久久精品亚洲精品| 欧美日本亚洲| 小嫩嫩精品导航| 欧美黑人在线播放| 亚洲在线成人精品| 男人的天堂成人在线| 9国产精品视频| 久久久久国产一区二区| 亚洲国产欧美日韩另类综合| 亚洲欧美www| 在线精品视频一区二区三四| 在线亚洲一区二区| 国产亚洲一级高清| 一本不卡影院| 韩国欧美国产1区| 亚洲视频精选在线| 狠狠色狠狠色综合人人| 中文av一区特黄| 国模套图日韩精品一区二区| 一本色道久久综合亚洲精品不| 国产毛片精品国产一区二区三区| 亚洲精品免费一区二区三区| 国产精品免费福利| 亚洲精品乱码久久久久久按摩观| 国产精品美女黄网| 亚洲欧洲一区二区三区久久| 国产精品久久久免费| 亚洲另类视频| 国产亚洲欧洲一区高清在线观看| 一区二区日韩精品| 精品91在线| 欧美有码在线观看视频| 亚洲毛片一区| 玖玖玖国产精品| 亚洲欧美欧美一区二区三区| 欧美精品电影| 久久精品亚洲精品| 国产精品天美传媒入口| aa国产精品| 在线精品国产成人综合| 久久精品国产精品亚洲综合| 一区二区三区视频在线|