ZHCSNQ9 September 2023 DAC43901-Q1 , DAC43902-Q1
PRODUCTION DATA
DAC43901-Q1 支持预配置为 PWM(脉宽调制)淡入淡出的状态机,可用于实现平滑调光和启动电机。淡入淡出以对数方式进行。DAC 通道 0 用作比较器,而 TRIG-IN 引脚用作淡入淡出信号的触发输入。在独立模式下,PWM 输出在数字引脚上提供。当 VREF/MODE 引脚被拉高时,器件进入独立模式。此模式下禁用编程接口。数字编程接口(I2C 和 SPI)引脚是开漏输出,必须上拉才能用作 PWMx 输出。在独立模式下,器件使用 NVM 中的配置运行。将 VREF/MODE 引脚拉低可使器件进入编程模式。当 PWM 输出模式启用时,所有四个编程接口引脚都将用作 PWMx 输出,即使不使用也是如此。无法进行部分选择。淡入淡出 PWM 输出在 PWM0 (SDA/SCLK) 和 PWM1 (A0/SDI) 上提供。表 7-9 展示了数字引脚上的 PWM 输出映射。PWM 占空比分辨率为 7 位。PWM0 在触发输入的上升沿从预定义的最小占空比转换到最大占空比,并在触发输入的下降沿从最大占空比转换到最小占空比。PWM0 的淡入淡出配置使用 SRAM 或寄存器地址进行编程,如表 7-10 所示。
淡入淡出接口 | 多路复用编程引脚 | 引脚编号 |
---|---|---|
PWM0 | SDA/SCLK | 8 |
PWM1 | A0/SDI | 7 |
TRIG-IN | TRIG-IN | 1 |
默认情况下,DAC43901-Q1 配置为 PWM 淡入淡出并使用默认设置,如表 7-10 所示。要更改 SRAM 的设置,请将 SRAM 地址写入 SRAM-ADDR 寄存器,然后将数据写入 SRAM-DATA 寄存器。寄存器位置可以用单个 I2C 或 SPI 序列直接写入。在淡入淡出模式或动画模式下,基本设置为淡入或淡出 SLEW_RATE,如图 7-6 所示。SLEW_RATE 定义了应用的时序分辨率。当 SLEW_RATE 与淡入或淡出中的步进数相乘时,会获得淡入或淡出时间。可以使用方程式 4 来计算 SLEW_RATE:在对数淡入或淡出中,步进数是非线性的,并且还取决于起始和结束占空比设置。总淡入或淡出时间通过方程式 5 和表 7-5 来计算。淡入可以在延迟之后开始,该延迟的计算方式为方程式 7。CH0-DELAY 定义了 PWM0 的淡入延迟,而 COM-DELAY 定义了 PWM1 的淡入延迟。即使通过为 FADE-IN SLEW_RATE 写入 0 来禁用淡入,也会应用该延迟。这种情况下将考虑预定义的延迟设置 256。淡出没有延迟。
其中:
计算淡入和淡出步进所需的伪代码如下所示:
min_duty = <user input>
max_duty = <use input>
if(min_duty == 0)
min_duty = 1
#IF FADE-IN
current_duty = min_duty << 5
next_duty = integer(current_duty + (current_duty >> 5))
#ELIF FADE-OUT
current_duty = max_duty << 5
next_duty = integer(current_duty - (current_duty >> 5))
#ENDIF
current_duty = next_duty
output_duty = integer(next_duty >> 5)
#IF FADE-IN
if(output_duty > max_duty)
output = max_duty
else
output = output_duty
#ELIF FADE-OUT
if(output_duty < min_duty)
output = min_duty
else
output = output_duty
#ENDIF
其中:
表 7-11 展示了为器件配置所做的寄存器设置列表。
寄存器字段名称 | 位置 | 地址 [位] | 默认值 | 说明 |
---|---|---|---|---|
PWM-MAX | SRAM、NVM | 0x21 [6:0] | 0xF7 | 最大 PWM 占空比 |
PWM-MIN | SRAM、NVM | 0x20 [6:0] | 0x00 | 最小 PWM 占空比 |
FADE-IN SLEW-RATE | SRAM、NVM | 0x23 [15:0] | 0x0000 | 请参阅方程式 4 和方程式 5 |
FADE-OUT SLEW-RATE | SRAM、NVM | 0x26 [15:0] | 0x0000 | 请参阅方程式 4 和方程式 5 |
CH0-DELAY | SRAM、NVM | 0x24 [15:0] | 0x0000 | PWM0 的延迟。请参阅方程式 7 |
COM-DELAY | SRAM、NVM | 0x25 [15:0] | 0x0000 | PWM1 的延迟。请参阅方程式 7 |
PWM-FREQ | SRAM、NVM | 0x22 [11:7] | 0x00 | 频率选择,如表 7-7 所示 |
代码 | REPETATION (CODE) | 代码 | REPETATION (CODE) | 代码 | REPETATION (CODE) | 代码 | REPETATION (CODE) | 代码 | REPETATION (CODE) |
---|---|---|---|---|---|---|---|---|---|
1 | 32 | 17 | 2 | 33 | 1 | 54 | 1 | 88 | 1 |
2 | 16 | 18 | 2 | 34 | 1 | 55 | 1 | 90 | 1 |
3 | 11 | 19 | 2 | 35 | 1 | 57 | 1 | 93 | 1 |
4 | 8 | 20 | 1 | 36 | 1 | 59 | 1 | 96 | 1 |
5 | 7 | 21 | 2 | 37 | 1 | 61 | 1 | 99 | 1 |
6 | 5 | 22 | 1 | 38 | 1 | 62 | 1 | 102 | 1 |
7 | 5 | 23 | 2 | 39 | 1 | 64 | 1 | 105 | 1 |
8 | 4 | 24 | 1 | 41 | 1 | 66 | 1 | 109 | 1 |
9 | 3 | 25 | 1 | 42 | 1 | 68 | 1 | 112 | 1 |
10 | 4 | 26 | 2 | 43 | 1 | 71 | 1 | 116 | 1 |
11 | 3 | 27 | 1 | 45 | 1 | 73 | 1 | 119 | 1 |
12 | 2 | 28 | 1 | 46 | 1 | 75 | 1 | 123 | 1 |
13 | 3 | 29 | 1 | 47Ω | 1 | 77 | 1 | 127 | 1 |
14 | 2 | 30 | 1 | 49 | 1 | 80 | 1 | — | — |
15 | 2 | 31 | 1 | 50 | 1 | 82 | 1 | — | — |
16 | 2 | 32 | 1 | 52 | 1 | 85 | 1 | — | — |
寄存器名称 | 地址 | 默认值 |
---|---|---|
COMMON-CONFIG | 0x1F | 0x13FF |
DAC-0-VOUT-CMP-CONFIG | 0x15 | 0x0407 |
STATE-MACHINE-CONFIG0 | 0x27 | 0x0003 |
SRAM 位置 | PWM-FREQ | PWM 频率 (kHz) | 代码 1 的占空比 (%) | 代码 126 的占空比 (%) |
---|---|---|---|---|
PWM-FREQ (0x22 [11:7]) |
0 | 无效 | 不适用 | 不适用 |
1 | 48.828 | 4.88 | 95.12 | |
2 | 24.414 | 2.44 | 97.56 | |
3 | 16.276 | 1.63 | 98.37 | |
4 | 12.207 | 1.22 | 98.44 | |
5 | 8.138 | 0.81 | 98.44 | |
6 | 6.104 | 0.78 | 98.44 | |
7 | 3.052 | 0.78 | 98.44 | |
8 | 2.035 | 0.78 | 98.44 | |
9 | 1.526 | 0.78 | 98.44 | |
10 | 1.221 | 0.78 | 98.44 | |
11 | 1.017 | 0.78 | 98.44 | |
12 | 0.872 | 0.78 | 98.44 | |
13 | 0.763 | 0.78 | 98.44 | |
14 | 0.678 | 0.78 | 98.44 | |
15 | 0.610 | 0.78 | 98.44 | |
16 | 0.555 | 0.78 | 98.44 | |
17 | 0.509 | 0.78 | 98.44 | |
18 | 0.470 | 0.78 | 98.44 | |
19 | 0.436 | 0.78 | 98.44 | |
20 | 0.407 | 0.78 | 98.44 | |
21 | 0.381 | 0.78 | 98.44 | |
22 | 0.359 | 0.78 | 98.44 | |
23 | 0.339 | 0.78 | 98.44 | |
24 | 0.321 | 0.78 | 98.44 | |
25 | 0.305 | 0.78 | 98.44 | |
26 | 0.291 | 0.78 | 98.44 | |
27 | 0.277 | 0.78 | 98.44 | |
28 | 0.265 | 0.78 | 98.44 | |
29 | 0.254 | 0.78 | 98.44 | |
30 | 0.244 | 0.78 | 98.44 | |
31 | 0.218 | 0.78 | 98.44 |
PWM 的占空比与 7 位代码(0d 至 126d)成正比。如表 7-8 所示,代码 127d 对应于 100% 占空比。跳过占空比 99.22% (127d/128d) 可以使用 7 位代码实现 100% 占空比。PWM 占空比设置由状态机完成,不会向用户公开。
代码 | 占空比 | 说明 |
---|---|---|
0 | 0% | 始终为 0 |
1 | 0.78% | 最小线性占空比 |
x | (x/128)% | x 是 2d 和 125d 之间的代码(包含二者) |
126 | 98.44% | 最大线性占空比 |
127 | 100% | 总是 1。跳过占空比 99.22% (127d/128d)。 |