mb_olre16
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| mb_olre16 [2016/09/23 15:28] – [TLC related Design] psykhaze | mb_olre16 [2019/04/21 08:50] (current) – [GrayScale Clock] antichambre | ||
|---|---|---|---|
| Line 30: | Line 30: | ||
| We expect 16 RGB LED rings encoders. So let's do the math : | We expect 16 RGB LED rings encoders. So let's do the math : | ||
| **16 Encoders * 32 LEDs * 3 colors = __1536 lines__ ** \\ | **16 Encoders * 32 LEDs * 3 colors = __1536 lines__ ** \\ | ||
| - | Let's transpose this to a classical matrixed SRIO chain design: | + | Let's transpose this to a classical matrixed SRIO chain design: |
| - | **3x16=48 inputs + 32 outputs = __6*DIN + 4*DOUT__ **\\ | + | ** 16 * 3 (cathodes) * 32 (anodes)** \\ |
| + | **= 48 inputs + 32 outputs | ||
| + | **= __6*DIN + 4*DOUT__ **\\ | ||
| ==== Core-External Driving Concept : TLC5958 ==== | ==== Core-External Driving Concept : TLC5958 ==== | ||
| - | In theory it's possible to drive such a SRIO setup but in fact buses and resistors/ | + | In theory it's possible to drive such a SRIO setup but in fact buses and resistors/ |
| \\ | \\ | ||
| After a look on the different brands and models of LED driver IC **[[http:// | After a look on the different brands and models of LED driver IC **[[http:// | ||
| + | \\ | ||
| + | **<wrap download> | ||
| + | \\ | ||
| + | \\ | ||
| This Design note from Texas Instruments helps in understanding how to design around the TLC:\\ | This Design note from Texas Instruments helps in understanding how to design around the TLC:\\ | ||
| **<wrap download> | **<wrap download> | ||
| Line 97: | Line 101: | ||
| ==== Data Transfer ==== | ==== Data Transfer ==== | ||
| | | ||
| - | A serialized design has been chosen to provide data to TLC. Prototype feature only 2 steps but the CORE works like there' | + | A serialized design has been chosen to provide data to TLC. Prototype feature only 2 steps but the CORE works like there' |
| {{antichambre: | {{antichambre: | ||
| {{antichambre: | {{antichambre: | ||
| - | |||
| ==== GrayScale Clock ==== | ==== GrayScale Clock ==== | ||
| - | Design of External GrayScale Clock for the TLC was tricky. | + | Design of External GrayScale Clock for the TLC was tricky.\\ |
| - | 257 clock periods and halt for some 1.5~2.5µs are needed for each address line . TLC would receive a VSYNC command at the end of the 32th address line to prepare the new frame datas. \\ | + | \\ |
| + | **257 clock periods and halt for some 1.5~2.5µs are needed for each address line** \\ | ||
| + | \\ | ||
| + | TLC would receive a VSYNC command at the end of the 32th address line to prepare the new frame datas. \\ | ||
| \\ | \\ | ||
| The first approach was to provide a PWM at 800KHz and put it back to the LPC on a TMR CAP Input, use 2 MAT outputs to provide a line period and gate(NOR) the PWM with it.\\ | The first approach was to provide a PWM at 800KHz and put it back to the LPC on a TMR CAP Input, use 2 MAT outputs to provide a line period and gate(NOR) the PWM with it.\\ | ||
| - | First issue, halting time after the 257 periods wasn't constant and dependent of PWM frequency.2nd issue, much I/O used only for this purpose.\\ | + | \\ |
| + | //First issue, halting time after the 257 periods wasn't constant and dependent of PWM frequency. | ||
| Line 116: | Line 123: | ||
| ==== TLC related Design ==== | ==== TLC related Design ==== | ||
| - | TLC is wired like on an SPI bus to Core Board. Here are equivalences: | + | {{: |
| + | {{: | ||
| + | |||
| + | TLC is wired like on an SPI bus to Core Board. Here are connections | ||
| * SCLK => SC | * SCLK => SC | ||
| * DATA => SO | * DATA => SO | ||
| * LAT => RC | * LAT => RC | ||
| * FLAGS READ => SI | * FLAGS READ => SI | ||
| + | **[[stm32f4_module# | ||
| + | \\ | ||
| + | \\ | ||
| //Note: Command is coded by putting LAT active during a defined number of SCLK periods.For example for a VSYNC command, LAT must be high during 3 SCLK pulses.//\\ | //Note: Command is coded by putting LAT active during a defined number of SCLK periods.For example for a VSYNC command, LAT must be high during 3 SCLK pulses.//\\ | ||
| Line 128: | Line 140: | ||
| **Frame update is needed only when a change occurs, TLC keep all the frame in memory and continue to distribute it to the 32 addresses lines and 16 rgb leds by address ** | **Frame update is needed only when a change occurs, TLC keep all the frame in memory and continue to distribute it to the 32 addresses lines and 16 rgb leds by address ** | ||
| \\ | \\ | ||
| + | |||
| ==== GrayScale Clock ==== | ==== GrayScale Clock ==== | ||
| - | The TLC needs a GrayScale Clock(GSCLK) and additional control to multiplex 32 addresses (named COMSELx in previous | + | The TLC needs a GrayScale Clock(GSCLK) and additional control to multiplex 32 addresses (named COMSELx in diagram). The GSCLK signal should be 257 pulses + 1.5~2.5µs of interval between segments . COMSEL management needs 32 multiplexing adress lines for (5 bits coded and decoded directly on the top board).\\ |
| - | {{: | + | === Clock Schematic |
| - | {{: | + | \\ |
| - | + | <wrap center round important 60%> | |
| - | === Clock Schematic === | + | //Note: This circuit is replaced by a simulated one, on a CPLD.// |
| + | </ | ||
| {{: | {{: | ||
| - | Tthe external clock circuit was simulated on LTSpice first and tested on veroboard with the prototyped OLRE16.\\ | + | The external clock circuit was simulated on LTSpice first and tested on veroboard with the prototyped OLRE16.\\ |
| PWM_CLK, RESET and EOF are connected to the CORE\\ | PWM_CLK, RESET and EOF are connected to the CORE\\ | ||
| \\ | \\ | ||
| - | The CORE provides a regular Clock with PWM @2MHz .The 12bit counter U16 counts until 257 and trigs U1 wich is a monostable, U1 switchs, resets the counter and stops the clock counter input by U17(D-Flipflop). \\ | + | CORE provides a regular Clock with PWM @2MHz .The 12bit counter U16 counts until 257 and trigs U1 wich is a monostable, U1 switchs, resets the counter and stops the clock counter input by U17(D-Flipflop). \\ |
| + | \\ | ||
| + | After a certain time given by the RC couple on U1, U1 switchs back and restarts the counter. | ||
| + | By this way we are sure to count the exact 257 Clocks needed and the interval between 2 segments is fixed by the trimpot U19.\\ | ||
| \\ | \\ | ||
| - | After a certain time given by the RC couple on U1, U1 switch back and restarts the counter. | ||
| - | By this way we are sure to count the exact 257 Clocks needed and the interval between 2 segments is fixed by the trimpot U19. | ||
| - | |||
| **GSCLK signal is then high during the 257 clocks period and low during the interval**\\ | **GSCLK signal is then high during the 257 clocks period and low during the interval**\\ | ||
| === Multiplexing Schematic === | === Multiplexing Schematic === | ||
| - | {{: | + | {{: |
| ADDR_x, ADDR_CLK, GSCLK are connected to the top board...\\ | ADDR_x, ADDR_CLK, GSCLK are connected to the top board...\\ | ||
| Line 159: | Line 173: | ||
| + | === Clock version 2 === | ||
| + | <wrap center round todo 60%> | ||
| + | CPLD/FPGA version | ||
| + | </ | ||
mb_olre16.1474644516.txt.gz · Last modified: 2016/09/23 15:28 by psykhaze
