ZHCSNR1 june 2023 AFE43902-Q1 , AFE53902-Q1
PRODUCTION DATA
状态机根据热折返曲线中保存的值将温度输入转换为 PWM 输出。温度传感器的电压输出由 ADC 读取并转换为 ADC 代码。有三个 X 和 Y 点可用于将 ADC 代码(X 点)映射到温度(Y 点)。这些点可用于对温度传感器输出应用线性化。ADC 为 10 位,因此最大代码为 1023d。方程式 9 根据电压输入计算 ADC 输出代码。
此应用示例使用 5V VDD 作为 ADC 基准。方程式 10 计算 2.5V 输入时的 ADC 代码。
表 8-6 显示了此应用示例中使用的 ADC 代码到温度的映射。NTC 电阻用作温度传感器。较高的 ADC 代码对应于较低的温度。
| ADC 代码 | 温度 |
|---|---|
| 0x000 | 100°C |
| 0x200 | 50°C |
| 0x3FF | 0°C |
PWM 频率在 PWM-FREQUENCY SRAM 位置进行设置 (SRAM: 0x2E)。表 7-1 定义了每个可用频率的代码。有四个 X 点和 Y 点可用于将温度(X 点)映射到输出占空比(Y 点)。PWM 占空比输出通过一个 7 位代码进行配置。最大代码为 127d。方程式 11 计算占空比:
对于 50% 占空比,方程式 11 可计算占空比代码为 64d。
表 8-7 显示了此应用示例中使用的温度到输出占空比的映射。该曲线可具有负斜率和正斜率。
| 温度 | 输出占空比(代码) |
|---|---|
| 20° C | 78% (0x64) |
| 50°C | 100% (0x7F) |
| 75°C | 63% (0x51) |
| 100°C | 0% (0x00) |
按照以下指导原则在 AFE43902-Q1 上设置寄存器:
| 寄存器字段名称 | 地址[字段] | 地址位置 |
|---|---|---|
| X1-TEMPERATURE | 0x20[10:1] | SRAM |
| Y1-TEMPERATURE | 0x21[7:0] | SRAM |
| X2-TEMPERATURE | 0x22[10:1] | SRAM |
| Y2-TEMPERATURE | 0x23[7:0] | SRAM |
| X3-TEMPERATURE | 0x24[10:1] | SRAM |
| Y3-TEMPERATURE | 0x25[7:0] | SRAM |
| X1-OUTPUT | 0x26[7:0] | SRAM |
| Y1-OUTPUT | 0x27[6:0] | SRAM |
| X2-OUTPUT | 0x28[7:0] | SRAM |
| Y2-OUTPUT | 0x29[6:0] | SRAM |
| X3-OUTPUT | 0x2A[7:0] | SRAM |
| Y3-OUTPUT | 0x2B[6:0] | SRAM |
| X4-OUTPUT | 0x2C[7:0] | SRAM |
| Y4-OUTPUT | 0x2D[6:0] | SRAM |
| PWM-FREQUENCY | 0x2E[11:7] | SRAM |
| DAC-0-VOUT-CMP-CONFIG | 0x15[12:10][4:0] | 寄存器 |
| DAC-1-VOUT-CMP-CONFIG | 0x03[12:10][4:0] | 寄存器 |
| COMMON-CONFIG | 0x1F[15:0] | 寄存器 |
| DEVICE-MODE-CONFIG | 0x25[15:0] | 寄存器 |
| STATE-MACHINE-CONFIG0 | 0x27[2:0] | 寄存器 |
只有表 8-8 的地址列中列出的位才会保存在 NVM 中,并在状态机中使用。例如,对于 DAC-x-VOUT-CMP-CONFIG 寄存器,只有位 12 至位 10 和位 4 至位 0 会保存在 NVM 中。
以下是该应用示例的伪代码:
//SYNTAX: WRITE <REGISTER NAME(Hex Code)>, <MSB DATA>, <LSB DATA>
//Stop the state machine
WRITE STATE-MACHINE-CONFIG0(0x27), 0x00, 0x03
//Stop the PWM generator
WRITE COMMON-PWM-TRIG(0x21), 0x00, 0x00
//Set the PWM frequncy (this is the device default)
WRITE PWM-FREQUENCY(SRAM 0x2E), 0x05, 0x80
//Set the thermal foldback profile values
//The PWM duty cycle is a 7-bit value
WRITE X1-TEMPERATURE(SRAM 0x20), 0x00, 0x00
WRITE Y1-TEMPERATURE(SRAM 0x21), 0x00, 0x64
WRITE X2-TEMPERATURE(SRAM 0x22), 0x04, 0x00
WRITE Y2-TEMPERATURE(SRAM 0x23), 0x00, 0x32
WRITE X3-TEMPERATURE(SRAM 0x24), 0x07, 0xFF
WRITE Y3-TEMPERATURE(SRAM 0x25), 0x00, 0x00
WRITE X1-OUTPUT(SRAM 0x26), 0x00, 0x14
WRITE Y1-OUTPUT(SRAM 0x27), 0x03, 0x64
WRITE X2-OUTPUT(SRAM 0x28), 0x00, 0x32
WRITE Y2-OUTPUT(SRAM 0x29), 0x03, 0x7F
WRITE X3-OUTPUT(SRAM 0x2A), 0x00, 0x4B
WRITE Y3-OUTPUT(SRAM 0x2B), 0x02, 0x51
WRITE X4-OUTPUT(SRAM 0x2C), 0x00, 0x64
WRITE Y4-OUTPUT(SRAM 0x2D), 0x00, 0x00
//Set the channel 0 reference to VDD, enable the comparator for ADC mode (this is the device default)
WRITE DAC-0-VOUT-CMP-CONFIG(0x15), 0x04, 0x01
//Power on the ADC channel
WRITE COMMON-CONFIG(0x1F), 0x03, 0xFF
//Set the device mode (this is the device default)
WRITE DEVICE-MODE-CONFIG(0x25), 0x90, 0x00
//Start the state machine
WRITE STATE-MACHINE-CONFIG(0x27), 0x00, 0x03
//Save settings to NVM
WRITE COMMON-TRIGGER(0x20), 0x00, 0x02