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