ZHCUB80C August   2004  – July 2023 PGA309

 

  1.   1
  2.   使用前必读
    1.     关于本手册
    2.     德州仪器 (TI) 相关文档
    3.     如果您需要协助
    4.     注意事项和警告信息
    5.     FCC 警告
    6.     商标
  3. 1引言
    1. 1.1  PGA309 功能说明
    2. 1.2  传感器误差调整范围
    3. 1.3  增益调节
    4. 1.4  失调电压量调整
    5. 1.5  电压基准
    6. 1.6  传感器激励和线性化
    7. 1.7  使用 ADC 进行温度检测
    8. 1.8  外部 EEPROM 和温度系数
    9. 1.9  故障监测
    10. 1.10 过量程和欠量程限制
    11. 1.11 上电和正常运行
    12. 1.12 数字接口
    13. 1.13 引脚配置
  4. 2详细说明
    1. 2.1  增益调节
      1. 2.1.1 PGA309 传递函数
      2. 2.1.2 求解增益设置
    2. 2.2  失调电压调节
    3. 2.3  零 DAC 和增益 DAC 架构
    4. 2.4  输出放大器
    5. 2.5  基准电压
    6. 2.6  线性化函数
      1. 2.6.1 系统定义
      2. 2.6.2 关键线性化设计公式
        1. 2.6.2.1 Lin DAC 计数转换
      3. 2.6.3 关键理想设计公式
        1. 2.6.3.1 线性化设计
        2.       37
    7. 2.7  温度测量
      1. 2.7.1 温度 ADC 启动转换控制
      2. 2.7.2 通过励磁串联电阻进行外部温度检测
    8. 2.8  故障监测
    9. 2.9  过量程和欠量程
      1. 2.9.1 过量程和欠量程计算
      2.      44
    10. 2.10 噪声和粗略失调电压调整
    11. 2.11 一般 AC 注意事项
  5. 3工作模式
    1. 3.1 上电序列和正常独立工作模式
    2. 3.2 EEPROM 内容和温度查找表计算
      1. 3.2.1 温度查找表计算
        1. 3.2.1.1 温度查找表计算
        2.       52
        3.       53
    3. 3.3 校验和错误事件
    4. 3.4 测试引脚
    5. 3.5 上电时的初始寄存器状态
      1. 3.5.1 PGA309 上电状态
  6. 4数字接口
    1. 4.1  说明
    2. 4.2  两线制接口
      1. 4.2.1 器件寻址
      2. 4.2.2 两线制访问 PGA309
    3. 4.3  一线制接口
    4. 4.4  单线制接口超时
    5. 4.5  单线制接口时序注意事项
    6. 4.6  两线制访问外部 EEPROM
    7. 4.7  单线制接口发起的两线制 EEPROM 事务
    8. 4.8  PGA309 独立模式和两线制事务
    9. 4.9  PGA309 在两线制总线上的主运行模式和总线共享注意事项
    10. 4.10 PRG 连接到 VOUT 的单线制工作模式
    11. 4.11 四线制模块和单线制接口 (PRG)
  7. 5应用背景
    1. 5.1 桥式传感器
    2. 5.2 桥式传感器的系统调节选项
      1. 5.2.1 绝对调节
      2. 5.2.2 比例式调节
    3. 5.3 修整实际桥式传感器以支持线性度
    4. 5.4 PGA309 校准过程
  8. 6寄存器说明
    1. 6.1 内部寄存器概览
    2. 6.2 内部寄存器映射
      1. 6.2.1 寄存器 0:温度 ADC 输出寄存器(只读,地址指针 = 00000)
      2. 6.2.2 寄存器 1:精细失调电压调整(零 DAC)寄存器(读取/写入,地址指针 = 00001)
      3. 6.2.3 寄存器 2:精细增益调整(增益 DAC)寄存器(读取/写入,地址指针 = 00010)
      4. 6.2.4 寄存器 3:基准控制和线性化寄存器(读取/写入,地址指针 = 00011)
      5. 6.2.5 寄存器 4:PGA 粗略失调电压调整和增益选择/输出放大器增益选择寄存器(读取/写入,地址指针 = 00100)
      6. 6.2.6 寄存器 5:PGA 配置和过量程/欠量程限制寄存器(读取/写入,地址指针 = 00101)
      7. 6.2.7 寄存器 6:温度 ADC 控制寄存器(读取/写入,地址指针 = 00110)
      8. 6.2.8 寄存器 7:输出使能计数器控制寄存器(读取/写入,地址指针 = 00111)
      9. 6.2.9 寄存器 8:警报状态寄存器(只读,地址指针 = 01000)
  9.   A 外部 EEPROM 示例
    1.     A.1 PGA309 外部 EEPROM 示例
      1.      A.1.1 外部 EEPROM 的增益和失调电压调节
      2.      94
  10.   B 详细方框图
    1.     B.1 详细方框图
  11.   C 术语表
  12.   修订历史记录

