AD7195

AD7195 (lib edit from AD7193)

前言

本筆記使用 ESP-WROOM-32 與 EVAL-AD7195EBZ 開始進行測試與開發,程式碼基於 annem 釋出的 AD7193 進行調整並測試。以下為 AD7195 的簡介節錄:

4.8 kHz, Ultralow Noise
24-Bit Sigma-Delta ADC
PGA and AC Excitation

Applications:

Weigh scales
Strain gage transducers
Pressure measurement
Temperature measurement
Chromatography
PLC/DCS analog input modules
Data acquisition
Medical and scientific instrumentation

硬體使用

以下紀錄關於測試學習中的硬體連接線路、官方建議的相關連接方式;
本筆記的開發主要目標是針對 橋式電路中的 Strain Gauge 的量測。

Connect to MCU by HSPI

本次測試學習的開發板仍然採用 ESP32,雙核心的架構使我們有很好的開發彈性,再外部連接上具備了至少兩個部份的 SPI 通道可供我們使用,另外也有許多 GPIO 可進行定義使用。esp32 與 AD7195 的連線會採用 HSPI 的方式進行連接,連接腳位可以參考下表:

AD7195Pin ESP32 Pins 備註
CS 15 選擇 ADC,輸出 LOW,使 ADC 可以在 3 線模式下工作
DIN 13 (MOSI) 配置晶片訊號
SCLK 14 (SCLK) 通訊時脈
DOUT/RDY 12 (MISO) 當轉換完成後會變成 LOW,再由此腳 SPI 傳輸數據
SYNC 27 拉低會使濾波器、控制節點重置
AVDD 5V 模擬電源電壓,4.75 V 至 5.25 V。AVDD 獨立於 DVDD。
DVDD 3V3 數字電源電壓,2.7 V 至 5.25 V。DVDD 獨立於 AVDD。

Connect to Bridge sensor


Software

寄存器-控制晶片運作與讀取數計的中繼

程式中預設了寄存器對應的默認值,關於寄存器的內容表可以參考下方圖片的對應表,由於函式庫參考了 annem/ad7193 的相關內容進行調修,故圖片中黑色的部分為 7193 的相關內容,紅色則是 7195 與其不同的部分

7193 vs 7195 寄存器差異  (AD7195 Datasheet - Page 17)

7193 vs 7195 寄存器差異 (AD7195 Datasheet - Page 17)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*寄存器預設值*/
unsigned long registerMap[4] = {
0x00, /*狀態*/
0x080060, /*模式*/
0x000117, /*配置*/
0x000000 /*數據*/
};

/*每個寄存器的大小,spi每次讀取為 8bit 所以是 n*8bit */
int registerSize[8] = {
1, /*0,狀態*/
3, /*1,模式*/
3, /*2,配置*/
3, /*3,數據*/
1, /*4,ID*/
1, /*5,GPOCON*/
3, /*6,失調*/
3 /*7,滿量程*/
};
Name Address Command Reciver
通訊 00
狀態 00 0100 0000 0
模式 01 0100 1000 1000 0000 0000 0110 0000
配置 02 0101 0000 0001 0001 0110
數據 03 0101 1000 0111 1111 1111 1101 1011 0101
ID 04 0110 0000 1010 0111
GPOCON 05
失調 06 0111 0000 1000 0000 0000 0000 0000 0000
滿量程 07 0111 1000 0101 0101 0011 1101 0000 0000

References

來源函式庫

GitHub - annem/AD7193

AD7193

晶片文件

AD7193 + Arduino Tutorial - Thermocouple measurements