转自 https://e2echina.ti.com/question_answer/dlp_mems/f/106/t/170160
1. 什么是DLP3010EVM-LC和DLP2010EVM_LC产品?
这些产品是基于德州仪器DLP®技术的新的评估模块,可以应用在投影显示和光控制(比如结构光,3D打印等)的应用当中。DLP3010EVM-LC使用0.3 720p DMD,DLPC3478控制器和DLPA2005电源管理、LED驱动芯片。DLP2010EVM-LC使用0.2 WVGA DMD,DLPC3470控制器和DLPA2005电源管理、LED驱动芯片。结构光特性包含支持输入输出触发信号,1-bit和8-bit pattern,内部pattern模式等等。
2.如何开始使用这些EVMs?
首先请下载DLP3010EVM-LC或者DLP2010EVM-LC的用户指导手册,同时需要下载EVM的GUI控制软件以及GUI软件的用户指导手册。如果想要下载更多的设计文件,可以参考德州仪器的参考设计,DLP3010EVM-LC的参考设计是TIDA-080003,DLP2010EVM-LC的参考设计是TIDA-080001.这些软件以及说明文档,包括本FAQ都可以帮助您开始使用和设计您的光控制应用。
3. 如何编写DLPC3470和DLPC3478程序?
首先推荐您使用GUI软件来熟悉控制器的操作。接着您可以在“Debug”标签下,或者进入GUI advanced mode来更加了解GUI操作中产生的相应的I2C命令。最后参考控制器的程序员指南来了解每一个I2C命令的含义。
4. 什么是Internal Pattern Streaming模式?
内部的pattern模式允许在没有外部数据流输入的情形下迅速投影pattern。1D的pattern会被控制器载入到Flash存储器中,然后投影出来。由于使用了这种1D的pattern的方式,从而支持多种不同的pattern帧速以及可以在Flash存储器中保存非常多不同的pattern。这些pattern可以配置成不同的曝光时间也可以配置成不同的颜色。
5. 什么是1D pattern?
1D pattern是指可以使用1维信息来完全描述的pattern。换句话说就是一个水平的1D pattern是列重复的图片,而一个垂直的1D pattern则是行重复的图片。
水平的1D pattern示例:
1-bit位深
8-bit位深
垂直的1D pattern示例:
1-bit位深
8-bit位深
6. 为什么希望使用1D pattern?
由于各种各样的原因使得1D的pattern有非常多的用处。第一,非常多的时间编码的结构光会使用到1D pattern(比如灰度编码和相移pattern)。第二,1D pattern可以使用1 by x的图片完全表示(x可以是行也可以是列),这也就意味着不需要保存pattern所有的数据到flash存储器中就可以得到pattern的全部信息。正是因为这一点,DLPC347x控制器才可以实现快速投影非常多不同的pattern的功能。
7. 什么是1-bit和8-bit pattern?
1-bit pattern意味着每一个pattern的pixel都由一个bit位表示,并且只有两个不同的值(on或者off)。一个pixel处于off状态意味着该pixel不会被LED照亮,而一个pixel处于on状态则意味着该pixel会被红色、绿色或者蓝色LED照亮。当然如果想要显示白色,处于on状态的pixel也可以被三个LED照亮(这里需要注意的是RGB三个LED不是同时点亮的,而是按照时间顺序依次点亮的)。
8-bit pattern意味着每一个pattern的pixel会由8-bits表示。这会提供一个二进制的脉冲调制信号来控制每一个pixel的on或者off一段特定的时间从而实现二进制加权的照明。下图表示了每一个bit照明的相应时间,需要注意的是下图只是在8-bit pattern中每一个bit显示相应的时间的一个示例,在实际的显示中顺序可能会有不同。
8. 如何来配置投影Internal pattern?
请参考GUI用户指导手册第4.3.2章。首先需要创建一个包含各种不同1D pattern的pattern set,接着选择pattern的曝光时间以及需要使用的LED,最后配置输入输出的触发信号。
9. 什么是pattern set?
Pattern set是一些列具有相似特性的pattern的组合。特别地,每一个pattern set可以是1-bit或者8-bit的1D pattern,可以是水平的也可以是垂直的。Pattern set最初保存在flash中,然后在显示前被载入到控制器的内部存储器中。如果只使用了一个pattern set,那么pattern可以在最快的速度下显示。如果使用了多个pattern set,那么在切换不同的pattern set的时候会有一个载入时间开销。用户可以通过修改pattern order table来改变pattern set的投影顺序。
10. 每一个pattern set中可以存储多少个pattern?
每一个pattern set最多可以存储多少个pattern是由DLPC347x内部存储器大小限制的。下表中提供了针对不同pattern的限制。外部flash存储器中可以保存多个pattern set并且能够动态地载入到DLPC347x控制器中。因此,在Internal streaming 模式中最多可以使用多少个pattern是由外部的flash存储器的大小决定的。
DLPC3478(DLP3010EVM-LC)
1D Pattern Type
Max # of Patterns
8-bits vertical patterns
6
8-bits horizontal patterns
8
1-bits vertical patterns
51
1-bits horizontal patterns
64
DLPC3470(DLP2010EVM-LC)
1D Pattern Type
Max # of Patterns
8-bits vertical patterns
8
8-bits horizontal patterns
8
1-bits vertical patterns
64
1-bits horizontal patterns
64
11. 如何改变内部pattern的帧速?
用户可以对每一个pattern set设置曝光时间,曝光时间是指pattern显示,同时照明打开的的时间。另外,用户需要设置pre-exposure dark time和post-exposure dark time,其中pre-exposure dark time是指pattern曝光前,没有pattern显示而且照明关闭的时间,post-exposure dark time是指pattern曝光后,没有pattern显示而且照明关闭的时间。从而可以得到Pattern frame rate=1/(pre-exposure dark time + exposure time + post-exposure dark time)。需要注意的是仅管可以计算得到最终有效的帧速,但是实际的曝光时间是小于1/(frame rate)的,这是因为pre和post dark time的存在造成的。
12. 为什么有最小的pre-exposure dark time和post-exposure dark time限制?
Pre-exposure dark time和post-exposure dark time是该系统实现所必须的。系统使用这些没有照明的时间将pattern加载到DMD上,用户使用这些没有照明的时间来使外部的相机可以正确地捕捉图片和处理图片。
13. 在pre-exposure dark time和post-exposure dark time中实际发生了什么?
在DLP控制器内部会使用PWM序列。PWM序列是一个专门的指令集用于告诉LED什么时候打开、什么时候关闭,以及打开多长的时间。这个指令集同时也帮助控制将实际的pattern数据载入到DMD上。一旦设置了想要的曝光时间以及pre-exposure dark time和post-exposure dark time,控制器会在内部寻找支持该时序的PWM序列。如果控制器无法找到一个匹配该时序的PWM序列,那么DLPC347x控制器会将Short Status寄存器中的Light Control Sequence Error bit (bit 6)置高,该寄存器可以通过I2C命令读取(0xD0)。
14. Internal pattern streaming mode支持哪些时序?
对于想要的曝光时间,首先根据曝光时间的范围在下表中找到正确的sequence号码。接着使用下面两个公式来计算最小的pre-exposure dark time和post-exposure dark time。
Tmin pre-exposure dark time = tsequence min pre-exposure dark time * (Tdesired exposure / Tsequence exposure minimum)
Tmin post-exposure dark time = tsequence min post-exposure dark time * (Tdesired exposure / Tsequence exposure minimum)
举个例子,如果需要的曝光时间是300us,那么
Tmin pre-exposure dark time = 170us * (300us / 200us) = 255us
Tmin post-exposure dark time = 30us * (300us / 200us) = 45us
注意:表格中的数字可能会相差1,I2C命令与直接使用GUI可能会存在不同。
注意:序列的具体时序取决于使用了哪一个版本的序列二进制文件。在当前1.0.0版本的EVM固件中使用的是0.5.46版本。您可以通过GUI软件或者使用I2C总线(0x9B)来获取使用的版本号。
Internal Pattern Streaming Mode Timings (Sequence Version 0.5.46)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
17
200us-400us
170us
30us
16
401us-799us
170us
30us
15
800us-1799us
170us
30us
14
1800us-3799us
170us
30us
13
3800us-TBD
170us
30us
RGB
22
600us-1799us
170us
30us
21
1800us-3799us
170us
30us
20
3799us-TBD
170us
30us
8
Mono
18
3464us-TBD
170us
30us
RGB
19
10912us-TBD
170us
30us
15. 是否必须计算这些最小暗场时间?
不,客户不需要手动计算这些最小暗场时间。在GUI软件中手动输入期望的曝光时间并且点击Program pattern data, 控制器会返回最小的pre-exposure dark time和post-exposure dark time。该功能是在I2C命令的帮助下完成的,在DLPC347x控制器中是0x9D。
16. 如何验证曝光时间是否有效?
最简单的验证办法是使用上述提到的GUI软件中的Program pattern data按钮。另外,也可以进入GUI软件中的Advanced Mode来更好地了解验证过程中具体发生了什么,参考如下步骤。事实上,这两种模式都是用了0x9D这个I2C命令。
1. 确保EVM已经正确上电,并且通过USB线连接到了电脑端。
2. 打开Advanced GUI软件,会与GUI软件同时安装。
3. 在屏幕左边的Project Explorer下,选择Light Control选项。
4. 找到如下图示所示的Read Validate Exposure time模块。
5.选择期望的Pattern Mode, Bit Depth和曝光时间,然后选择Get
6.如果选择的曝光时间可以被支持,GUI软件会在Exposure Time Supported下返回0x1-True。否则会返回0x0-False
7. 如果能够支持所选的曝光时间,控制器会同时返回最小的pre-exposure dark time和post-exposure dark time
17. 如何实现快速投影2D pattern?
使用external pattern streaming mode。这种模式下,DLPC347x控制器会使用外部并行数据输入接口。如果希望在EVM上使用该功能,可以通过HDMI接口输入视频信号(在EVM上会有额外的电路将HDMI信号转换为并行RGB接口信号,并输入到DLPC347x控制器上)。在这种模式下,每一个pattern会被编码到bit-plane中。
18. External pattern streaming mode支持哪些时序?
首先根据期望的曝光时间,使用下表中的曝光时间范围找到正确的序列号。接着,使用与上文Internal pattern streaming mode中的公式计算最小pre-exposure dark time和post-exposure dark time。
External Pattern Streaming Mode Timings (Sequence Version 0.5.46)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
5
200us-400us
170us
30us
4
401us-799us
170us
30us
3
800us-1799us
170us
30us
2
1800us-3799us
170us
30us
1
3800us-TBD
170us
30us
RGB
10
451us-799us
170us
30us
9
800us-1799us
170us
30us
8
1800us-3799us
170us
30us
7
3800us-TBD
170us
30us
8
Mono
6
2545us-TBD
170us
40us
RGB
0
10902us-TBD
170us
40us
19. 如何显示保存在Flash中的2D pattern?
客户可以使用splash pattern mode,该模式主要应用在一些不需要非常高pattern速度的应用当中,比如说3D打印。需要注意的是,在使用splash pattern mode的时候,在切换不同的splash pattern时会有一个额外的时间开销,该开销来自于从flash载入pattern到控制器内部的时间。
20. Splash pattern mode支持哪些时序?
首先根据期望的曝光时间,使用下表中的曝光时间范围找到正确的序列号。接着,使用与上文Internal pattern streaming mode中的公式计算最小pre-exposure dark time和post-exposure dark time。
注意1:最大的pattern周期(pre-exposure + exposure + post-exposure)在1-bit pattern的情况下不能超过2184us,在8-bit pattern的情况下不能超过10464us。
注意2:目前的GUI版本中存在一个已知的bug,在8-bit pattern的情况下,最大的曝光时间只能设置到10464us,该bug会在下一版本的GUI软件中修复。
Splash Pattern Mode Timings (Sequence Version 0.5.46)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
12
793us - 1744us
170us
30us
8
11
7737us - 17034us
170us
30us
21. 03/27/2019更新
目前ti.com有关DLPC3470和DLPC3478的固件版本是V7.0.1,其中序列文件的版本号为V0.5.70,该序列文件支持的时序如下:
Internal Pattern Streaming Mode Timings (Sequence Version 0.5.70)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
18
200µs - 399µs
171µs
31µs
17
400µs - 799µs
171µs
31µs
16
800µs - 1799µs
171µs
31µs
15
1800µs - 3799µs
171µs
31µs
14
3800µs - 7600µs
171µs
31µs
RGB
25
600µs - 1799µs
171µs
31µs
24
1800µs - 3799µs
171µs
31µs
23
3800µs - 7600µs
171µs
31µs
8
Mono
21(注1)
1677µs - 3463µs
171µs
31µs
20
3464µs - 7600µs
171µs
31µs
RGB
22
10912µs - 13024µs
171µs
31µs
注1:该序列是一个特殊的序列,只使用了7个bits。8-bit 1Dpattern中的最低位(LSB-least significant bit)会被自动忽略。当配置曝光时间在1677-2463 µs时,系统会自动选择该序列。
External Pattern Streaming Mode Timings (Sequence Version 0.5.70)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
5
200µs - 399µs
171µs
31µs
4
400µs - 799µs
171µs
31µs
3
800µs - 1799µs
171µs
31µs
2
1800µs - 3799µs
171µs
31µs
1
3800µs - 7600µs
171µs
31µs
RGB
11
451µs - 799µs
171µs
31µs
10
800µs - 1799µs
171µs
31µs
9
1800µs - 3799µs
171µs
31µs
8
3800µs - 7600µs
171µs
31µs
8
Mono
7
2555µs - 5110µs
171µs
31µs
RGB
0
10912µs - 21824µs
171µs
31µs
External Pattern Streaming Mode Timings (Sequence Version 0.5.70)
Num. Bits
Illumination
Sequence Number
Exposure Time Range
Sequence Min Pre-Exposure Dark Time
Sequence Min Post-Exposure Dark Time
1
Mono
13
793µs - 1744µs
170µs
31µs
8
12
7737µs - 17034µs
170µs
31µs