在内部温度模式中运行的温度 ADC 的分辨率为每次计数 0.0625°C。

对于正温度值(例如,20°C):

(20°C)/(0.0625°C/count) = 320 → 140h → 0001 0100 0000

对正数不执行二进制补码。只是将数字转换为 16 位、右对齐格式的二进制代码,并以 MSB =“0”表示正号。将符号扩展到高 4 位。

温度 ADC 会将 20°C 读取为 0000 0001 0100 0000 → 140h。

对于负温度值(即 −20°C):

(|−20|)/(0.0625°C/count) = 320 → 140h → 0001 0100 0000

通过对绝对值二进制数进行补数操作并加 1 来生成一个负数的二进制补码。扩展符号,用 MSB =“1”表示负数。将符号扩展到高 4 位以形成 16 位字。

温度 ADC 会将 −20°C 读取为 1111 1110 1100 0000 → FEC0h。

第 2 步:

根据表 3-3 计算增益 DAC 温度系数。

对于增益 DAC 所需计数(即 G3 = 0.4):

Gx = (GainDESIRED − 1/3)(3/2)(65536)
G3 = (0.4 − 1/3)(3/2)(65536) = 6553.6
0 ≤ Gx ≤ 65535
0.3333333 ≤ 增益 DAC ≤ 0.9999898

对于正斜率(即 GM5):

GM5 = [(G5 − G4)/(T5 − T4)][256]
GM5 = [(26214 − 7537)/(160 − 0)][256] = 29883.2
取整 [29883.2] = 29883
GM5 =29883 → 74BBh → 0111 0100 1101 1101
允许的 GM 范围为:-32768 ≤ GM ≤ +32767(16 位有符号整数)

对于负斜率(即 GM2):

GM2 = [(G2 − G1)/(T2 − T1)][256]
GM2 = [(36044.8 − 55706)/(−320 − {−480})][256] = −31457.28
取整 [−31457.9] = −31457
生成 −31458 的二进制补码:
GM2 = 851Eh → 1000 0101 0001 1110
允许的 GM 范围为:-32768 ≤ GM ≤ +32767(16 位有符号整数)

注: 增益 DAC 斜率

如果增益 DAC 斜率计算得出的计数大于 65535,则存在问题。必须重新配置温度 ADC 以降低分辨率,或者必须增加查找表中的点数以使斜率处于 PGA309 计算区域内。

表 3-3 增益 DAC 温度系数计算
温度
(°C)
温度指数 温度 ADC
(计数)
增益 DAC 所需值 增益 DAC 所需指数 增益 DAC 所需
(计数)
增益 DAC 斜率 增益 DAC 斜率公式 增益 DAC 斜率(1)
(计数)
增益 DAC 斜率
(十六进制)
−40 T0 -640 1 G0 65535 G0 G0 = G0 65535 起始值也可以是 0,但是由于 SysTick 中断和 COUNTFLAG 在计数从 1 到 0 时都会被激活,所以没什么作用
−30 T1 -480 0.9 G1

55706

GM1 GM1 = [(G1 − G0)/T1 − T0)][256]

-15726

C292
−20 T2 -320 0.7 G2

36045

GM2 GM2 = [(G2 − G1)/T2 − T1)][256]

-31458

851E

-10 T3 -160 0.55 G3

21299

GM3 GM3 = [(G3 − G2)/T3 − T2)][256]

-23594

A3D6

0 T4 0 0.41 G4

7537

GM4 GM4 = [(G4 − G3)/T4 − T3)][256]

-22019

A9FD

10 T5 160 0.6 G5

26214

GM5 GM5 = [(G5 − G4)/T5 − T4)][256]

29883

74BB

20 T6 320 0.4756 G6

13985

GM6 GM6 = [(G6 − G5)/T6 − T5)][256]

-19566

B392

30 T7 480 0.6543 G7

31552

GM7 GM7 = [(G7 − G6)/T7 − T6)][256]

28107

6DCB

取整 [增益 DAC 斜率公式]

第 3 步:

根据表 3-4 计算零 DAC 温度系数。

对于零 DAC 所需计数(例如,Z5 = 1.5):

Zx = (VZDESIRED/VREF)(65536)
Z5 = (1.5/5)(65536) = 19660.8
0 ≤ Zx ≤ 65535
0.1V ≤ 零 DAC 模拟范围 ≤ (VSA − 0.1V)
0V ≤ 零 DAC 编程范围 ≤ VREF

对于正斜率(例如,ZM4):

ZM4 = [(Z4 − Z3)/(T4 − T3)][256]
ZM4 = [(26214.4 − 13107.2)/(0 − {−160})][256] = 20971.52
取整 [20971.52] = 20972
ZM4 = 20972 → 51ECh → 0101 0001 1110 1101
允许的 ZM 范围为:-32768 ≤ ZM ≤ +32767(16 位有符号整数)

对于负斜率(例如,ZM6):

ZM6 = [(Z6 − Z5)/(T6 − T5)][256]
ZM6 = [(13107.2 − 19660.8)/(320 − 160)][256] = −10485.76
取整 [−10485.76] = −10486
生成−10486 的二进制补码:
ZM6 = D70Ah → 1101 0111 0000 1010
允许的 ZM 范围为:-32768 ≤ ZM ≤ +32767(16 位有符号整数)

注: 零 DAC 斜率超出允许范围

如果零 DAC 斜率计算得出的计数超出范围 -32768 < ZM < +32767,则存在问题。必须重新配置温度 ADC 以降低分辨率,或者必须增加查找表中的点数以使斜率处于 PGA309 计算区域内。

表 3-4 零 DAC 温度系数计算
温度
(°C)
温度
指数
温度 ADC
(计数)
零 DAC 所需值 零 DAC 所需指数 零 DAC 所需
(计数)
零 DAC 斜率 零 DAC 斜率公式 零 DAC 斜率(1)
(计数)
零 DAC 斜率
(十六进制)
−40 T0 -640 0.1 Z0 1310.7 Z0 Z0 = Z0 1311 051E
−30 T1 -480 0.2 Z1 2621.4 ZM1 ZM1 = [(Z1 − Z0)/T1 − T0)][256] 2097 0831
−20 T2 -320 1 Z2 13107.2 ZM2 ZM2 = [(Z2 − Z1)/T2 − T1)][256] 16777 4189
-10 T3 -160 1 Z3 13107.2 ZM3 ZM3 = [(Z3 − Z2)/T3 − T2)][256] 0 0000
0 T4 0 2 Z4 26214.4 ZM4 ZM4 = [(Z4 − Z3)/T4 − T3)][256] 20972 51EC
10 T5 160 1.5 Z5 19660.8 ZM5 ZM5 = [(Z5 − Z4)/T5 − T4)][256] -10486

D70A

20 T6 320 1 Z6 13107.2 ZM6 ZM6 = [(Z6 − Z5)/T6 − T5)][256] -10486

D70A

30 T7 480 2 Z7 26214.4 ZM7 ZM7 = [(Z7 − Z6)/T7 − T6)][256] 20972 51EC
取整 [零 DAC 斜率公式]

阶跃 4:

构建查找表,如表 3-5 所示。

表 3-5 查找表内容
温度
(°C)
温度
指数
零 DAC
斜率
增益 DAC
斜率
EEPROM Tx
(十六进制)
EEPROM ZMi
(十六进制)
EEPROM GMi
(十六进制)
−40 T0 Z0 G0 FD80 051E 起始值也可以是 0,但是由于 SysTick 中断和 COUNTFLAG 在计数从 1 到 0 时都会被激活,所以没什么作用
−30 T1 ZM1 GM1 FE20 0831 C292
−20 T2 ZM2 GM2 FEC0 4189 851E
-10 T3 ZM3 GM3 FF60 0000 A3D6
0 T4 ZM4 GM4 0000 51EC A9FD
10 T5 ZM5 GM5 00A0 D70A 74BB
20 T6 ZM6 GM6 0140 D70A B392
30 T7 ZM7 GM7 01E0 51EC 6DCB
TEND ZMEND GMEND 7FFF 0000 B5D8

使用步骤 2 和步骤 3 中的计算值。

将 TMEND 设置为 7FFFh 以指示查找表的结尾。

将 ZMEND 设置为 0000h。

将 GMEND 计算为 Checksum2(截断 16 位以上的结果):

GMEND = Checksum2 = FFFFh − sum(查找表中除 GMEND 以外所有条目的十六进制值)
GMEND = FFFFh − C49DDh
GMEND = FFFFF4B622h
GMEND = Checksum2 = B622h

第 5 步:

根据表 3-6 计算 TREAD = +25°C 时增益 DAC 的理想值。

表 3-6 增益 DAC 与温度间的关系
Tx 温度 (°C) Gx 增益 DAC
T0 −40 G0 1
T1 −30 G1 0.9
T2 −20 G2 0.7
T3 -10 G3 0.4
T4 0 G4 0.3333
T5 10 G5 0.6
T6 20 G6 0.4756
TREAD 25 GREAD 计算值
T7 30 G7 0.6543

