ZHCSNQ9 September 2023 DAC43901-Q1 , DAC43902-Q1
PRODUCTION DATA
TL431LI-Q1 可调节精密并联稳压器可用于通过 12V 系统电压为 DAC43901-Q1 供电。TL431LI-Q1 具有 2.5V 精密基准。如简化图中所示,这里使用两个 10kΩ 电阻器将输出电压调节至 5V,从而为 DAC43901-Q1 供电。
DAC43901-Q1 中的状态机默认启用;因此,当 VREF/MODE 引脚被拉高时,PWM 输出将与预设参数一起使用。要更改这些默认参数,请将 VREF/MODE 引脚拉至低电平以进入编程模式,并向 STATE-MACHINE-CONFIG0 寄存器的 SM-START 和 SM-EN 位写入 0 以禁用状态机。状态机禁用后,对以下 SRAM 参数和寄存器设置进行编程:
在 TRIG-IN 的上升沿,DAC43901-Q1 PWM 输出淡入至 PWM-MAX 参数中定义的 7 位 PWM 占空比,该参数位于 SRAM 位置 0x21 的位 [6:0]。在 TRIG-IN 的下降边沿上,PWM 输出淡出至 PWM-MIN 参数中定义的 7 位 PWM 占空比,该参数位于 SRAM 位置 0x20 的位 [6:0]。
5 位 PWM 频率在 PWM-FREQ 参数中设置,该参数位于 SRAM 位置 0x22 的位 [11:7]。表 7-7 中介绍了可用的 PWM 频率。示例原理图中使用的 TPS92633-Q1 LED 驱动器建议使用 200Hz PWM 频率和 1% 至 100% 占空比进行亮度控制。在这种情况下,可以在 PWM-FREQ 中将最大频率设置为 31,从而获得 218Hz 的 PWM 输出频率。确保在将参数加载到 SRAM 位置时将此值左移 7 位。
两个 PWM 输出通道使用 FADE-IN SLEW-RATE 和 FADE-OUT SLEW-RATE 参数中定义的相同淡入速率和淡出速率,这两个参数分别位于 SRAM 位置 0x23 和 0x26 的位 [15:0]。总淡入或淡出时间可以使用方程式 4 和方程式 5 来计算。方程式 4 中使用了 SLEW-RATE 参数来获得 tSLEW_RATE,单位为 ms/step。例如,如果 FADE-IN SLEW-RATE 参数使用值 2366,则得到的 tSLEW-RATE 为 5.68ms/step。
表 7-5 中给出的信息用于计算淡入或淡出转换中的占空比步进总数。如果 PWM-MIN 设置为 0 且 PWM-MAX 设置为 0x7F,则总共需要 176 个步进。使用方程式 5 可计算得出总淡出时间 tFADE 为一秒。
每个通道之间的延迟在 CH0-DELAY 和 DELAY 参数中进行配置,这两个参数分别位于 SRAM 位置 0x24 和 0x25 的位 [15:0]。CH0-DELAY 表示触发信号上升沿和通道 0 启动之间的延迟。COM-DELAY 表示通道 0 启动和通道 1 启动之间的延迟。延迟时间可以使用方程式 7 来计算。如果在 COM-DELAY 参数中将延迟值设置为 88,则通道 0 启动和通道 1 启动之间的延迟为 500ms。
配置所有寄存器设置和 SRAM 参数后,通过向 STATE-MACHINE-CONFIG0 寄存器的 SM-START 和 SM-EN 位写入 1 来重新启动状态机。通过将 1 写入 COMMON-TRIGGER 寄存器的 NVM-PROG 位,将这些设置保存到 NVM 中。将 VREF/MODE 引脚拉高,以将 DAC43901-Q1 置于独立模式并启用数字接口引脚上的 PWM 输出。
下面给出了开始使用对数淡入淡出应用所需的伪代码:
//SYNTAX: WRITE <REGISTER NAME (REGISTER ADDRESS)>, <MSB DATA>, <LSB DATA>
//Pull VREF/MODE pin low to enter programming mode
//Disable the state machine
WRITE STATE-MACHINE-CONFIG0(0x27), 0x00, 0x00
//Power-up DAC channel 0, disable the internal reference
WRITE COMMON-CONFIG(0x1F), 0x03, 0xFF
//Enable comparator settings for channel 0, and set reference to VDD
WRITE DAC-0-VOUT-CMP-CONFIG(0x15), 0x04, 0x07
//Set the comparator threshold to mid-scale
WRITE SRAM-ADDR(0x2B), 0x00, 0x27
WRITE SRAM-DATA(0x2C), 0x80, 0x00
//Set max PWM duty cycle to 100%
WRITE SRAM-ADDR(0x2B), 0x00, 0x21
WRITE SRAM-DATA(0x2C), 0x00, 0x7F
//Set min PWM duty cycle to 0%
WRITE SRAM-ADDR(0x2B), 0x00, 0x20
WRITE SRAM-DATA(0x2C), 0x00, 0x00
//Set PWM frequency to 218Hz
WRITE SRAM-ADDR(0x2B), 0x00, 0x22
WRITE SRAM-DATA(0x2C), 0x0F, 0x80
//Set fade-in time to 1 s
WRITE SRAM-ADDR(0x2B), 0x00, 0x23
WRITE SRAM-DATA(0x2C), 0x09, 0x39
//Set fade-out time to 1 s
WRITE SRAM-ADDR(0x2B), 0x00, 0x26
WRITE SRAM-DATA(0x2C), 0x09, 0x3E
//Set the CH0 delay to 0
WRITE SRAM-ADDR(0x2B), 0x00, 0x24
WRITE SRAM-DATA(0x2C), 0x00, 0x00
//Set the COM delay to 500 ms
WRITE SRAM-ADDR(0x2B), 0x00, 0x25
WRITE SRAM-DATA(0x2C), 0x00, 0x58
//Enable and start the state machine
WRITE STATE-MACHINE-CONFIG0(0x27), 0x00, 0x03
//Save all settings in NVM
WRITE COMMON-TRIGGER(0x20) 0x00, 0x02
//Pull the VREF/MODE pin high to enter standalone mode