一、ADC值與電壓的轉(zhuǎn)換關(guān)系
24bit ADC,1 LSB對應(yīng)的電壓值是:4.096V*2/16777216=0.000000488V=0.488uV=488nV
得到2DCC73對應(yīng)的電壓值為:2863085*2*4.096V/16777216=1.3979907V,計算值精確到0.5uV(非實際測量精度)。
二、通信協(xié)議分析
采樣20個點的數(shù)據(jù)如下,用邏輯分析儀抓到的通信波形為21次。第1次為寫ADC寄存器,第2~21次為讀取ADC采樣數(shù)據(jù)。
第1次通信內(nèi)容如下:
Setup Write to [0x00]+ACK //General call address(通用廣播地址是用來包括軟件復(fù)位的幾個功能)
0x06+ACK //復(fù)位并通過硬件寫從機地址的可編程部分
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
第一次通信是復(fù)位寄存器,讀取到的ADC數(shù)據(jù)為000000(hex),即讀到的數(shù)據(jù)是零。
通用廣播地址說明:
通用廣播地址是用來同時尋址所有連接到I2C總線上的設(shè)備.如果一個設(shè)備在廣播地址時不需要數(shù)據(jù),它可以不產(chǎn)生應(yīng)答來忽略.如果一個設(shè)備從通用廣播地址請求數(shù)據(jù),它可以應(yīng)答并當作一個從-接收器.當一個或多個設(shè)備響應(yīng)時主機并不知道有多少個設(shè)備應(yīng)答了.每一個可以處理這個數(shù)據(jù)的從-接收器可以響應(yīng)第二個字節(jié).從機不處理這些字節(jié)的話,可以響應(yīng)NA.如果一個或多個從機響應(yīng),主機就無法看到NA.通用廣播地址的含義一般在第二個字節(jié)中指明.
有兩種情況需要考慮:
1.最低有效位B是0
2.最低有效位B是1
當B是0,第二個字節(jié)有如下的定義:
1.0000 0110(06h):復(fù)位并通過硬件寫從機地址的可編程部分.在接收到這樣的2個字節(jié)時,所有可以響應(yīng)這個廣播地址的設(shè)備將復(fù)位并進入地址的可編程部分.要采取預(yù)防措施來確保設(shè)備不會在加上電源電壓后將SDA或SCL拉低,因為這些低電平會阻塞總線.
2.0000 0100(04h):通過硬件寫從機地址的可編程部分.行為同上,但設(shè)備不復(fù)位
3.0000 0000(00h):這個不應(yīng)該作為第二個字節(jié)使用
編程過程的順序參考相應(yīng)設(shè)備的Datasheet
軟件復(fù)位說明:
在通用廣播(0000 0000)之后發(fā)送0000 0110(06h)作為第二個字節(jié)會引起軟件復(fù)位.這個特性是可選的,不是所有的設(shè)備都會響應(yīng)這個命令.在接收到這樣的2個字節(jié)時,所有可以響應(yīng)這個廣播地址的設(shè)備將復(fù)位并進入地址的可編程部分.要采取預(yù)防措施來確保設(shè)備不會在加上電源電壓后將SDA或SCL拉低,因為這些低電平會阻塞總線.
第2次通信內(nèi)容如下:
Setup Write to [0x90]+ACK
0x00+ACK
Setup Read to[0x91]+ACK
0x2B+ACK
0xAF+ACK
0xED+NACK
讀取內(nèi)容為第1個采樣的ADC數(shù)據(jù)2BAFED,對應(yīng)電壓值為1.3979907V
第3次通信內(nèi)容如下:
Setup Write to [0x90]+ACK
0x00+ACK
Setup Read to[0x91]+ACK
0x2B+ACK
0xB0+ACK
0x48+NACK
讀取內(nèi)容為第2個采樣的ADC數(shù)據(jù)2BB048,對應(yīng)電壓值為1.3980352V
以此類推,第4~21次通信內(nèi)容為第3~20個采樣數(shù)據(jù)。
以上的圖文Word格式文檔51黑下載地址:
SGM58200 ADC模塊 I2C通訊協(xié)議分析.docx
(631.72 KB, 下載次數(shù): 38)
菜鳥機器 發(fā)表于 2022-4-19 14:40
官網(wǎng)未查詢到有SGM58200芯片資料,請問樓主有沒有SGM58031案例程序?
qq329769206 發(fā)表于 2022-5-6 16:43
用我們的ADC吧,應(yīng)該比SGM58200成熟
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |