ZHCUBY0B May 2020 – June 2024 DLP2021-Q1 , DLP3021-Q1
本节定义了可通过 SPI 访问的 FPGA 寄存器。
表 7-1 列出了器件寄存器的存储器映射寄存器。表 7-1 中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。
地址 | 首字母缩写词 | 寄存器名称 | 部分 |
---|---|---|---|
0x0 | FPGA_INTERRUPT_CLEAR | FPA 中断清除 | 转到 |
0x4 | FPGA_INTERRUPT_SET | FPGA 中断设置 | 转到 |
0x8 | FPGA_INTERRUPT_ENABLE | FPGA 中断启用 | 转到 |
0xC | FPGA_MAIN_STATUS | TI 内部使用。未定义的读取/写入行为。 | |
0x10 | FPGA_VERSION | FPGA 版本 | 转到 |
0x14 | FPGA_CONTROL | TI 内部使用。未定义的读取/写入行为。 | |
0x20 | FMT_FLIP | 格式翻转 | 转到 |
0x24 | FMT_CONTROL | TI 内部使用。未定义的读取/写入行为。 | |
0x28 | FMT_CMB_STATUS。 | TI 内部使用。未定义的读取/写入行为。 | |
0x2C | FMT_FRB_STATUS | TI 内部使用。未定义的读取/写入行为。 | |
0x30 | RSC_SW_DMD_UNPARK | TI 内部使用。未定义的读取/写入行为。 | |
0x34 | RSC_PARK_WAVEFORM_CTRL | TI 内部使用。未定义的读取/写入行为。 | |
0x38 | RSC_UNUSED | TI 内部使用。未定义的读取/写入行为。 | |
0x3C | RSC_MISC_CONTROL | TI 内部使用。未定义的读取/写入行为。 | |
0x40 | RSC_SEQ_CONTROL | TI 内部使用。未定义的读取/写入行为。 | |
0x44 | RSC_SEQBUF_SELECT | 序列缓冲器选择 | 转到 |
0x50 | PWM_CONTROL | PWM 控制 | 转到 |
0x60 | VCM_FRAME_RATE | 帧速率 | 转到 |
0x64 | VCM_START_ADDR1 | 视频 1 起始地址 | 转到 |
0x68 | VCM_CONFIG1 | 视频配置 1 | 转到 |
0x6C | VCM_START_ADDR2 | 视频 2 起始地址 | 转到 |
0x70 | VCM_CONFIG2 | 视频配置 2 | 转到 |
0x74 | VCM_CONTROL | 视频控制 | 转到 |
0x78 | VCM_STATUS | 视频状态 | 转到 |
0x7C | VCM_SEQABORT | TI 内部使用。未定义的读取/写入行为。 | |
0x80 | VCM_TMSEL | TI 内部使用。未定义的读取/写入行为。 | |
0x90 | TMP_CTRL(1) | 温度控制 | 转到 |
0x94 | TMP_STATUS(1) | 温度状态 | 转到 |
0x98 | TMP_REMOTE_TEMP(1) | 远程温度测量 | 转到 |
0x9C | TMP_LOCAL_TEMP(1) | 本地温度测量 | 转到 |
0xDC | DESTOP_TIMEOUT_DEBUG_INFO_REG | TI 内部使用。未定义的读取/写入行为。 | |
0xE0 | DESTOP_MBOX0_SAPTR_REG | TI 内部使用。未定义的读取/写入行为。 | |
0xE4 | DESTOP_MBOX0_CTRL_REG | TI 内部使用。未定义的读取/写入行为。 | |
0xF0 | DESTOP_MBOX0_DATA_REG | TI 内部使用。未定义的读取/写入行为。 | |
0x100 | DESTOP_MBOX1_SAPTR_REG | TI 内部使用。未定义的读取/写入行为。 | |
0x104 | DESTOP_MBOX1_CTRL_REG | TI 内部使用。未定义的读取/写入行为。 | |
0x110 | DESTOP_MBOX1_DATA_REG | TI 内部使用。未定义的读取/写入行为。 |
复杂的位访问类型经过编码可适应小型表单元。节 7 展示了适用于此部分中访问类型的代码。
访问类型 | 代码 | 说明 |
---|---|---|
读取类型 | ||
R | R | 读取 |
写入类型 | ||
W | W | 写入 |
复位或默认值 | ||
-n | 复位后的值或默认值 |
节 7 展示了 FPGA_INTERRUPT_CLEAR。
返回汇总表。
向任何位写 1 可以清除中断事件。
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-5 | RESERVED | R | 0x0 | 保留 |
4 | VID_CONFIG_COMP_IRQ | R/W | 0x0 | 视频配置已完成,包括所有请求的循环。这在视频的所有循环都完成后触发一次。如果请求使用这两种视频配置,则会在每次配置完成后触发。 |
3 | VID_LOOP_COMP_IRQ | R/W | 0x0 | 视频循环已完成。如果请求了视频的多个循环,则在每次完成循环后都会触发此中断。 |
2 | BROWNOUT_IRQ | R/W | 0x0 | 检测到欠压 |
1 | INIT_DONE_IRQ | R/W | 0x0 | 初始化完成 |
0 | RESERVED | R | 0x0 | 保留 |
表 7-4 展示了 FPGA_INTERRUPT_SET。
返回汇总表。
读取中断事件的状态。
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-5 | RESERVED | R | 0x0 | 保留 |
4 | VID_CONFIG_COMP_IRQ | R/W | 0x0 | 视频配置已完成,包括所有请求的循环。这在视频的所有循环都完成后触发一次。如果请求使用这两种视频配置,则会在每次配置完成后触发。 |
3 | VID_LOOP_COMP_IRQ | R/W | 0x0 | 视频循环已完成。如果请求了视频的多个循环,则在每次完成循环后都会触发此中断。 |
2 | BROWNOUT_IRQ | R/W | 0x0 | 检测到欠压 |
1 | INIT_DONE_IRQ | R/W | 0x0 | 初始化完成 |
0 | RESERVED | R | 0x0 | 保留 |
表 7-5 展示了 FPGA_INTERRUPT_ENABLE。
返回汇总表。
中断事件屏蔽。向任何位写入1以使能该中断事件,从而将 HOST IRQ 设置为高电平。
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-5 | RESERVED | R | 0x0 | 保留 |
4 | VID_CONFIG_COMP_IRQ | R/W | 0x0 | 视频配置已完成,包括所有请求的循环。这在视频的所有循环都完成后触发一次。如果请求使用这两种视频配置,则会在每次配置完成后触发。 |
3 | VID_LOOP_COMP_IRQ | R/W | 0x0 | 视频循环已完成。如果请求了视频的多个循环,则在每次完成循环后都会触发此中断。 |
2 | BROWNOUT_IRQ | R/W | 0x0 | 检测到欠压 |
1 | INIT_DONE_IRQ | R/W | 0x0 | 初始化完成 |
0 | RESERVED | R | 0x0 | 保留 |
FPGA_VERSION 寄存器字段说明 展示了 FPGA_VERSION。
返回汇总表。
FPGA 位流版本
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-28 | FPGA_BUILD_LEVEL | R | 0x1 | FPGA 位流构建级别 0x0 = 调试版本,不可重现 0x1+ = 版本控制版本,可复制 |
27-20 | FPGA_VERSION_MINOR | R | 0x0 | FPGA 位流次要修订 |
19-12 | FPGA_VERSION_MAJOR | R | 0x0 | FPGA 位流主要修订 |
11-0 | FPGA_BUILD_NUMBER | R | 0x0 | FPGA 位流内部版本号 |
FMT_FLIP 寄存器字段说明 展示了 FMT_FLIP。
返回汇总表。
DMD 翻转控制寄存器
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-5 | RESERVED | R | 0x0 | 保留 |
4 | FMT_CTL_DMDLFLIP | R/W | 0x0 | DMD 长边翻转 0x0 = 无长边翻转 0x1 = 启用沿 DMD 长边的图像翻转 |
3-1 | RESERVED | R | 0x0 | 保留 |
0 | FMT_CTL_DMDSFLIP | R/W | 0x0 | DMD 短边翻转 0x0 = 无短边翻转 0x1 = 启用沿 DMD 短边的图像翻转 |
RSC_SEQBUF_SELECT 寄存器字段说明 展示了 RSC_SEQBUF_SELECT。
返回汇总表。
序列缓冲选择
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-1 | RESERVED | R | 0x0 | 保留 |
0 | RSC_SEQBUF_SELECT | R/W | 0x0 | 序列缓冲器选择 0x0 = 选择序列发生器缓冲器 0 0x1 = 选择序列发生器缓冲器 1 |
PWM_CONTROL 寄存器字段说明 展示了 PWM_CONTROL。
返回汇总表。
PWM 控制寄存器
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31 | RESERVED | R | 0x0 | 保留 |
30 | PWM_EN | R/W | 0x1 | PWM 使能 |
29-20 | PWM_BPWM_DC | R/W | 0x64 | 蓝色 PWM 占空比 |
19-10 | PWM_GPWM_DC | R/W | 0x64 | 绿色 PWM 占空比 |
9-0 | PWM_RRPWM_DC | R/W | 0x64 | 红色 PWM 占空比 |
VCM_FRAME_RATE 寄存器字段说明 展示了 VCM_FRAME_RATE。
返回汇总表。
帧速率选择
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-24 | RESERVED | R | 0x0 | 保留 |
23-0 | VCM_FRAME_RATE | R/W | 0x00186A00 | 40MHz 时钟计数中的视频帧时间。 值应与序列时间相匹配 25Hz = 1600000 60Hz = 666666 |
表 7-11 展示了 VCM_START_ADDR1。
返回汇总表。
视频 1 起始地址
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-0 | START_ADDR1 | R/W | 0x0 | 闪存中的视频 1 起始地址 |
表 7-12 展示了 VCM_CONFIG1。
返回汇总表。
视频配置 1
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-24 | RESERVED | R | 0x0 | 保留 |
23-12 | LOOP_CNT1 | R/W | 0x1 | 循环视频 1 的次数 0x0 = 无效 0x1 = 1 循环 0x2 = 2 循环 |
11-0 | FRAME_CNT1 | R/W | 0x1 | 视频 1 中的帧数 0x0 = 无效 0x1 = 1 帧 0x2 = 2 帧 |
表 7-13 展示了 VCM_START_ADDR2。
返回汇总表。
视频 2 起始地址
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-0 | START_ADDR2 | R/W | 0x0 | 闪存中的视频 2 起始地址 |
表 7-14 展示了 VCM_CONFIG2。
返回汇总表。
视频配置 2
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-24 | RESERVED | R | 0x0 | 保留 |
23-12 | LOOP_CNT2 | R/W | 0x1 | 循环视频 2 的次数 0x0 = 无效 0x1 = 1 循环 0x2 = 2 循环 |
11-0 | FRAME_CNT2 | R/W | 0x1 | 视频 2 中的帧数 0x0 = 无效 0x1 = 1 帧 0x2 = 2 帧 |
表 7-15 展示了 VCM_CONTROL。
返回汇总表。
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-6 | RESERVED | R | 0x0 | 保留 |
5 | VCM_TOGGLE_CONFIGS | R/W | 0x0 | 视频缓冲器切换选择 0x0 = 播放将仅使用所选缓冲器 0x1 = 播放将使用两个缓冲器 |
4 | VCM_LOOP_CONFIGS | R/W | 0x1 | 循环配置 0x1 = 重复配置 |
3 | VCM_BUF_PTR | R/W | 0x0 | 视频配置指针 0x0 = 播放视频 1 0x1 = 播放视频 2 |
2 | VCM_AUTOSTOP | R/W | 0x0 | 播放后自动停止 0x0 = 重复视频播放的最后一帧,直到收到其他命令 0x1 = 视频完成后停止,并且停止 DMD |
1 | VCM_STOP | R/W | 0x0 | 停止视频/停止 DMD 0x0 = 允许视频播放 0x1 = 停止视频播放并停止 DMD。必须设置为 0 才能播放视频 |
0 | VCM_PLAY | R/W | 0x0 | 播放视频。自清除 |
表 7-16 展示了 VCM_STATUS。
返回汇总表。
视频状态寄存器
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-3 | RESERVED | R | 0x0 | 保留 |
2 | VCM_SEQABORT_ERR | R | 0x0 | 序列中止错误在视频播放时清除 |
1 | VCM_CURR_CONFIG_PTR | R | 0x0 | 当前视频配置指针 |
0 | VCM_VID_IN_PROGRESS | R | 0x0 | 设置时视频正在进行 |
表 7-17 展示了 TMP_CTRL。
返回汇总表。
温度控制寄存器
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-17 | RESERVED | R | 0x0 | 保留 |
16 | TMP_CTRLEN | R/W | 0x1 | 温度功能启用 0x0 = 禁用 0x1 = 启用 |
15-8 | TMP_I2CSLADDR | R/W | 0x0 | TMP411 I2C 从器件地址(有关详细信息,请参阅 TMP411 数据表) |
7-0 | TMP_NFACTOR | R/W | 0x3 | 补偿 TMP411 测量的 N 因子(有关详细信息,请参阅 TMP411 数据表) |
表 7-18 展示了 TMP_STATUS。
返回汇总表。
温度状态寄存器
位 | 字段 | 类型 | 复位 | 说明 |
---|---|---|---|---|
31-2 | RESERVED | R | 0x0 | 保留 |
1 | TMP_VALID | R | 0x0 | 温度状态有效 0x0 = I2C 温度读取失败或尚未完成 0x1 = I2C 温度读取成功 |
0 | TMP_PASS | R | 0x0 | 温度状态通过 0x0 = 选择序列发生器缓冲器 0 0x1 = 选择序列发生器缓冲器 1 |