DSPRelated.com
Forums

Suggestions: Driving an 800x600 TFT from C6711

Started by joshtlowe March 18, 2004
Howdy all,

I'm a final year engineering student (and a DSP virgin, only having
worked with microcontrollers before) in Western Australia, and am
working on a project which will involve driving a 800x600 TFT LCD
with video generated in a C6711 DSK. I'm interested in your various
opinions on the feasibility and possible configurations to achieve
this, or whether there would be little time for the DSP to do much
else, especially seeing as one option involves using the EMIF for the
data lines...

There are 20 signals which must be generated to drive the LCD: 18
pixel colour lines (6 bits each for RGB), a pixel clock which latches
the colour information in for each pixel, and an enable signal which
indicates when valid data is available for each horizontal line.

The video must be shown at 25fps, and from this I have calculated
that the LCD's pixel clock must be driven at a minimum of 12.75Mhz,
allowing for vertical blanking and so on. If the minimum pixelClock
frequency is used, on about ~94% of negative pixel clock transitions
there will need to be colour data available to be latched into the
LCD.

It is my hope that the following arrangement (or a variation) could
be used:

-Pixel Clock: generated by dividing an existing clock signal from the
C6711 - either the CPU or memory clock.

-Enable signal: Generated using one of the two timers.

-Data Signals (18 bits): Hopefully these can be connected to the
EMIF, (perhaps with a latch in between the DSP and the LCD) such that
DMA can be used to reduce load on the DSP for the transferring
operations. Given the extremely regular and frequent signalling
needed for the pixel colour data (every 78ns, max) would the EMIF end
up unable to talk to the SDRAM as needed (and therefore result in
crippling of the DSP's calculating abilities)? Could I use 18 pins
from somewhere else (eg HPI) to handle the data bus for the LCD, so
that there is less impact on the EMIF?

As I indicated before, I've not used the C671x DSP, or any other,
previously, so any feedback would be appreciated.

Thanks,
Josh Lowe



Hello Josh,
 
Assuming that your calculations are correct...
 
1. I believe that you can generate 12.5 Mhz with the timer
2. HPI is an INPUT to the 6711.  You will have to use the EMIF.
3. You cannot hardly deal with a pixel deadline [78ns].  The classical way is to buffer up some or preferably all of the row.  this would loosen up your timing to providing 800 pixels about every 60usec.  Of course this will require a fifo [preferably implemented in programmable logic].
If you try to drive the pixels directly from the EMIF with EDMA, you could still get a few mips out of the DSP, but you would HAVE TO HIT YOUR 78ns DEADLINES!!
 
mikedunn

joshtlowe <j...@hotmail.com> wrote:
Howdy all,

I'm a final year engineering student (and a DSP virgin, only having
worked with microcontrollers before) in Western Australia, and am
working on a project which will involve driving a 800x600 TFT LCD
with video generated in a C6711 DSK. I'm interested in your various
opinions on the feasibility and possible configurations to achieve
this, or whether there would be little time for the DSP to do much
else, especially seeing as one option involves using the EMIF for the
data lines...

There are 20 signals which must be generated to drive the LCD: 18
pixel colour lines (6 bits each for RGB), a pixel clock which latches
the colour information in for each pixel, and an enable signal which
indicates when valid data is available for each horizontal line.

The video must be shown at 25fps, and from this I have calculated
that the LCD's pixel clock must be driven at a minimum of 12.75Mhz,
allowing for vertical blanking and so on. If the minimum pixelClock
frequency is used, on about ~94% of negative pixel clock transitions
there will need to be colour data available to be latched into the
LCD.

It is my hope that the following arrangement (or a variation) could
be used:

-Pixel Clock: generated by dividing an existing clock signal from the
C6711 - either the CPU or memory clock.

-Enable signal: Generated using one of the two timers.

