亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 659|回復: 7
收起左側

TM7705雙通道切換后采集數據對應不一致問題

[復制鏈接]
ID:1170970 發表于 2026-5-8 12:47 | 顯示全部樓層 |閱讀模式
1 概述
2026年1月,一個實驗性的項目中,利用安富萊TM7705模組采集電壓,在使用其多通道采集模式時,遇到采集通道與數據對應不一致的問題,經查看多種TM7705/AD7705手冊、網友案例以及組件廠家源碼文檔,基本弄清了該問題的原因。作為這段時間的思考總結以及后來者“避坑”考慮,特意將該問題的原因分析及解決過程總結整理存檔。
2  問題現象
    使用TM7705組件時,單通道采集,設置參數后,單獨使用各通道采集,一切正常。但需要使用通道1、通道2快速交替采集時,發現通道1、2的數據與通道號正好相反,設備報上來的1通道數據被報送到2通道,2通道數據也報送到1通道。以為是硬件接反了,經檢查采集程序各環節、硬件連接,均未發現問題。程序中調整1、2通道的先后采集順序,現象依舊。                              




回復

使用道具 舉報

ID:1170970 發表于 2026-5-12 21:44 | 顯示全部樓層
3 分析排查
    結合數據手冊、網友案例以及DeepSeek討論。基本確定為7705內部結構以及工作機制造成的問題。期間懷疑過很多情況,最終一一排除,下面直接上干貨,其他的就不講了。
    先說明一下,試驗采用的組件默認使用4.9152MHz晶體。測試中,數據率設定為50Hz,這個參數作為本次實驗默認設置參數,后面不再贅述,一律稱作“試驗參數條件”。3.1 DRDY信號的懷疑
根據手冊等資料理解,在正確的操作流程中,DRDY引腳扮演著重要角色:
a)       當新通道的數據轉換完成,DRDY引腳會變為低電平,提示MCU可以讀取數據了;
b)       第一次讀取操作完成后,DRDY通常會返回高電平。
c)       緊接著,需要再次查詢或等待DRDY再次變低,這標志著新通道的最新有效數據已經準備就緒,此時進行第二次讀取,就能拿到正確的結果。
所以,當進行通道切換時,標準的數據讀取流程應該是:寫通信寄存器切換通道→等待DRDY變低(通道切換后立即檢測DRDY,這時大概率就是低電平(原因見后),結果寄存器里面存的是通道切換前的數據,應等待一個完整的DRDY脈沖后,即切換后重新采集的才是新通道的數據)→第一次讀取數據(刷新/丟棄舊數據)→等待DRDY再次變低→第二次讀取數據(獲得新通道的有效值)。
3.2  問題查找及分析
基本可以確認,由于7705正常工作期間,是按照固定頻率采集的,其DRDY引腳輸出的波形也能看出其采集周期(數據率)遵循了已設定的參數。DRDY高電平時間相對比較短(試驗參數下,200us以內),而數據率周期比較大(試驗中是20ms),這就使得切換通道指令設置的時機,具有極大可能是處在DRDY為0電平期間。這時,如果切換后,立即讀取數據,其數據寄存器中的數據一定是上次(通道切換前的)的采集數據,而并非切換后的通道(此時,該通道還沒有開始新的采集)的數據。切換需要一定的時間(試驗中DRDY切換時,信號是保持約60ms的高電平),DRDY會拉高,開始新通道的采集,當DRDY再次變低后,讀取的才是通道切換后的正確數據。下面的波形圖中藍色波形為DRDY信號,黃色的為CS信號。
因此,可以采用兩種方法規避:
a)  連續讀取兩次(包含兩次完整的通道切換操作,安富萊的例程就是這樣處理的);
回復

使用道具 舉報

ID:1034262 發表于 2026-5-13 12:46 | 顯示全部樓層
我從零幾年開始大量使用TM7705,兩通道差分16位ADC,沒有遇到過你說的情況哦。
回復

使用道具 舉報

ID:1170970 發表于 2026-5-13 18:53 | 顯示全部樓層
coody_sz 發表于 2026-5-13 12:46
我從零幾年開始大量使用TM7705,兩通道差分16位ADC,沒有遇到過你說的情況哦。

這是個人第一次用TM7705,準確的踩到了這個坑,后面會提到,模組廠家的代碼中連讀了兩次,解決了這個問題,這里想做個排查記錄,給后面想研究的同仁一些參考,可能是個人當前水平問題吧,找了很多資料,確實比較少見。就當個人教訓,給各位一個參考。這帖子發的忒難了,發個截圖都給審核成“包含%”~~~
回復

使用道具 舉報

