朋友在用華遠bc芯片做個東西,想和ads1115通信。這裏根據datasheet總結下ADS1115的IIC通信機制
datasheet裏面其實有個quick guide,比較詳細的介紹了IIC通信的流程.
這個流程是讓ADS1113/4/5能夠連續的進行A/D轉換並且讀取結果的過程。將詳解下這個流程中的步驟
1.寫congif register,這是爲了寫配置寄存器,確定ADS1115的工作模式。
1)首先要確定從機地址(slave address),slave address 可選,addr pin有4個選擇。不過一般是地址位接GND,1001000,最後一位是確定IIC的寫/讀狀態,寫的時候是1,讀的時候是0.所以slave address讀寫地址是0x90/0x91(10010000/10010001)
2)寫0x01(00000001),指向config register(必選)
pointer register的後兩位確定了ADS1115的4個功能寄存器地址的地址
所以conversion reg的地址是0x00,config register 的地址是0x01.
3)配置config register.
quickguide裏面給的配置參數的高低八位是10000100,100000011。這個參數不是隨便配置的,必須搞清楚
config reg的高8位
config reg的低8位
高8位的主要作用如下:
[15] 工作狀態或者啓動單次轉換.寫狀態時0沒有影響,1則表示啓動單次轉換,guide選擇了1。同guide就可以了
【14:12】只對ADS1115有用,根據輸入端口配置,guide裏面選的000,表示差分輸入的兩個端口正極AIN0,負極AIN1。這隻有根據自己的輸入來配置,不一定按照guide來
【11:9】ADS1115 only。根據可編程增益放大器的增益配置。這配置可以改變輸入信號的有效範圍,但是輸入信號不能超過VSS+0.3V。guide選擇了010,這個也根據自己要求來
【8】ads1115工作模式,0爲單次,1爲連續continuous。
低8位
【7:5】採樣頻率,guide是100,默認值128,一般足夠了
【4:0】只對ADS1114/1115有用,主要是比較器和輸出的配置。一般默認值即可
2 配置完成之後,轉向conversion reg,就是輸出寄存器,即
依次
1)寫入0x90(從機地址),
2)0x00(輸出寄存器的地址,必選)
3讀取數據
1)寫入0x91(從機地址,讀)
2)接收輸出寄存器的高8位
3)接收輸出寄存器的低8位(但是隻有高四位有效,所有最後得到的輸出結果還要在convert下)