-Data Signals (18 bits): Hopefully these can be connected to the
EMIF, (perhaps with a latch in between the DSP and the LCD) such that
DMA can be used to reduce load on the DSP for the transferring
operations. Given the extremely regular and frequent signalling
needed for the pixel colour data (every 78ns, max) would the EMIF end
up unable to talk to the SDRAM as needed (and therefore result in
crippling of the DSP's calculating abilities)? Could I use 18 pins
from somewhere else (eg HPI) to handle the data bus for the LCD, so
that there is less impact on the EMIF?

As I indicated before, I've not used the C671x DSP, or any other,
previously, so any feedback would be appreciated.

Thanks,
Josh Lowe
_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer. You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join: Send an email to c...@yahoogroups.com

To Post: Send an email to c...@yahoogroups.com

To Leave: Send an email to c...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/c6x

Other Groups: http://www.dsprelated.com

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/c6x/

<*> To unsubscribe from this group, send an email to:
c...@yahoogroups.com

<*>



Josh-

> I'm a final year engineering student (and a DSP virgin, only having
> worked with microcontrollers before) in Western Australia, and am
> working on a project which will involve driving a 800x600 TFT LCD
> with video generated in a C6711 DSK. I'm interested in your various
> opinions on the feasibility and possible configurations to achieve
> this, or whether there would be little time for the DSP to do much
> else, especially seeing as one option involves using the EMIF for the
> data lines...

I would suggest using the DSK C6711 board + IDK daughtercard. You can get the
logic
source for the XCV100 video interface from TI, and then modify that to support
your
LCD interface in addition to the standard S-video and PC video output that TI
provides. You can define additional logic I/O pins to drive the LCD interface
and go
from there. U will likely need to solder wires to pins on the FPGA (u can get
most
of these get from daughtercard connector pads) and to the TPV3026 video output
device. But this is an academic project, so what the heck. Your Prof will be
very
impressed anyway when he sees those blue wires :-)

The advantages are obvious: start with working algorithms such as MPEG2 and
working
logic source, including signals already defined and debugged such as pixel
clock.
Most importantly, the daughtercard already has additional dual-port video buffer
SDRAM (being filled by DMA writes from DSP memory), and the logic already has
video
line buffer output that you *really* need in order to run in real-time and meet
the
pixel deadlines that Mike and others have mentioned.

If it were me, I would modify the logic in such a way that the PC video
continues to
display, to maintain a 'gold standard' for comparison at all times as you mess
with
the logic and DSP code.

-Jeff

> There are 20 signals which must be generated to drive the LCD: 18
> pixel colour lines (6 bits each for RGB), a pixel clock which latches
> the colour information in for each pixel, and an enable signal which
> indicates when valid data is available for each horizontal line.
>
> The video must be shown at 25fps, and from this I have calculated
> that the LCD's pixel clock must be driven at a minimum of 12.75Mhz,
> allowing for vertical blanking and so on. If the minimum pixelClock
> frequency is used, on about ~94% of negative pixel clock transitions
> there will need to be colour data available to be latched into the
> LCD.
>
> It is my hope that the following arrangement (or a variation) could
> be used:
>
> -Pixel Clock: generated by dividing an existing clock signal from the
> C6711 - either the CPU or memory clock.
>
> -Enable signal: Generated using one of the two timers.
>
> -Data Signals (18 bits): Hopefully these can be connected to the
> EMIF, (perhaps with a latch in between the DSP and the LCD) such that
> DMA can be used to reduce load on the DSP for the transferring
> operations. Given the extremely regular and frequent signalling
> needed for the pixel colour data (every 78ns, max) would the EMIF end
> up unable to talk to the SDRAM as needed (and therefore result in
> crippling of the DSP's calculating abilities)? Could I use 18 pins
> from somewhere else (eg HPI) to handle the data bus for the LCD, so
> that there is less impact on the EMIF?
>
> As I indicated before, I've not used the C671x DSP, or any other,
> previously, so any feedback would be appreciated.
>
> Thanks,
> Josh Lowe
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you want
your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to
>
> To Post: Send an email to
>
> To Leave: Send an email to
>
> Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com
>
> Yahoo! Groups Links >
>