增益 DAC 的线性插值 (TREAD = 25°C):

GREAD = {[(G7 − G6)/(T7 − T6)] [TREAD − T6]} + G6
GREAD = {[(0.6543 − 0.4756)/(30 − 20)] [25 − 20]} +0.4756
GREAD = 0.56495

第 6 步:

参考使用查找表的增益 DAC 计算算法。

表 3-7 列出了 PGA309 内部用于 TREAD = 25°C 时增益 DAC 设置的线性插值和计算算法。根据表 3-3,对于 G1-G7 的给定值,可知 T1-T7 时 GM1-GM7 的计算值。此外,还定义了起始值(T0 和 G0)。步骤 5 显示,如果计算算法的线性插值部分可正常运行,TREAD = 25°C 时的实际增益 DAC 值应为 0.56495V/V。

表 3-7 增益 DAC 查找表计算算法
温度
(°C)
Tx 温度
ADC
(计数)
GMi 增益 DAC
斜率(1)
(计数)
GAC 计算 运行的
GAC 值(1)
(计数)
实际增益
DAC (V/V)
−40 T0 -640 G0 65535 GAC0 = G0 65535 0.9999898
−30 T1 -480 GM1 -15727 GAC1 = GAC0 + [GM1(T1 − T0)/256] 55706 0.9000041
−20 T2 -320 GM2 -31457 GAC2 = GAC1 + [GM2(T2 − T1)/256] 36045 0.7000020
-10 T3 -160 GM3 -47104 GAC3 = GAC2 + [GM3(T3 − T2)/256] 6605 0.4005229
0 T4 0 GM4 -10496 GAC4 = GAC3 + [GM4(T4 − T3)/256] 45 0.3337911
10 T5 160 GM5 41943 GAC5 = GAC4 + [GM5(T5 − T4)/256] 26259 0.6004537
20 T6 320 GM6 -19566 GAC6 = GAC5 + [GM6(T6 − T5)/256] 14030 0.4760539
30 T7 480 GM7 28107 T7 > TREAD → YES!
25 TREAD 400 GAC_TREAD = GAC6 + [GM7(TREAD − T6)/256] 22813 0.565399169
TEND 32767 (7FFFh) 读取查找表到结尾以验证 Checksum2
取整 [GAC 计算]

温度 ADC 每次执行转换时,都会读取整个外部 EEPROM。EEPROM 的第一部分专用于存储 PGA309 的固定设置参数,这些参数不会随温度变化。当 PGA309 读取 EEPROM 的后半部分时,它开始随着温度变化运行增益 DAC 设置的计算(PGA309 会对零 DAC 设置运行类似的计算)。表 3-7 中的模型包含一个名为 GAC (G Accumulator) 的累加器。当 PGA309 读取 T0 时,初始增益 DAC 设置 (G0) 存储在 GAC0(T0READ 处的 GAC)中。接下来,读取 T1,并将斜率 GM1 乘以 T1 和 T0 之间的差值(使用除数 256 转换回模型的十进制计数),然后加至 GAC0 以形成新的累加器值 GAC1(T1READ 处的 GAC)。此过程会在 PGA309 读取整个查找表时按顺序持续进行。读取的每个温度指数值 (Tx) 将与当前温度 ADC 转换结果 TREAD 做比较。如果 Tx > TREAD,则已知 TREAD 介于 Tx 和 T(x − 1) 之间。在本例中发生在读取 T7 之后。累加器内容 GAC6(T6 处的 GAC)将被修改,即加上 (TREAD − T6)(GM7)。得到的 GAC_TREAD 是 TREAD = 25°C 时增益 DAC 的线性插值设置。由于增益 DAC 分辨率和舍入计算的原因,实际增益 DAC 值与步骤 5 中计算出的理论值略有不同。EEPROM 的其余部分将一直被读取到 TEND,以便在查找表末尾使用 Checksum2 进行错误检查。如果 Checksum2 有效,则会使用计算值 GAC_TREAD = 0.565399169 来更新增益 DAC。

GAC 计算(例如,GAC2):

GAC1 = 55706;GM2 = −31457;T2 = −320;T1 = −480
GAC2 = GAC1 + [GM2(T2 − T1)/256]
GAC2 = 55706 + [−31457(−320−{−480})/256] = 36045.375
取整 [GAC2] = 取整 [36045.375] = 36045
GAC2 = 36045

实际增益 DAC(例如,GAC2):

GAC2 = 36045
增益 DAC = [(GACx/65536)(2/3)] + 1/3
增益 DAC = [(36045 / 65536)(2/3)] + 1/3 = 0.7000020
GAC2 处的增益 DAC = 0.7000020