主题中讨论的其他器件: DLPA2005、 DLP2010LC
我们拥有一组定制电路板、包括 DLPC3470、DLPA2005和 DLP2010LC。 我们从外部 MCU 通过 I2C 接口控制 DLPC3470。 我们使用从 DLP Pico FW 选择器下载的固件 v8.1.0 (我已尝试最新的 v9.1.0、但无法解决此处所述的问题)、并已通过 DLP EVM GUI (v3.2.0.6)将我们自己的自定义图形表加载到其中。 在我们的应用中、我们将 DLPC3470置于两种工作模式:启动界面模式和内部图形流模式。 我在这两种模式下都观察到不一致的行为、我将在下文中进行介绍。
启动界面模式
在我们的应用中、我们需要定期调整用于启动界面的 LED 驱动强度。 此调整在1s 内部时进行。 为了进行调整、我们按如下方式写入 RGB LED 使能(0x52)和 RB LED 电流(0x54)寄存器: 0x52 = 0x1
0x54 = 0x94 0x01 0x01 0x00 0x01 0x00
在上面的示例中、我们只在驱动强度为1000mA 时使用蓝色 LED。 我观察到的行为是、这些事务之一不可避免地会触发 DLPC3470上的复位、此时我观察到 HOST_IRQ 拉至高电平、然后在几百毫秒后返回低电平。 此时 、投影会损坏、通常会显示一个全蓝色矩形、而不是配置的启动界面。 无论我们进行更新的速率(我已经尝试了从1Hz 到20Hz 的许多不同间隔)、我们设置的 LED 电流或我们选择启用/禁用的 LED 如何、都会发生此行为。
内部图形流模式
内部图形流模式是我们应用的主要工作模式。 当我们进入该工作模式时、我们将 DLPC3470置于内部图形流模式、通过 I2C 接口将图形序列表推送到控制器、并使用外部输入触发器触发控制器。 下面显示了通过 I2C 的配置序列示例: 0x52 = 0x07
0x54 = 0xFA 0x01 0xFA 0x01 0xFA 0x01
0x9D = 0x01 0x00 0x98 0x08 0x00 0x00
0x9D = 0x01 0x00 0x82 0x08 0x00 0x00
0x9D = 0x01 0x00 0x6D 0x08 0x00 0x00
0x9D = 0x01 0x00 0x58 0x08 0x00 0x00
0x9D = 0x01 0x00 0x43 0x08 0x00 0x00
0x9D = 0x01 0x00 0x2E 0x08 0x00 0x00
0x9D = 0x01 0x00 0x1A 0x08 0x00 0x00
0x9D = 0x01 0x00 0x06 0x08 0x00 0x00
0x9D = 0x01 0x00 0xF2 0x07 0x00 0x00
0x9D = 0x01 0x00 0xDE 0x07 0x00 0x00
0x9D = 0x01 0x00 0xCA 0x07 0x00 0x00
0x9D = 0x01 0x00 0x66 0x07 0x00 0x00
0x98 = 0x01 0x02 0x08 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x66 0x07 0x00 0x00 0xB3 0x00 0x00 0x00 0x20 0x00 0x00 0x00
0x9D = 0x01 0x00 0x66 0x07 0x00 0x00
0x98 = 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x66 0x07 0x00 0x00 0xB3 0x00 0x00 0x00 0x20 0x00 0x00 0x00
0x9D = 0x01 0x00 0x66 0x07 0x00 0x00
0x98 = 0x00 0x00 0x01 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x66 0x07 0x00 0x00 0xB3 0x00 0x00 0x00 0x20 0x00 0x00 0x00
0x9D = 0x01 0x00 0x66 0x07 0x00 0x00
0x98 = 0x00 0x00 0x01 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x66 0x07 0x00 0x00 0xB3 0x00 0x00 0x00 0x20 0x00 0x00 0x00
0x92 = 0x00 0x00 0x00 0x00 0x00
0x90 = 0x03
0x94 = 0x01
0x05 = 0x040x9E = 0x00 0xFF
此过程包括:
- RGB LED 电流调节
- 大量照明时间验证(照明时间会动态变化、因此可能有多个不同的值、因此我们可以使用验证命令来确定图形序列表的最终照明时间值)。
许多内部图形表序列写入。
- 触发输入/输出配置。
- 激活内部图形流模式。
我观察到的不一致行为是内部图形序列有时会完全错误地出现。 大多数时间它都能正常工作,但有时这些图案不会被播放(我看到完全发光的矩形而不是与我的1D 图案位图匹配的列),或者看起来比平时更暗, 或者模式中的某些列将缺失、而其他列没问题。 其他时候我也看到过非常奇怪的行为、例如序列中其他工作模式的启动界面。
有问题的行为可能在每十次工作模式转换中发生一次、 每次它保持一致、直到控制器重新置于相反的模式(启动界面与内部图形流)、然后返回到原始模式、在该过程中会将上述所有 I2C 寄存器写入再次推送到控制器。
我们在进行任何看起来有问题的配置操作吗?