片内寄存器
通信寄存器
(RS2, RS1, RS0 = 0, 0, 0)
通信寄存器是一个 8 位只写寄存器。 与该器件的所有通信均必须以对通信寄存器的写操作开始。 写入通信寄存器的数据决定下一个操作是读操作还是写操作, 以及此操作发生在哪一个寄存器。 对于读或写操作, 当随后对选定寄存器的读或写操作完成后, 接口返回到期待对通信寄存器执行写操作的状态。 这是接口的默认状态, 而且在上电时或复位后, ADC 处于此默认状态, 等待对通信寄存器的写操作。 如果接口时序丢失, 执行一个占用至少 40 个串行时钟周期的写操作, 并使 DIN 处于高电平状态, 将可以复位整个器件, 使 ADC 返回此默认状态。 表 14 列出了通信寄存器各位的名称和意义。 CR0 至 CR7 表示位的位置, CR 说明这些位属于通信寄存器。 CR7 表示数据流的第一位。 括号中的数值表示该位的上电 / 复位默认状态。
CR7 | CR6 | CR5 | CR4 | CR3 | CR2 | CR1 | CR0 |
---|---|---|---|---|---|---|---|
WEN(0) | R/W(0) | RS2(0) | RS1(0) | RS0(0) | CREAD(0) | 0(0) | 0(0) |
表 14. 通信寄存器位功能描述
位的位置 | 位的名称 | 描述 |
---|---|---|
CR7 | WEN | 写入使能位。 必须将 0 写入此位, 才能对通信寄存器执行写操作。 如果第一位写入 1, 则器件不会将后续位载入寄存器, 而是停留在此位的位置, 直到此位写入 0。 将 0 写入 WEN 位后, 器件便会将 后续 7 位载入通信寄存器。 在两次数据传输之间将 DIN 引脚置为高电平, 可以最大程度地降低杂散 SCLK 脉冲对串行接口的影响。 |
CR6 | R/W | 如果此位为 0, 则表示下一个操作是对指定寄存器执行写操作。 如果此位为 1, 则表示下一个操作是 对指定寄存器执行读操作。 |
CR5 至 CR3 | RS2 至 RS0 | 寄存器地址位。 这些地址位决定串行接口通信期间选择 ADC 的哪些寄存器(见表 15)。 |
CR2 | CREAD | 连续读取数据寄存器。 当此位为 1(并且已选择数据寄存器) 时, 串行接口可以连续读取数据寄存器; 即在 RDY 引脚变为低电平(表示转换已完成) 后施加 SCLK 脉冲时, 数据寄存器的内容将自动置于 DOUT 引脚上。 对于后续数据读取, 不必对通信寄存器执行写操作。 要使能连续读取模式, 必须将指 令 01011100 写入通信寄存器。 要禁用连续读取模式, 必须在 RDY 引脚为低电平时将指令 01011000 写入通信寄存器。 使能连续读取后, ADC 将监控 DIN 线路上的活动, 以便能接收指令以禁用连续读取。 此外, 如果 DIN 上连续出现 40 个 1, ADC 将复位。 因此, DIN 应保持低电平, 直到有指令将要写入 该器件。 |
CR1 至 CR0 | 0 | 必须将这些位编程为逻辑 0 才能正常工作。 |
表 15. 寄存器选择
RS2 | RS1 | RS0 | 寄存器 | 寄存器大小 |
---|---|---|---|---|
0 | 0 | 0 | 写操作期间为通信寄存器 | 8 位 |
0 | 0 | 0 | 读操作期间为状态寄存器 | 8 位 |
0 | 0 | 1 | 模式寄存器 | 24 位 |
0 | 1 | 0 | 配置寄存器 | 24 位 |
0 | 1 | 1 | 数据寄存器 / 数据寄存器加状态信息 | 24 位 /32 位 |
1 | 0 | 0 | ID 寄存器 | 8 位 |
1 | 0 | 1 | GPOCON 寄存器 | 8 位 |
1 | 1 | 0 | 失调寄存器 | 24 位 |
1 | 1 | 1 | 满量程寄存器 | 24 位 |
/*---------------------------------通信寄存器 (8位)---------------------------------*/
#define WEN 0x00 //写使能
#define WEN_DIS 0x80 //写禁止
#define RW_W 0x00 //对指定寄存器执行写操作
#define RW_R 0x40 //对指定寄存器执行读操作
#define CREAD_EN 0x04 //连续读取使能
#define CREAD_DIS 0x00 //连续读取禁止
//RS2 - RS0 寄存器地址位,决定串行接口通信期间选择 ADC 的哪些寄存器
#define REG_COM_STA 0x00 //写操作期间为通信寄存器,读操作期间为状态寄存器
#define REG_MODE 0x01 //模式寄存器
#define REG_CONF 0x02 //配置寄存器
#define REG_DATA 0x03 //数据寄存器 / 数据寄存器加状态信息
#define REG_ID 0x04 //ID 寄存器
#define REG_GPOCON 0x05 //GPOCON 寄存器
#define REG_OFFSET 0x06 //失调寄存器
#define REG_FS 0x07 //满量程寄存器
状态寄存器
(RS2, RS1, RS0 = 0, 0, 0; 上电 / 复位 = 0x80)
状态寄存器是一个 8 位只读寄存器。 要访问 ADC 状态寄存器, 用户必须写入通信寄存器, 选择下一个操作为读操作, 并将 0 载入
位 RS2、 位 RS1 和位 RS0。 表 16 列出了状态寄存器各位的名称和意义。 SR0 至 SR7 表示位的位置, SR 说明这些位属于状态寄存器。
SR7 表示数据流的第一位。 括号中的数值表示该位的上电 / 复位默认状态。
SR7 | SR6 | SR5 | SR4 | SR3 | SR2 | SR1 | SR0 |
---|---|---|---|---|---|---|---|
RDY(1) | ERR(0) | NOREF(0) | PARITY(0) | 0(0) | CHD2(0) | CHD1(0) | CHD0(0) |
表 16. 状态寄存器位功能描述
位的位置 | 位的名称 | 描述 |
---|---|---|
SR7 | RDY | ADC 就绪位。 数据写入 ADC 数据寄存器后此位清 0。读取 ADC 数据寄存器之后, 或者在用新转换结 果更新数据寄存器之前的一定时间内, RDY 位自动置 1, 以告知用户不应读取转换数据。 将器件置于 关断模式或空闲模式时, 或者当 SYNC 变为低电平时, 此位也会置 1。 DOUT/RDY 引脚也会指示转换何时结束。 该引脚可以代替状态寄存器来监视 ADC 有无转换数据。 |
SR6 | ERR | ADC 错误位。 此位与 RDY 位同时写入。 如果此位置 1, 则说明写入 ADC 数据寄存器的结果箝位为全 0 或全 1。 错误源包括超量程、 欠量程或缺少基准电压。 如果写入数据寄存器的结果再次回到容许的 模拟输入范围内, 则此位清 0。 |
SR5 | NOREF | 无外部基准电压位。 如果此位置1, 则说明选定的基准电压(REFIN1或REFIN2)低于规定的阈值。 置1后, 转换结果箝位为全 1。 如果此位清 0, 则说明对选定的基准电压引脚施加了有效基准电压。 将配置寄 存器中的 REFDET 位置 1 可使能 NOREF 位。 |
SR4 | PARITY | 数据寄存器的奇偶校验。 如果模式寄存器中的 ENPAR 位置 1, 并且数据寄存器中有奇数个 1, 则 PARITY 位置 1。 如果数据寄存器中有偶数个 1, 则此位清 0。 使用奇偶校验时, 模式寄存器中的 DAT_STA位应置1。 DAT_STA位置1后, 状态寄存器的内容将与每次从数据寄存器读取的数据一同传输。 |
SR3 | 0 | 此位置 0。 |
SR2 至 SR0 | CH2 至 CH0 | 这些位指示哪一通道对应数据寄存器的内容。 这些位不是指示目前正在转换哪一通道, 而是指示产生数据寄存器所含转换结果时选定了哪一通道。 |
/*--------------------------------状态寄存器 (8位只读寄存器)-------------------------------*/
#define RDY_H 0x80 //写入ADC数据寄存器后清 0
#define RDY_L 0x00 //读取ADC数据寄存器后清 1
#define ERR_H 0x40 //ADC 错误位
#define ERR_L 0x00 //ADC 错误位
#define NOREF_H 0x20 //无外部基准电压位
#define NOREF_L 0x00 //无外部基准电压位
#define PARITY_H 0x10 //数据寄存器的奇偶校验
#define PARITY_L 0x00 //数据寄存器的奇偶校验
//SR2 - SR0 指示产生数据寄存器所含转换结果时选定了哪一通道
#define CHDST_AIN1_AIN2 0x00 //一路差分
#define CHDST_AIN3_AIN4 0x01 //二路差分
#define CHDST_TEMP 0x02 //内部温度
#define CHDST_AIN2_AIN2 0x03 //?
#define CHDST_AIN1_COM 0x04 //一路伪差分
#define CHDST_AIN2_COM 0x05 //二路伪差分
#define CHDST_AIN3_COM 0x06 //三路伪差分
#define CHDST_AIN4_COM 0x07 //四路伪差分
模式寄存器
(RS2, RS1, RS0 = 0, 0, 1; 上电 / 复位 = 0x080060)
模式寄存器是一个 24 位寄存器, 可以从中读取数据, 也可以将数据写入其中。 此寄存器用来选择工作模式、 输出数据速率和时钟源。 表 17 列出了模式寄存器各位的名称和意义。 MR0 至 MR23 表示位的位置, MR 说明这些位属于模式寄存器。 MR23 表示数据流的第一位。 括号中的数值表示该位的上电 / 复位默认状态。 只要对模式寄存器执行写操作, 就会复位调制器和滤波器,并将 RDY 位置 1。
MR23 | MR22 | MR21 | MR20 | MR19 | MR18 | MR17 | MR16 |
---|---|---|---|---|---|---|---|
MD2(0) | MD1(0) | MD0(0) | DAT_STA(0) | CLK1(1) | CLK0(0) | 0 | 0 |
MR15 | MR14 | MR13 | MR12 | MR11 | MR10 | MR9 | MR8 |
SINC3(0) | 0 | ENPAR(0) | CLK_DIV(0) | SINGLE(0) | REJ60(0) | FS9(0) | FS8(0) |
MR7 | MR6 | MR5 | MR4 | MR3 | MR2 | MR1 | MR0 |
FS7(0) | FS6(1) | FS5(1) | FS4(0) | FS3(0) | FS2(0) | FS1(0) | FS0(0) |
表 17. 模式寄存器位功能描述
位的位置 | 位的名称 | 描述 |
---|---|---|
MR23 至 MR21 | MD2 至 MD0 | 模式选择位。 这些位选择 AD7192 的工作模式(参见表 18)。 |
MR20 | DAT_STA | 此位使能每次数据寄存器读操作之后传输状态寄存器内容。DAT_STA 置 1 后, 状态寄存器的内容将与每次从数据寄存器读取的数据一同传输。此功能在选定多个通道的情况下很有用,因为状态寄存器可确定哪一通道与数据寄存器值对应。 |
MR19, MR18 | CLK1, CLK0 | 这些位用来选择 AD7192 的时钟源。 可以使用片内 4.92 MHz 时钟或外部时钟。 使用外部 时钟时,多个 AD7192 器件可以同步。 此外, 当采用精确的外部时钟驱动 AD7192 时,可以改善 50 Hz/60 Hz 抑制性能。 |
CLK1 | CLK0 | ADC 时钟源 |
0 | 0 | 外部晶振。外部晶振是从 MCLK1 连至 MCLK2。 |
0 | 1 | 外部时钟。外部时钟施加于 MCLK2 引脚。 |
1 | 0 | 4.92 MHz 内部时钟。MCLK2 引脚为三态。 |
1 | 1 | 4.92 MHz 内部时钟。内部时钟可从 MCLK2 获得。 |
MR17, MR16 | 0 | 必须将这些位编程为逻辑 0 才能正常工作。 |
MR15 | SINC3 | Sinc3 滤波器选择位。 当此位清 0 时, 使用 sinc4 滤波器(默认值)。 当此位置 1 时, 使用 sinc3 滤波器。 |
MR14 | 0 | 必须将此位编程为逻辑 0 才能正常工作。 |
MR13 | ENPAR | 使能奇偶校验位。 ENPAR 置 1 时, 使能对数据寄存器的奇偶校验。 使用奇偶校验时,模式寄存器中的 DAT_STA 位应置 1。 DAT_STA 位置 1 后, 状态寄存器的内容将与每次从数 据寄存器读取的数据一同传输。 |
MR12 | CLK_DIV | 时钟 2 分频。 CLK_DIV 置 1 时, 主时钟 2 分频。 正常转换时, 此位应设置为 0。 执行内部满量程校准时, 如果 AVDD 小于 4.75 V, 此位必须置 1。 执行校准时, 使能斩波并使用较低的输出数据速率可以优化校准精度。 如果 AVDD 大于或等于 4.75 V, 执行内部满量程校准时不要求将 CLK_DIV 位置 1。 |
MR11 | SINGLE | 单周期转换使能位。 此位置 1 时, AD7192 在一个转换周期内建立, 以便用作零延迟 ADC。 如果使能多个模拟输入通道, 或者选择单次转换模式, 则此位无作用。 |
MR10 | REJ60 | 当 sinc 滤波器的第一陷波频率为 50 Hz 时, 此位可使能一个 60 Hz 的陷波频率。 当 sinc 滤波器的第一陷波频率为 50 Hz 时, REJ60 置 1 将使滤波器获得一个 60 Hz 的陷波频率, 从而实现 50 Hz/60 Hz 同时抑制。 |
MR9 至 MR0 | FS9 至 FS0 | 滤波器输出数据速率选择位。 这 10 位数据决定滤波器截止频率、 滤波器第一陷波频率的 位置以及器件的输出数据速率。 它们还与增益选择一起决定器件的输出噪声(因而也决 定了有效分辨率,参见表 6 至表 13)。禁用斩波并选择连续转换模式时, 输出数据速率 = (MCLK/1024)/FS 其中 FS 为 FS0 至 FS9 位中代码的十进制等效值, 其范围是 1 至 1023;MCLK 为主时钟频率。对于 4.92 MHz 标称 MCLK, 由上式可得知输出数据速率范围是 4.69 Hz 至 4.8 kHz。禁用 斩波并且在单一通道上转换时, 滤波器第一陷波频率等于输出数据速率。 使能斩波时, 输出数据速率 = (MCLK/1024)/(N × FS) 其中 FS 为 FS0 至 FS9 位中代码的十进制等效值, 其范围是 1 至 1023;MCLK 为主时钟频率。 对于 4.92 MHz 标称 MCLK, 由上式可得知转换速率范围是 4.69/N Hz 至 4.8/N kHz, 其中 N 为 sinc 滤波器的阶数。 sinc 滤波器的第一陷波频率等于(N x 输出数据速率)。 斩波引入 的陷波频率为(输出数据速率 /2) 的奇数倍。 |
表 18. 工作模式
MD2 | MD1 | MD0 | 模式 |
---|---|---|---|
0 | 0 | 0 | 连续转换模式(默认) |
0 | 0 | 1 | 单次转换模式 |
0 | 1 | 0 | 空闲模式 |
0 | 1 | 1 | 关断模式 |
1 | 0 | 0 | 内部零电平校准 |
1 | 0 | 1 | 内部满量程校准 |
1 | 1 | 0 | 系统零电平校准 |
1 | 1 | 1 | 系统满量程校准 |
/*---------------------------------模式寄存器 (24位读写寄存器)---------------------------------*/
//MD2 - MD1 模式选择位
#define MODE_CONT 0x000000 //连续转换模式(默认)
#define MODE_SING 0x200000 //单次转换模式
#define MODE_IDLE 0x400000 //空闲模式
#define MODE_PD 0x600000 //关断模式
#define MODE_INZCL 0x800000 //内部零电平校准
#define MODE_INFCL 0xA00000 //内部满量程校准
#define MODE_SYSZCL 0xC00000 //系统零电平校准
#define MODE_SYSFCL 0xE00000 //系统满量程校准
#define DAT_STA_EN 0x100000 //状态/数据寄存器读取的数据一同传输
#define DAT_STA_DIS 0x000000 //参考EN
//CLK1 - CLK0 ADC 时钟源
#define EXT_XTAL 0x000000 //外部晶振
#define EXT_CLK 0x040000 //外部时钟
#define INCLK_MCLK2TRI 0x080000 //4.92 MHz 内部时钟
#define INCLK_MCLK2EN 0x0C0000 //4.92 MHz 内部时钟
#define SINC_4 0x000000 //选择Sinc4 滤波器(默认值)
#define SINC_3 0x008000 //选择Sinc3 滤波器
#define ENPAR_EN 0x002000 //使能奇偶校验
#define ENPAR_DIS 0x000000 //失能奇偶校验
#define CLK_DIV_2 0x001000 //主时钟 2 分频
#define CLK_DIV_DIS 0x000000 //主时钟不分频
#define SINGLECYCLE_EN 0x000800 //使能单周期转换
#define SINGLECYCLE_DIS 0x000000 //失能单周期转换
#define REJ60_EN 0x000400 //使能60Hz的陷波频率,实现50Hz/60Hz同时抑制
#define REJ60_DIS 0x000000 //失能60Hz的陷波频率
//FS9 - FS0 滤波器输出数据速率选择位 咱不讨论,可看手册
配置寄存器
(RS2, RS1, RS0 = 0, 1, 0; 上电 / 复位 = 0x000117)
配置寄存器是一个 24 位寄存器, 可以从中读取数据, 也可以将数据写入其中。 此寄存器用来配置 ADC 的单极性或双极性模式,
使能或禁用缓冲器, 使能或禁用激励电流, 选择增益, 以及选择模拟输入通道。
表 19 列出了配置寄存器各位的名称和意义。 CON0 至 CON23 表示位的位置, CON 说明这些位属于配置寄存器。 CON23 表示
数据流的第一位。 括号中的数值表示该位的上电 / 复位默认状态。
CON23 | CON22 | CON21 | CON20 | CON19 | CON18 | CON17 | CON16 |
---|---|---|---|---|---|---|---|
CHOP(0) | 0(0) | 0(0) | REFSEL(0) | 0(0) | 0(0) | 0(0) | (0) |
CON15 | CON14 | CON13 | CON12 | CON11 | CON10 | CON9 | CON8 |
CH7(0) | CH6(0) | CH5(0) | CH4(0) | CH3(0) | CH2(0) | CH1(0) | CH0(1) |
CON7 | CON6 | CON5 | CON4 | CON3 | CON2 | CON1 | CON0 |
BURN(0) | REFDET(0) | 0(0) | BUF(1) | U/(0) B | G2(1) | G1(1) | G0(1) |
表 19. 配置寄存器位功能描述
位的位置 | 位的名称 | 描述 |
---|---|---|
CON23 | CHOP | 斩波使能位。 CHOP 位清 0 时, 斩波禁用。 置 1 时, 斩波使能。低增益时, 可能需要定期执行校准, 以消除失调和失调漂移。 |
CON22, CON21 | 0 | 必须将这些位编程为逻辑 0 才能正常工作。 |
CON20 | REFSEL | 基准电压选择位。 这些位用来选择 ADC 的基准电压源。 |
REFSEL | 基准电压 | |
0 | 在 REFIN1(+) 与 REFIN1( - ) 之间施加的外部基准电压 | |
1 | 在 P1/REFIN2(+) 与 P0/REFIN2( - ) 之间施加的外部基准电压。 | |
CON19 至 CON16 | 0 | 必须将这些位编程为逻辑 0 才能正常工作。 |
CON15 至 CON8 | CH7 至 CH0 | 通道选择位 |
CON7 | BURN | 此位置 1 将使能信号路径中的 500 nA 电流源。 BURN = 0 将禁用激励电流。 |
CON6 | REFDET | 使能基准电压检测功能。 置 1 时, 如果 ADC 所用的外部基准电压开路或小于 0.6 V(最大 值), 状态寄存器中的 NOREF 位将给出提示。 基准电压检测电路仅在 ADC 有效时工作。 |
CON5 | 0 | 必须将此位编程为逻辑 0 才能正常工作。 |
CON4 | BUF | 使能模拟输入端的缓冲器。 清 0 时, 模拟输入不进行缓冲, 可降低器件的功耗。 此位置 1 时, 模拟输入进行缓冲, 用户可以将源阻抗置于前端, 而不会给系统带来增益误差。 缓 冲器禁用时, 模拟输入引脚上的电压可以为 AGND 以下 50 mV 至 AVDD 以上 50 mV。 缓冲 器使能时, 它需要一些裕量; 因此, 任何输入引脚上的电压必须在电源轨的 250 mV 范围内。 |
CON3 | U/B | 极性选择位。 此位置 1 时, 选择单极性工作模式。 此位清 0 时, 选择双极性工作模式。 |
CON2 至 CON0 | G2 至 G0 | 增益选择位。 这些位由用户写入, 以便选择下列 ADC 输入范围之一 : |
增益选择位及通道选择位参照数据手册
/*---------------------------------配置寄存器 (24位读写寄存器)---------------------------------*/
#define CHOP_EN 0x800000 //斩波使能
#define CHOP_DIS 0x000000 //斩波禁用
#define REF_IN1 0x000000 //基准电压选择位 REFIN1(+) 与 REFIN1( - )
#define REF_IN2 0x100000 //基准电压选择位 REFIN2(+) 与 REFIN2( - )
//CON22, CON21 必须置0
//CON19 - CON16 必须置0
//CH7 - CH0 通道选择位
#define AIN1_AIN2 0x000100 //(AIN+)AIN1 (AIN-)AIN2
#define AIN3_AIN4 0x000200 //(AIN+)AIN3 (AIN-)AIN4
#define TEMP 0x000400 //温度传感器
#define AIN2_AIN2 0x000800 //(AIN+)AIN2 (AIN-)AIN2 ?????
#define AIN1_COM 0x001000 //(AIN+)AIN1 (AIN-)AINCOM
#define AIN2_COM 0x002000 //(AIN+)AIN2 (AIN-)AINCOM
#define AIN3_COM 0x004000 //(AIN+)AIN3 (AIN-)AINCOM
#define AIN4_COM 0x008000 //(AIN+)AIN4 (AIN-)AINCOM
#define BURN_EN 0x000080 //使能激励电流
#define BURN_DIS 0x000000 //禁用激励电流
#define REFDET_EN 0x000040 //使能基准电压检测功能
#define REFDET_DIS 0x000000 //禁用基准电压检测功能
#define BUF_EN 0x000010 //使能模拟输入端的缓冲器
#define BUF_DIS 0x000000 //禁用模拟输入端的缓冲器
#define UB_UNI 0x000008 //单极性工作模式
#define UB_BI 0x000000 //双极性工作模式
#define GAIN_1 0x000000 //1倍增益(无)
#define GAIN_8 0x000003 //8倍增益
#define GAIN_16 0x000004 //16倍增益
#define GAIN_32 0x000005 //32倍增益
#define GAIN_64 0x000006 //64倍增益
#define GAIN_128 0x000007 //128倍增益
数据寄存器
(RS2, RS1, RS0 = 0, 1, 1; 上电 / 复位 = 0x000000)
此数据寄存器存储 ADC 的转换结果。 它是一个 24 位只读寄存器。 完成对此寄存器的读操作后, RDY 引脚 / 位置 1。当模式寄存器的 DAT_STA 位置 1 时, 状态寄存器的值会添加到各 24 位转换结果上。 建议在多个模拟输入通道使能时采用这种做法, 因为状态寄存器的三个 LSB(CHD2 至 CHD0) 可确定转换结果的来源通道。
ID 寄存器
(RS2, RS1, RS0 = 1, 0, 0; 上电 / 复位 = 0xX0)
ID 寄存器存储 AD7192 的识别号。 它是一个只读寄存器。
GPOCON 寄存器
(RS2, RS1, RS0 = 1, 0, 1; 上电 / 复位 = 0x00)
GPOCON 寄存器是一个 8 位寄存器, 可以从中读取数据,也可以将数据写入其中。 此寄存器用来使能通用数字输出。表 21 列出了 GPOCON 寄存器各位的名称和意义。 GP0 至 GP7 表示位的位置, GP 说明这些位属于 GPOCON 寄存器。GP7 表示数据流的第一位。 括号中的数值表示该位的上电 /复位默认状态。
GP7 | GP6 | GP5 | GP4 | GP3 | GP2 | GP1 | GP0 |
---|---|---|---|---|---|---|---|
0(0) | BPDSW(0) | GP32EN(0) | GP10EN(0) | P3DAT(0) | P2DAT(0) | P1DAT(0) | P0DAT(0) |
表 21. 寄存器位功能描述
位的位置 | 位的名称 | 描述 |
---|---|---|
GP7 | 0 | 必须将此位编程为逻辑 0 才能正常工作。 |
GP6 | BPDSW | 电桥关断开关控制位。 此位由用户置 1, 以闭合电桥关断开关 BPDSW(与 AGND 相连)。 该开关可提 供 30 mA 的吸电流。 此位由用户清 0, 以断开电桥关断开关。 当 ADC 处于关断模式时, 电桥关断开 关仍然有效。 |
GP5 | GP32EN | 数字输出 P3 和数字输出 P2 使能。 GP32EN 置 1 时, 数字输出 P3 和 P2 为有效状态。 GP32EN 清 0 时, P3 和 P2 引脚为三态, 并且忽略 P3DAT 和 P2DAT 位。 |
GP4 | GP10EN | 数字输出 P1 和数字输出 P0 使能。 GP10EN 置 1 时, 数字输出 P1 和 P0 为有效状态。 GP10EN 清 0 时, P1 和 P0 输出为三态, 并且忽略 P1DAT 和 P0DAT 位。 当配置寄存器中的 REFSEL 位设置为 1 时, P1 和 P0 引脚可以用作 REFIN2 的基准输入。 |
GP3 | P3DAT | 数字输出 P3。 GP32EN 置 1 时, P3DAT 位设置通用输出引脚 P3 的值。 P3DAT 为高电平时, 输出引脚 P3 为高电平。 P3DAT 为低电平时, 输出引脚 P3 为低电平。 读取 GPOCON 寄存器时, 如果 GP32EN 置 1, P3DAT 位将反映 P3 引脚的状态。 |
GP2 | P2DAT | 数字输出 P2。 GP32EN 置 1 时, P2DAT 位设置通用输出引脚 P2 的值。 P2DAT 为高电平时, 输出引脚 P2 为高电平。 P2DAT 为低电平时, 输出引脚 P2 为低电平。 读取 GPOCON 寄存器时, 如果 GP32EN 置 1, P2DAT 位将反映 P2 引脚的状态。 |
GP1 | P1DAT | 数字输出 P1。 GP10EN 置 1 时, P1DAT 位设置通用输出引脚 P1 的值。 P1DAT 为高电平时, 输出引脚 P1 为高电平。 P1DAT 为低电平时, 输出引脚 P1 为低电平。 读取 GPOCON 寄存器时, 如果 GP10EN 置 1, P1DAT 位将反映 P1 引脚的状态。 |
GP0 | P0DAT | 数字输出 P0。 GP10EN 置 1 时, P0DAT 位设置通用输出引脚 P0 的值。 P0DAT 为高电平时, 输出引脚 P0 为高电平。 P0DAT 为低电平时, 输出引脚 P0 为低电平。 读取 GPOCON 寄存器时, 如果 GP10EN 置 1, P0DAT 位将反映 P0 引脚的状态。 |
失调寄存器
(RS2, RS1, RS0 = 1, 1, 0; 上电 / 复位 = 0x800000)
失调寄存器保存 ADC 的失调校准系数。 失调寄存器的上电复位值为 0x800000。 AD7192 有四个失调寄存器, 各通道均有一个专用失调寄存器(见表 20)。 各寄存器均为 24 位读写寄存器。 该寄存器与相关的满量程寄存器一同使用, 以构成寄存器对。 如果用户启动内部或系统零电平校准, 上电复位值将被自动覆盖。 写入失调寄存器时, AD7192 必须处于关断模式或空闲模式。
满量程寄存器
(RS2, RS1, RS0 = 1, 1, 1; 上电 / 复位 = 0x5XXXX0)
满量程寄存器是一个 24 位寄存器, 用来保存 ADC 的满量程校准系数。 AD7192 有四个满量程寄存器, 各通道均有一个专用满量程寄存器( 见表 20)。 满量程寄存器为读写寄存器。 不过, 写入满量程寄存器时, ADC 必须处于关断模式或空闲模式。 这些寄存器在上电时使用工厂校准的满量程校准系数进行配置(执行校准时的增益为 1) ; 因此, 各器件具有不同的默认系数。 如果用户启动内部或系统满量程校准, 或者写入满量程寄存器, 该默认值将被自动覆盖。
GPIO的工作模式
1、4种输入模式
(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_IPU 上拉输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_AIN 模拟输入
2、4种输出模式
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_AF_OD 复用开漏输出
(7)GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)
(8)GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)
3、4种最大输出速度
(1)2MHZ (低速)
(2)25MHZ (中速)
(3)50MHZ (快速)
(4)100MHZ (高速)