抓緊收藏,ADS1247和ADS1248寄存器操作中文說明 發布時間:2020-02-24 閱讀人數:
不少電子工程師和我一樣,對于TI官網ADS1247和ADS1248的英文數據手冊,讀起來、理解起來有些吃力,晦澀的感覺。筆者在網上搜集的對于ADS1247和ADS1248寄存器操作的中文說明,個別地方坐了潤色和修改,分享給大家 ,共同學習。
ADS1247與ADS1248的寄存器列表
ADDRESS |
REGISTER |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
00h |
MUX0 |
BCS1 |
BCS0 |
MUX_SP2 |
MUX_SP1 |
MUX_SP0 |
MUX_SN2 |
MUX_SN1 |
MUX_SN0 |
01h |
VBIAS |
VBIAS7 |
VBIAS6 |
VBIAS5 |
VBIAS4 |
VBIAS3 |
VBIAS2 |
VBIAS1 |
VBIAS0 |
02h |
MUX1 |
CLKSTAT |
VREFCON1 |
VREFCON0 |
REFSELT1 |
REFSELT0 |
MUXCAL2 |
MUXCAL1 |
MUXCAL0 |
03h |
SYS0 |
0 |
PGA2 |
PGA1 |
PGA0 |
DR3 |
DR2 |
DR1 |
DR0 |
04h |
OFC0 |
OFC7 |
OFC6 |
OFC5 |
OFC4 |
OFC3 |
OFC2 |
OFC1 |
OFC0 |
05h |
OFC1 |
OFC15 |
OFC14 |
OFC13 |
OFC12 |
OFC11 |
OFC10 |
OFC9 |
OFC8 |
06h |
OFC2 |
OFC23 |
OFC22 |
OFC21 |
OFC20 |
OFC19 |
OFC18 |
OFC17 |
OFC16 |
07h |
FSC0 |
FSC7 |
FSC6 |
FSC5 |
FSC4 |
FSC3 |
FSC2 |
FSC1 |
FSC0 |
08h |
FSC1 |
FSC15 |
FSC14 |
FSC13 |
FSC12 |
FSC11 |
FSC10 |
FSC9 |
FSC8 |
09h |
FSC2 |
FSC23 |
FSC22 |
FSC21 |
FSC20 |
FSC19 |
FSC18 |
FSC17 |
FSC16 |
0Ah |
IDAC0 |
ID3 |
ID2 |
ID1 |
ID0 |
DRDY MODE |
IMAG2 |
IMAG1 |
IMAG0 |
0Bh |
IDAC1 |
I1DIR3 |
I1DIR2 |
I1DIR1 |
I1DIR0 |
I2DIR3 |
I2DIR2 |
I2DIR1 |
I2DIR0 |
0Ch |
GPIOCFG |
IOCFG7 |
IOCFG6 |
IOCFG5 |
IOCFG4 |
IOCFG3 |
IOCFG2 |
IOCFG1 |
IOCFG0 |
0Dh |
GPIODIR |
IODIR7 |
IODIR6 |
IODIR5 |
IODIR4 |
IODIR3 |
IODIR2 |
IODIR1 |
IODIR0 |
0Eh |
GPIODAT |
IODAT7 |
IODAT6 |
IODAT5 |
IODAT4 |
IODAT3 |
IODAT2 |
IODAT1 |
IODAT0 |
ADS1247 and ADS1248 寄存器定義
MUX0多路控制開關0。此寄存器可以任意組合的差分輸入選擇的任何輸入通道。請注意,此設置可以通過muxcal和VBIAS位取代。
MUX0 地址00H RESET VALUE = 01h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
BCS1 |
BCS0 |
MUX_SP2 |
MUX_SP1 |
MUX_SP0 |
MUX_SN2 |
MUX_SN1 |
MUX_SN0 |
Bits 7:6 BCS1:0 電流源電流大小設置
00 =關閉電流源(默認)
01 = 0.5uA
10 = 2uA
11 = 10uA
Bits 5:3 MUX_SP2:0 正輸入通道選擇
000 = AIN0 (default)
001 = AIN1
010 = AIN2
011 = AIN3
100 = AIN4 (ADS1248only)
101 = AIN5 (ADS1248only)
110 = AIN6 (ADS1248only)
111 = AIN7 (ADS1248only)
Bits 2:0 MUX_SN2:0 負輸入通道選擇
000 = AIN0
001 = AIN1 (default)
010 = AIN2
011 = AIN3
100 = AIN4 (ADS1248only)
101 = AIN5 (ADS1248only)
110 = AIN6 (ADS1248only)
111 = AIN7 (ADS1248only)
VBIAS—偏執電壓設置寄存器
VBIAS – 地址 01h RESET VALUE = 00h |
||||||||
DEVICE |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ADS1248 |
VBIAS7 |
VBIAS6 |
VBIAS5 |
VBIAS4 |
VBIAS3 |
VBIAS2 |
VBIAS1 |
VBIAS0 |
ADS1247 |
0 |
0 |
0 |
0 |
VBIAS3 |
VBIAS2 |
VBIAS1 |
VBIAS0 |
Bits 7:0 VBIAS7:0 設置偏壓(AVDD + AVSS)/2到選擇的模擬輸入
0 = 關閉偏執電壓 (default)
1 = 開啟偏執電壓到對應的輸入 (bit 0 對應到AIN0,依次類推.).
MUX1—多路開關控制器1
MUX1 - ADDRESS 02h RESET VALUE = 00h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
CLKSTAT |
VREFCON1 |
VREFCON0 |
REFSELT1 |
REFSELT0 |
MUXCAL2 |
MUXCAL1 |
MUXCAL0 |
Bit 7 CLKSTAT 此位為只讀,并表示內部或外部振蕩器是否正在使用。
0 = 內部時鐘正在使用
1 = 外部時鐘正在使用
Bits 6:5 VREFCON1:0 控制內部電壓基準。這些位允許引用完全打開或關閉,或允許引用狀態跟隨設備的狀態。注意內部參考為IDAC功能操作要求。
00 =關閉基準fault)
01 = 一直開啟基準
10 or 11 =轉換完成后或關機操作后關閉基準(跟隨相關狀態自動開啟或關閉)
Bits 4:3 REFSELT1:0 ADC參考選擇
00 =使用REF0作為基準輸入(default)
01 =使用REF1作為基準輸入(只支持ADS1248)
10 =選擇內部基準
11 =在內部連接到參考選擇REF0輸入對(不知道干嘛的)
Bits 2:0 MUXCAL2:0這些位用于選擇一個測量方式(選擇的測量方式將取代MUX_SP, MUX_SN, and VBIAS)
000 =正常運行 (default)
001 =偏移測量
010 =增益測量
011 =內部溫度測量
100 = 外部 REF1 測量(ADS1248 only)
101 = 外部REF0測量
110 = AVDD 測量
111 = DVDD 測量
MUXCAL 設置
MUXCAL[2:0] |
PGA GAIN 設置 |
ADC INPUT |
000 |
通過SYS0設置 |
正常模式 |
001 |
通過SYS0設置 |
輸入接到 (AVDD + AVSS)/2 |
010 |
強制設置為1 1 |
VREFP – VREFN (full-scale) |
011 |
強制設置為1 |
內部溫度測量 |
100 |
強制設置為1 |
(VREFP1 – VREFN1)/4 |
101 |
強制設置為1 |
(VREFP0 – VREFN0)/4 |
110 |
強制設置為1 |
(AVDD – AVSS)/4 |
111 |
強制設置為1 |
(DVDD – DVSS)/4 |
設置會修改PGA,恢復正常模式后PGA由SYS0控制
SYS0—系統控制寄存器 0
SYS0 - ADDRESS 03h RESET VALUE = 00h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
0 |
PGA2 |
PGA1 |
PGA0 |
DOR3 |
DOR2 |
DOR1 |
DOR0 |
Bit 7 必須一直為 '0'
Bits 6:4 PGA2:0 PGA增益設置
000 = 1 (default)
001 = 2
010 = 4
011 = 8
100 = 16
101 = 32
110 = 64
111 = 128
Bits 3:0 DOR3:0 ADC采集速率設置 最大設置為1001,選擇2000sps
0000 = 5SPS (default)
0001 = 10SPS
0010 = 20SPS
0011 = 40SPS
0100 = 80SPS
0101 = 160SPS
0110 = 320SPS
0111 = 640SPS
1000 = 1000SPS
1001 to 1111 = 2000SPS
OFC23:0 ADS1248偏移校準系數寄存器.
OFC0—偏移校正系數寄存器0
OFC0 - ADDRESS 04h RESET VALUE = 000000h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
OFC7 |
OFC6 |
OFC5 |
OFC4 |
OFC3 |
OFC2 |
OFC1 |
OFC0 |
OFC1—偏移校正系數寄存器1
OFC1 - ADDRESS 05h RESET VALUE = 000000h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
OFC15 |
OFC14 |
OFC13 |
OFC12 |
OFC11 |
OFC10 |
OFC9 |
OFC8 |
OFC2—偏移校正系數寄存器2
OFC2 - ADDRESS 06h RESET VALUE = 000000h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
OFC23 |
OFC22 |
OFC21 |
OFC20 |
OFC19 |
OFC18 |
OFC17 |
OFC16 |
FSC23:0 滿量程校準系數寄存器(復位后恢復出廠校準值).
FSC0—滿量程校準寄存器0
FSC0 - ADDRESS 07h RESET VALUE IS PGA DEPENDENT (1) |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
FSC7 |
FSC6 |
FSC5 |
FSC4 |
FSC3 |
FSC2 |
FSC1 |
FSC0 |
FSC1—滿量程校準寄存器1
FSC1 - ADDRESS 08h RESET VALUE IS PGA DEPENDENT (1) |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
FSC15 |
FSC14 |
FSC13 |
FSC12 |
FSC11 |
FSC10 |
FSC9 |
FSC8 |
FSC2—滿量程校準寄存器2
FSC2 - ADDRESS 09h RESET VALUE IS PGA DEPENDENT (1) |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
FSC23 |
FSC22 |
FSC21 |
FSC20 |
FSC19 |
FSC18 |
FSC17 |
FSC16 |
IDAC0 可編程電流源控制寄存器 0
IDAC0 - ADDRESS 0Ah RESET VALUE = x0h |
|||||||
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ID3 |
ID2 |
ID1 |
ID0 |
DRDY MODE |
IMAG2 |
IMAG1 |
IMAG0 |
Bits 7:4 ID3:0
只讀只讀,工廠編程位,用于識別修改版本。
Bit 3 DRDY MODE 用于設置DOUT/DRDY輸出數據準備就緒狀態,低電平有效
0 = DOUT/DRDY僅作為數據輸出(default)
1 = DOUT/DRDY引腳功能既作為數據輸出和數據準備,低電平有效
Bits 2:0 IMAG2:0 ADS1247/8有兩個可編程電流源DAC可用于傳感器激勵。這幾位控制激勵電流的大小。IDAC要求內部基準源必須開啟.
000 = off (default)
001 = 50mA
010 = 100mA
011 = 250mA
100 = 500mA
101 = 750mA
110 = 1000mA
111 = 1500mA
IDAC1 可編程電流源控制寄存器1
IDAC1 - ADDRESS 0Bh RESET VALUE = FFh |
||||||||
DEVICE |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ADS1248 |
I1DIR3 |
I1DIR2 |
I1DIR1 |
I1DIR0 |
I2DIR3 |
I2DIR2 |
I2DIR1 |
I2DIR0 |
ADS1247 |
0 |
0 |
I1DIR1 |
I1DIR0 |
0 |
0 |
I2DIR1 |
I2DIR0 |
ADS1247/8有2路IDAC,可以連接到IEXC1,IEXC2或任意模擬輸入。
Bits 7:4 I1DIR3:0 這些位選擇第一電流源DAC輸出引腳。
0000 = AIN0
0001 = AIN1
0010 = AIN2
0011 = AIN3
0100 = AIN4 (ADS1248only)
0101 = AIN5 (ADS1248only)
0110 = AIN6 (ADS1248only)
0111 = AIN7 (ADS1248only)
10x0 = IEXT1 (ADS1248only)
10x1 = IEXT2 (ADS1248only)
11xx = 關閉(default)
Bits 3:0 I2DIR3:0 這些位選擇了第二電流源DAC的輸出引腳
0000 = AIN0
0001 = AIN1
0010 = AIN2
0011 = AIN3
0100 = AIN4 (ADS1248only)
0101 = AIN5 (ADS1248only)
0110 = AIN6 (ADS1248only)
0111 = AIN7 (ADS1248only)
10x0 = IEXT1 (ADS1248only)
10x1 = IEXT2 (ADS1248only)
11xx = 關閉(default)
GPIOCFG—GPIO 配置寄存器,用于配置GPIO與模擬輸入引腳復用功能
GPIO0 復用 REFP0
GPIO1 復用 REFN0
GPIO2 復用 AIN2
GPIO3 復用 AIN3
GPIO4復用 AIN4 (ADS1248)
GPIO5復用 AIN5 (ADS1248)
GPIO6復用 AIN6 (ADS1248)
GPIO7復用 AIN7 (ADS1248)
GPIOCFG - ADDRESS 0Ch RESET VALUE = 00h |
||||||||
DEVICE |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ADS1248 |
IOCFG7 |
IOCFG6 |
IOCFG5 |
IOCFG4 |
IOCFG3 |
IOCFG2 |
IOCFG1 |
IOCFG0 |
ADS1247 |
0 |
0 |
0 |
0 |
IOCFG3 |
IOCFG2 |
IOCFG1 |
IOCFG0 |
Bits 7:0 IOCFG7:0 GPIO與模擬輸入復用設置,注意ADS1248支持所有GPIO,但是ADS1247只支持GPIO1-GPIO3,也就是BIT0-BIT3
0 = 該引腳用作模擬輸入(default)
1 = 該引腳用作 GPIO pin
GPIODIR—GPIO方向寄存器
GPIODIR - ADDRESS 0Dh RESET VALUE = 00h |
||||||||
DEVICE |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ADS1248 |
IODIR7 |
IODIR6 |
IODIR5 |
IODIR4 |
IODIR3 |
IODIR2 |
IODIR1 |
IODIR0 |
ADS1247 |
0 |
0 |
0 |
0 |
IODIR3 |
IODIR2 |
IODIR1 |
IODIR0 |
Bits 7:0 IODIR7:0 用于控制GPIO方向,注意ADS1248支持所有GPIO,但是ADS1247只支持GPIO1-GPIO3,也就是BIT0-BIT3
0 = GPIO輸出模式 (default)
1 = GPIO 輸入模式
GPIODAT—GPIO數據寄存器
GPIODAT - ADDRESS 0Eh RESET VALUE = 00h |
||||||||
DEVICE |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
ADS1248 |
IODAT7 |
IODAT6 |
IODAT5 |
IODAT4 |
IODAT3 |
IODAT2 |
IODAT1 |
IODAT0 |
ADS1247 |
0 |
0 |
0 |
0 |
IODAT3 |
IODAT2 |
IODAT1 |
IODAT0 |
Bits 7:0 IODAT7:0 如果對應GPIO設置為輸出,則寫入對應bit會輸出到相應引腳,如果對應GPIO設置為輸入,則讀取對應bit對應輸入值,注意ADS1248支持所有GPIO,但是ADS1247只支持GPIO1-GPIO3,也就是BIT0-BIT3
SPI命令
一些指令是獨立的命令(例如,復位),而另一些則需要額外的字節(例如,寫命令需要計數和數據字節)
操作數說明:
n =讀寫寄存器的數量(要讀取的字節 – 1)
r = 寄存器 (0 to 15)
x = 不關心
SPI 命令列表
COMMAND TYPE |
COMMAND |
DESCRIPTION |
1st COMMAND BYTE |
2nd COMMAND BYTE |
System Control |
WAKEUP |
退出睡眠模式 |
0000 000x (00h, 01h) |
|
SLEEP |
進入睡眠模式 |
0000 001x (02h, 03h) |
|
|
SYNC |
同步AD轉換 |
0000 010x (04h, 05h) |
0000-010x (04,05h) |
|
RESET |
復位 |
0000 011x (06h, 07h) |
|
|
NOP |
空指令 |
1111 1111 (FFh) |
|
|
Data Read |
RDATA |
讀取數據 |
0001 001x (12h, 13h) |
|
RDATAC |
連續讀取數據 |
0001 010x (14h, 15h) |
|
|
SDATAC |
停止讀取數據 |
0001 011x (16h, 17h) |
|
|
Read Register |
RREG |
讀寄存器 rrrr |
0010 rrrr (2xh) |
0000_nnnn |
Write Register |
WREG |
寫寄存器rrrr |
0100 rrrr (4xh) |
0000_nnnn |
Calibration |
SYSOCAL |
系統失調校準 |
0110 0000 (60h) |
|
SYSGCAL |
系統增益校準 |
0110 0001 (61h) |
|
|
SELFOCAL |
自校正 |
0110 0010 (62h) |
|