ID:1170970 發表于 2026-5-13 19:05 | 顯示全部樓層
b)   切換通道后,先等待DRDY變高(即等待芯片按照采集周期自動開始新的一次采集,所以當前數據可不讀,讀了也是切換前的舊數據)后,再等待DRDY變低(新通道切換后的第一次采集已完成)后立即讀取;
查看波形,對于b方法,切換通道指令發出后,DRDY持續保持低電平,大約60ms后拉高(此時應該完成了內部切換處理),拉高大約200us(試驗參數條件下,這個自動采集時間是DRDY高電平約為200us)后,DRDY拉低(完成新通道信號采集),立即讀取。數據讀取后,DRDY持續拉高20ms后再次拉低(由于時間原因,這里拉高20ms,沒進一步去弄清什么原因,有知道的寶子可以說說),如果后面沒有讀取操作,則后面DRDY以200us的高電平寬度(轉換時間),按照20ms周期連續采集(即使MCU不讀,也不耽誤芯片自己持續干活),直到遇到下一個通道切換指令重復上述過程。
經測試,這兩種方法的切換準備耗時是一樣的(約60ms),但DRDY波形上有差異,分析波形,可看出這與操作流程對器件內部工作狀態的影響是對應的。
4 一點感受該問題在網絡上的討論相對比較少見,應該是一個很多開發者在剛接觸TM7705時會有的困惑(我也是第一次用這個TM7705)。明明數據手冊里寫了相關描述,這么多人用,實際也應該有人會遇到類似的問題,但在網上的技術文章和討論里,卻很少被作為一個明顯的問題來討論。根據我了解、查到、測試及分析的信息,結合AI討論,總結可能有三個原因:a)       手冊描述隱晦,容易被忽略TM7705的中文數據手冊里,其實是有相關描述的。在介紹DRDY信號和讀操作的部分,TM7705手冊提到:“即使是在第一次讀操作后DRDY線返回高電平,也可能出現兩次從輸出寄存器讀到同樣數據的情況。必須注意確保在下一次輸出更新進行之前,讀操作已經完成。”?梢姡謨詫⒃摤F象表述為一種“可能出現”的情況,并且重點在于強調“讀操作必須在輸出更新前完成”的時序要求。這種表述方式,比較隱晦,隱藏了一些操作細節,很容易讓開發者誤以為這只是一個需要留意的時序邊界情況,而沒有意識到這是通道切換后必須執行的標準操作。很多人在快速閱讀手冊時,很可能會直接跳過或誤解這段話的含義。b)       網絡上的“成品代碼”幫后來者“避坑”搜索到的很多例程,尤其是那些被廣泛引用、驗證過的驅動代碼(比如出自安富萊等開發板的例程),它們已經內置了處理這個問題的邏輯(切換通道的代碼中,讀了兩次,其代碼注釋也驗證了這一點。并且,main函數的調用示例中,切換通道時,也注明了需要80ms的時間)。在這些成熟代碼的流程中,開發者已經通過嚴謹的流程或對DRDY的精確控制,自動完成了“丟棄舊數據、等待新數據”的過程。當直接使用或參考這些代碼時,底層已處理好了,自然就不會在應用層遇到這個問題,也就不會特意去發帖詢問了。造成了“知其然,而不知其所以然”的問題,對于有強迫癥的人來說,那就是抓心撓肺的感覺了,總感覺程序可能不健壯,藏了不好的東西。c)       芯片的“平替”屬性導致討論焦點偏移這是一個比較實際的原因。TM7705及類似型號常被認為AD7705的國產替代或“山寨”版本,價格優勢明顯。這導致使用它的開發者更關注一些更“致命”或更基礎的問題,比如:芯片是否能穩定工作?數據為什么跳變?很多帖子都在討論數據跳動、線性度差、通道間串擾等直接影響測量結果的問題。DRDY信號為什么不正常?經常有開發者遇到程序卡在等待DRDY信號的環節。相比之下,“讀兩次”更像是一個在代碼流程中就能通過邏輯規避的“小細節”,只要代碼能跑通、數據能讀對,大家通常不會深究背后的原因,而是直接采納了例程里的做法。所以,該問題在開發者的實踐中,要么被成熟的代碼模板悄悄解決了,要么被其他更棘手的硬件或穩定性問題所掩蓋了。所以,這也造成了我這次使用中的困惑,斷斷續續花了不少時間分析和驗證。用沒徹底弄清楚的東西來做開發,心里總是有疙瘩,渾身難受得緊,好在最終解決了。5說明由于臨時使用、時間、經驗有限等原因,我并沒有全面的對這款芯片做應用測試,可能有些地方存在錯誤或描述不當,各位同仁且看且辨,歡迎指出不當之處。由于初次發帖,還不會用,圖片也發不上來,磕磕巴巴的,各位莫笑,完整的見附件吧~~

TM7705通道切換后采集數據對應不一致問題-GeSi-20260513.pdf

336.26 KB, 下載次數: 0

實驗記錄

回復

使用道具 舉報

ID:1170970 發表于 2026-5-14 21:31 | 顯示全部樓層
圖片上傳不了,完整的見附件吧
回復

使用道具 舉報

ID:1034262 發表于 2026-5-15 12:08 | 顯示全部樓層
GeSi 發表于 2026-5-13 18:53
這是個人第一次用TM7705,準確的踩到了這個坑,后面會提到,模組廠家的代碼中連讀了兩次,解決了這個問題 ...

其實TM7705用起來比較簡單的,/DRDY低電平即有新數據可以讀,此時讀取數據即可。
由于是Sigma Delta ADCC, 當改變濾波參數、數據率、通道時,產生第一個有效數據通常需要幾個轉換周期,還是以檢測/DRDY為準(硬件引腳或讀取寄存器即可)。
我用這個芯片有20年了,超過百萬片,當年是為了替換米帝昂貴的AD7705的,測試發現差不多,零幾年也才1元多RMB,AD7705要十幾元。
回復

使用道具 舉報

ID:1170970 發表于 2026-5-15 12:23 | 顯示全部樓層
coody_sz 發表于 2026-5-15 12:08
其實TM7705用起來比較簡單的,/DRDY低電平即有新數據可以讀,此時讀取數據即可。
由于是Sigma Delta ADC ...

是的,剛用明白~~~用量比較大,性價比很好~~要是能出個QFN或DFN的就好了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表