一、ADC值與電壓的轉換關系 

24bit ADC,1 LSB對應的電壓值是:4.096V*2/16777216=0.000000488V=0.488uV=488nV 

得到2DCC73對應的電壓值為:2863085*2*4.096V/16777216=1.3979907V,計算值精確到0.5uV(非實際測量精度)。
二、通信協議分析 采樣20個點的數據如下,用邏輯分析儀抓到的通信波形為21次。第1次為寫ADC寄存器,第2~21次為讀取ADC采樣數據。 
第1次通信內容如下: 
Setup Write to [0x00]+ACK //General call address(通用廣播地址是用來包括軟件復位的幾個功能) 0x06+ACK //復位并通過硬件寫從機地址的可編程部分 0x00+NACK // 0x00+NACK // Setup Write to [0x90]+ACK //Write to Config Register:First byte: 0b10010000 0x01+ACK //Second byte: 0b00000001 (points to Config register) 0xC2+ACK //Third byte: 0b11000010 (MSB of the Config register to be written) 0xE3+ACK //Fourth byte: 0b11100011 (LSB of the Config register to be written) 




Setup Write to [0x90]+ACK //Write to Pointer Register:First byte: 0b10010000(first 7-bit I2C address followed by //a low read/write bit) 0x00+ACK //Second byte: 0b00000000 (points to Conversion register) Setup Read to[0x91]+ACK //Read Conversion Register:First byte: 0b10010001(first 7-bit I2C address followed //by a high read/write bit) 0x00+ACK //Second byte: the SGM58200 response with the MSB of the Conversion register 0x00+ACK //Third byte: the SGM58200 response with the second byte of the Conversion register 0x00+NACK //Fourth byte: the SGM58200 response with the LSB of the Conversion register 第一次通信是復位寄存器,讀取到的ADC數據為000000(hex),即讀到的數據是零。 
通用廣播地址說明: 通用廣播地址是用來同時尋址所有連接到I2C總線上的設備.如果一個設備在廣播地址時不需要數據,它可以不產生應答來忽略.如果一個設備從通用廣播地址請求數據,它可以應答并當作一個從-接收器.當一個或多個設備響應時主機并不知道有多少個設備應答了.每一個可以處理這個數據的從-接收器可以響應第二個字節.從機不處理這些字節的話,可以響應NA.如果一個或多個從機響應,主機就無法看到NA.通用廣播地址的含義一般在第二個字節中指明. 有兩種情況需要考慮: 1.最低有效位B是0 2.最低有效位B是1 當B是0,第二個字節有如下的定義: 1.0000 0110(06h):復位并通過硬件寫從機地址的可編程部分.在接收到這樣的2個字節時,所有可以響應這個廣播地址的設備將復位并進入地址的可編程部分.要采取預防措施來確保設備不會在加上電源電壓后將SDA或SCL拉低,因為這些低電平會阻塞總線. 2.0000 0100(04h):通過硬件寫從機地址的可編程部分.行為同上,但設備不復位 3.0000 0000(00h):這個不應該作為第二個字節使用 編程過程的順序參考相應設備的Datasheet 
軟件復位說明: 在通用廣播(0000 0000)之后發送0000 0110(06h)作為第二個字節會引起軟件復位.這個特性是可選的,不是所有的設備都會響應這個命令.在接收到這樣的2個字節時,所有可以響應這個廣播地址的設備將復位并進入地址的可編程部分.要采取預防措施來確保設備不會在加上電源電壓后將SDA或SCL拉低,因為這些低電平會阻塞總線. 第2次通信內容如下: 

Setup Write to [0x90]+ACK 0x00+ACK Setup Read to[0x91]+ACK 0x2B+ACK 0xAF+ACK 0xED+NACK 讀取內容為第1個采樣的ADC數據2BAFED,對應電壓值為1.3979907V 第3次通信內容如下: 

Setup Write to [0x90]+ACK 0x00+ACK Setup Read to[0x91]+ACK 0x2B+ACK 0xB0+ACK 0x48+NACK 讀取內容為第2個采樣的ADC數據2BB048,對應電壓值為1.3980352V
以此類推,第4~21次通信內容為第3~20個采樣數據。 

以上的圖文Word格式文檔51黑下載地址:
SGM58200 ADC模塊 I2C通訊協議分析.docx
(631.72 KB, 下載次數: 38)
2021-1-8 10:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|