Wiki DLP4100 » History » Version 39
Frédéric Blanc, 2017-04-27 15:59
1 | 2 | Frédéric Blanc | p=. *Wiki DLP4100* |
---|---|---|---|
2 | |||
3 | h1. Overview |
||
4 | 24 | Frédéric Blanc | |
5 | |||
6 | !hyperholo.png! |
||
7 | 2 | Frédéric Blanc | The DLP® Discovery™ 4100 (D4100) is the latest in a series of spatial light modulation development kits from Texas |
8 | Instruments. Users of the D4100 Starter Kit have the ability to manipulate visible, ultraviolet and near-infrared light |
||
9 | with extremely high performance and high resolution. |
||
10 | The D4100 offers developers a flexible platform to design products to fit most any application using the proven |
||
11 | reliability of DLP technology. |
||
12 | |||
13 | 25 | Frédéric Blanc | !d4100_block_diagram.png! |
14 | 3 | Frédéric Blanc | Fig 1: System Overview |
15 | 1 | Frédéric Blanc | |
16 | 21 | Frédéric Blanc | |_.New version |_.Actual|_.Name| |
17 | 6 | Frédéric Blanc | |DLPC410|DDC4100 (FPGA X5VLX30)|Digital Controller for Discovery 4100 chipset| |
18 | |DLPR410|XCF16|PROM for Discovery 4100 chipset| |
||
19 | |DLPA200|DAD2000|DMD Micromirror Driver| |
||
20 | |||
21 | 23 | Frédéric Blanc | document:"DLPC410 DLP Digital Controller [dlps024c.pdf]" |
22 | 22 | Frédéric Blanc | |
23 | 20 | Frédéric Blanc | h1. Configuration Jumpers, Switch and LED |
24 | 1 | Frédéric Blanc | |
25 | 26 | Frédéric Blanc | !d4100_configuration.png! |
26 | 20 | Frédéric Blanc | Fig 2: D4100 Controller Configuration Jumpers, Switch and LED |
27 | 2 | Frédéric Blanc | |
28 | 12 | Frédéric Blanc | *LED1 - USB status* |
29 | 14 | Frédéric Blanc | CY7C68013A_128 |
30 | 12 | Frédéric Blanc | *LED2 - APPSFPGA status* |
31 | 15 | Frédéric Blanc | (FPGA PIN N14) |
32 | 12 | Frédéric Blanc | |_.LED|_.Status| |
33 | |RED|BAD| |
||
34 | |GREEN|OK| |
||
35 | 1 | Frédéric Blanc | |
36 | 12 | Frédéric Blanc | *LED3 - DDC4000 status* |
37 | 1 | Frédéric Blanc | |
38 | 12 | Frédéric Blanc | |_.LED|_.Status| |
39 | |RED|BAD| |
||
40 | |GREEN|OK| |
||
41 | |||
42 | *LED9..12 - LED status* |
||
43 | LED9 - DDC_LED0 Status LED for the DDC4000 |
||
44 | 39 | Frédéric Blanc | The LED0 signal is typically connected to an LED to show that the DLPC410 is operating normally. |
45 | The signal is 1 Hz with 50% duty cycle, otherwise known as the heartbeat LED10 - DDC_LED1 Status |
||
46 | LED for the DDC4000. The LED1 signal is typically connected to an LED indicator to show the status |
||
47 | of system initialization and the status of the clock circuits. The LED1 signalis asserted only |
||
48 | when system initialization is complete and clock circuits are initialized. Logically, these |
||
49 | signals are ANDed together to show an indication of the health of the system. If the Phase Locked |
||
50 | Loop (PLL) connected to the data clock and the DMDclock are functioning correctly after system |
||
51 | 13 | Frédéric Blanc | initialization, the LED will be illuminated |
52 | 39 | Frédéric Blanc | |
53 | 12 | Frédéric Blanc | LED11 - VLED0 This logic is to be defined by the APPSFPGA application. Drive low to turn on the led. Drive high to |
54 | 15 | Frédéric Blanc | turn off the led(FPGA PIN AK19). |
55 | 12 | Frédéric Blanc | LED12 - VLED1 This logic is to be defined by the APPSFPGA application. Drive low to turn on the led. Drive high to |
56 | 15 | Frédéric Blanc | turn off the led(FPGA PIN AJ19). |
57 | 12 | Frédéric Blanc | |
58 | 2 | Frédéric Blanc | *J2 – EXP Voltage Select* |
59 | |||
60 | 8 | Frédéric Blanc | *J4 – Used to select the revision of firmware loaded from the PROM to the APPSFPGA.* |
61 | 2 | Frédéric Blanc | |
62 | |_.Jumper Position|_.Revision Version| |
||
63 | |open|0| |
||
64 | |close|1| |
||
65 | |||
66 | *J5 – Shared USB signal disabled* |
||
67 | |||
68 | |_.Jumper Position|_.USB Signals| |
||
69 | |0-1|Disconnected from FPGA | |
||
70 | |1-2|Connected to FPGA| |
||
71 | |2-3|Automatically connect USB signals |
||
72 | to FPGA when USB is connected to |
||
73 | host PC | |
||
74 | |||
75 | *J7 – USB EEPROM Programming Header* |
||
76 | |||
77 | Used to temporally disconnect the USB EEPROM fromthe device so the device can load its internal |
||
78 | boot loader rather than any code in the EEPROM. Install J8 for Cypress internal boot loader. |
||
79 | |||
80 | *J10 – DAD2000 B Output Enable* |
||
81 | |||
82 | Used to enable the outputs for DAD2000 B. This needs to be enabled only if using the 1080p DMD, |
||
83 | otherwise this can be disabled. |
||
84 | |||
85 | |_.Jumper Position|_.DAD2000 B Outputs| |
||
86 | 8 | Frédéric Blanc | |open|Disabled| |
87 | 1 | Frédéric Blanc | |close|Enabled| |
88 | |||
89 | *J11 – Used to select the revision of firmware loaded from the PROM to the DDC4100 (FPGA X5VLX30).* |
||
90 | |||
91 | |_.Jumper Position|_.Revision Version| |
||
92 | |open|0| |
||
93 | |close|1| |
||
94 | |||
95 | 12 | Frédéric Blanc | *SW1 - Dipswitches* |
96 | 1 | Frédéric Blanc | |
97 | 12 | Frédéric Blanc | Functionality defined by APPSFPGA programming. In default test pattern code: |
98 | 27 | Frédéric Blanc | |_.Switch Number|_.Effect|_.FPGA PIN| |
99 | 16 | Frédéric Blanc | |1 |ON = float – float all mirrors|G20| |
100 | |2 |ON = counter halt – stop counter, this will freeze the image on the DMD|G21| |
||
101 | |3 |ON = complement data – causes DDC 4000 to complement all data it receives|F20| |
||
102 | 12 | Frédéric Blanc | |4 |ON = north/south flip – causes the DDC 4000 |
103 | to reverse order of row loading, effectively |
||
104 | 16 | Frédéric Blanc | flipping the image|G22| |
105 | |5 |Dictates the type of reset being used LSB ON = 1|H15| |
||
106 | |6 |Dictates the type of reset being used MSB ON = 1|H14| |
||
107 | 12 | Frédéric Blanc | ||00 : single block phased reset| |
108 | ||01 : dual block phased reset| |
||
109 | ||10 : global reset| |
||
110 | ||11 : quad block phased reset| |
||
111 | 16 | Frédéric Blanc | |7 |ON = Row Address Mode|H12| |
112 | |8 |ON = WDT Enable, disables other resets|J14| |
||
113 | 1 | Frédéric Blanc | |
114 | 12 | Frédéric Blanc | *SW2 - Push Button Momentary Switch* |
115 | |||
116 | 14 | Frédéric Blanc | Functionality defined by APPSFPGA. This switch is used for *APPS_LOGIC_RESET* in the default code. |
117 | 16 | Frédéric Blanc | (FPGA PIN T24) |
118 | 12 | Frédéric Blanc | *SW3 - Push Button Momentary Switch* |
119 | |||
120 | 14 | Frédéric Blanc | Functionality defined by APPSFPGA. This switch is used for *APPS_LOGIC_MIRROR_FLOAT* in the default code. |
121 | 16 | Frédéric Blanc | (FPGA PIN P10) |
122 | 14 | Frédéric Blanc | *SW4 - POWER STANDBY* |
123 | 17 | Frédéric Blanc | |
124 | 29 | Frédéric Blanc | h1. Power Down |
125 | |||
126 | *%{background:yellow}To ensure long term reliability of the DMD, a shutdown procedure must be executed.%* |
||
127 | Prior to power removal, assert the PWR_FLOAT (Table 1) signal and allow approximately 300μs for the procedure to |
||
128 | complete. This procedure will assure the mirrors are in a flat state. For more details, please refer to the |
||
129 | appropriate DMD document. |
||
130 | |||
131 | 30 | Frédéric Blanc | h1. APPSFPGA |
132 | |||
133 | 31 | Frédéric Blanc | The APPSFPGA contains the Applications FPGA Sample Code for the DDC4100. This sample code |
134 | cycles through test patterns and is meant to offer an example of code that meets the DDC4100 |
||
135 | specification. It has been written to implement all features of the DDC4100, such as the complement |
||
136 | function and all mirror reset types, as explained in later sections. This sample code also addresses |
||
137 | additional operational requirements for the DDC4100 interface which should be observed. |
||
138 | 30 | Frédéric Blanc | |
139 | 32 | Frédéric Blanc | |_.Signal Name |_.Description| |
140 | |CLK_I |Input clock (50 MHz)| |
||
141 | |ARSTZ |Active low, asynchronous system reset (connected to flip switch)| |
||
142 | |IN_PWR_FLOAT_I |Float all mirrors in preparation for system shutdown (connect to push-button switch)| |
||
143 | |FINISHED_IV_O |Indicates when applications FPGA has finished initialization (connected to LED)| |
||
144 | |IN_RST_ACTIVE_I |Asserted while a mirror reset is being executed| |
||
145 | |IN_INIT_ACTIVE_I |Asserted while DDC4100 is initializing| |
||
146 | |IN_DIP_SW_I |Dip switch inputs| |
||
147 | |FINISHED_IV_O |Indicates when applications FPGA has finished initialization (connected to LED)| |
||
148 | |CLK_R |Reference clock to DDC4100 (50MHz)| |
||
149 | |DOUT_A[15:0] |Output data A to DDC4100 (400MHz DDR)| |
||
150 | |DOUT_B[15:0] |Output data B to DDC4100 (400MHz DDR)| |
||
151 | |DOUT_C[15:0] |Output data C to DDC4100 (400MHz DDR)| |
||
152 | |DOUT_D[15:0] |Output data D to DDC4100 (400MHz DDR)| |
||
153 | |DCLK_A |Output data clock to DDC4100 (400MHz)| |
||
154 | |DVALID_A |Output data valid to DDC4100 used to qualify data| |
||
155 | |ROWMD[1:0] |Output row mode to DDC4100| |
||
156 | |ROWAD[10:0] |Output row address to DDC4100| |
||
157 | |STEPVCC |Output to indicate status of vcc step| |
||
158 | |COMP_DATA |Output to cause DDC4100 to complement all data| |
||
159 | |NS_FLIP |Output to cause DDC4100 to reverse order of row loading| |
||
160 | |BLKAD |Output block address to DDC4100| |
||
161 | 34 | Frédéric Blanc | |BLKMD |Output block mode to DDC4100| |
162 | |WDT_ENABLEZ |Output watch dog timer| |
||
163 | 32 | Frédéric Blanc | |
164 | 36 | Frédéric Blanc | *Getting Started* |
165 | The following steps should be followed in starting board operation using the default APPSFPGA code installed at the |
||
166 | factory : |
||
167 | 1.) Connect 5V, 5 A power supply to the supplied power cable. Connect the power cable to J12 with the power |
||
168 | supply OFF. |
||
169 | 2.) Confirm all SW2 switches are in the OFF position. Confirm all 5 H1 jumpers are in place. If using a 1080p |
||
170 | DMD confirm J11 is installed. |
||
171 | 3.) Connect the DMD to the board with the flex cable(s). One flex cable attached to J13 is used for XGA DMDs, |
||
172 | two flex cables attached to J14 and J14 are used for 1080p DMD. |
||
173 | 4.) Turn the power supply ON. D2 and D3 should briefly display red then green to indicate APPSFPGA and |
||
174 | DDC4000 configuration. *D9 should flash green at 1 Hz*. D10 should display green. The DMD will repeatedly |
||
175 | cycle through several test patterns. |
||
176 | |||
177 | *%{background:yellow}To stop operation : |
||
178 | 1.) Press SW3 to float the DMD, then turn power OFF.%* |
||
179 | |||
180 | 34 | Frédéric Blanc | document:"DDC4100 Applications FPGA Sample Code Guide [2510445.pdf]" |
181 | 1 | Frédéric Blanc | |
182 | 36 | Frédéric Blanc | h1. EXP Expansion Connectors |
183 | 1 | Frédéric Blanc | |
184 | 36 | Frédéric Blanc | To connect to an Avnet EXP compatible motherboard product. |
185 | Board design includes additional LVDS pairs to support 64 bit LVDS connection through EXP |
||
186 | connectors with a custom interface board. |
||
187 | |||
188 | 38 | Frédéric Blanc | 64 IO LVDS |
189 | 28 IO SE |
||
190 | 2 CLK_IN LVDS (FPGA PIN H19,H20 ; H18,J17) and SE (FPGA PIN J20 ; J16) |
||
191 | 2 CLK_OUT LVDS (FPGA PIN U31,U32 ; AC3,AB2) and SE (FPGA PIN J21 ; J15) |
||
192 | |||
193 | 1 | Frédéric Blanc | h1. RAM |
194 | 36 | Frédéric Blanc | |
195 | A 64 bit DDR2 SODIMM connector provides high speed memory connection to the APPSFPGA. Memory |
||
196 | controller design for the APPSFPGA is not included. For a memory controller reference design |
||
197 | 37 | Frédéric Blanc | document:"Xilinx Memory Interface Generator (MIG) User Guide [ug086.pdf]" |
198 | 35 | Frédéric Blanc | |
199 | 19 | Frédéric Blanc | h1. USB |
200 | 17 | Frédéric Blanc | |
201 | The USB EEPROM does not have any code only VID/PID data. Here is a sequence of USB initialization: |
||
202 | |||
203 | When a board is plugged in by USB the Windows D4100 USB driver sees the unprogrammed TI VID/PID. (The Windows D4100 USB driver is installed with the Explorer software.) |
||
204 | Then it loads a program directly into the Cypress USB (not the EEPROM) and runs it. (This loads the firmware through USB) |
||
205 | This sets the Cypress VID/PID to show that the part is programmed and allows communication with the Board. |
||
206 | |||
207 | This is only the first part. To communicate with the DMD a different APPS_FPGA program (D4100_GUI_FPGA.bin) must be loaded that can communicate with the Cypress USB. |
||
208 | |||
209 | When the D4100 Explorer is started it checks to see if D4100_GUI_FPGA.bin is loaded in the FPGA and programs the FPGA if it not. |
||
210 | |||
211 | This program can also be loaded by invoking the DLL function directly from another program (see the API Programmer’s Guide) |
||
212 | |||
213 | Once loaded then the other API DLL functions can be used to load and reset image data. |
||
214 | 18 | Frédéric Blanc | |
215 | 28 | Frédéric Blanc | *%{background:yellow}If you have one of the ViALUX ALP versions you will need to contact them concerning this since their software uses proprietary communication protocols with the D4100.%* |