項目需要,嘗試使用AD7124-8這款24位ADC芯片,在這里記錄一些使用過程的體驗與才做方法。
1、背景
ADC7124是一款24位ADC芯片,內置1路ADC,可分時復用到8個差分通道或15個單端通道。SPI接口。內置2.5V基准。可輸出基准電壓與電流源。
2、數據讀取
芯片有一個數據寄存器(地址0x02),用於存放24bit的采樣結果。比較坑的是,如果進行多路采集,相當於寄存器里只緩存了1個結果,沒有及時讀走的數據,將會丟失!!。
目前我用到的讀取方式,是一直查詢狀態寄存器(0x00)的RDY位,當RDY為0時,讀取數據,並根據寄存器里面的CH_ACTIVE位,判斷當前是哪個配置通道的結果。
3、通道選擇
這點是這款芯片比較靈活的地方,寄存器里有16個通道寄存器(0x09~0x18),相當於16個采樣配置(與物理的AIN引腳無關)。
每個寄存器都可以配置采樣的輸入正與輸入負,芯片依次輪詢這16個寄存器,按照每個寄存器的設置去進行ADC采樣。
這樣就可以設置一個采集順序,有點軟件設置的感覺,非常方便。
當然,也可以只使用16組配置里面的一部分。

4、采樣率
這點開始時迷惑了一會,手冊上說的最高采樣率19.2k,但一直沒找到在哪里設置。
后來發現采樣率與濾波器設置在一起,也就是8組濾波器寄存器(0x21~0x28)的FS位。

5、配置
這點也是迷惑了一會的地方。前面提到的16組通道設置寄存器,每組里面有一個字段Steup,共3bit。
手冊里介紹這里可以配置8組模式,每組模式由四個寄存器去設置,這樣提前設置好模板,就可以在對應的采樣中使用了,非常方便。

