EmbeddedRelated.com
Forums

Micro with DMA output engine?

Started by larwe January 19, 2006
I'm looking for a micro that I can use to do semi-software-based video
output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher
rate but would settle for the lower.

So I'm looking for something with ~64K of RAM and a DMA engine that can
output bytes without CPU intervention. I'd generate the sync pulses in
software and use the DMA engine to reduce the CPU load on actually
outputting video data.

Catch - I don't want external SDRAM on the board. So, all the micros
I've found with on-chip LCD controller (which would do what I want
admirably) are out.

My next line of attack is to put an external SRAM on the board and use
an external counter to push bytes out of it and interrupt the CPU at
the end of each scanline; I don't much want to go that route but will
if I have to...

larwe wrote:
> > I'm looking for a micro that I can use to do semi-software-based video > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > rate but would settle for the lower. > > So I'm looking for something with ~64K of RAM and a DMA engine that can > output bytes without CPU intervention. I'd generate the sync pulses in > software and use the DMA engine to reduce the CPU load on actually > outputting video data. > > Catch - I don't want external SDRAM on the board. So, all the micros > I've found with on-chip LCD controller (which would do what I want > admirably) are out.
How about something like the Sharp LH75411, as used in the Pixter? It's got the LCD controller and 32kB on chip. Some of the SuperH microcontrollers have DMA engines. -- newell
In article <1137718235.696716.59050@f14g2000cwb.googlegroups.com>, 
zwsdotcom@gmail.com says...
> I'm looking for a micro that I can use to do semi-software-based video > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > rate but would settle for the lower.
You don't say whether you want to output the bytes in bitwise serial form or as parallel bytes (to drive a DAC, for instance).
> > So I'm looking for something with ~64K of RAM and a DMA engine that can > output bytes without CPU intervention. I'd generate the sync pulses in > software and use the DMA engine to reduce the CPU load on actually > outputting video data. > > Catch - I don't want external SDRAM on the board. So, all the micros > I've found with on-chip LCD controller (which would do what I want > admirably) are out.
Lots of the Atmel Arm chips have DMA controllers, but I'm not sure if the single-chip versions have enough memory for you. I know they work for the serial controllers, but I'm not sure they can be used to output bytes in parallel.
> > My next line of attack is to put an external SRAM on the board and use > an external counter to push bytes out of it and interrupt the CPU at > the end of each scanline; I don't much want to go that route but will > if I have to... >
Mark Borgerson
Mark Borgerson wrote:

> > I'm looking for a micro that I can use to do semi-software-based video > > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > > rate but would settle for the lower. > > You don't say whether you want to output the bytes in bitwise serial > form or as parallel bytes (to drive a DAC, for instance).
Sorry, I meant parallel (bytewise is perfectly fine; I only need 6 bits actually).
> Lots of the Atmel Arm chips have DMA controllers, but I'm not sure > if the single-chip versions have enough memory for you. I know they
I looked through those and didn't find anything that seemed appropriate; I'll look again. I also looked through Philips and Samsung's range of ARM parts.
Scott Newell wrote:

> How about something like the Sharp LH75411, as used in the Pixter? > It's got the LCD controller and 32kB on chip.
Mmmm... might be OK with some external zero wait state SRAM. I have to study the LCD controller. Thanks!
> Some of the SuperH microcontrollers have DMA engines.
I'll look at them - ARM would be better for me though, as I have lots of experience with it. Thanks for the pointer.
In comp.arch.embedded,
larwe <zwsdotcom@gmail.com> wrote:
>I'm looking for a micro that I can use to do semi-software-based video >output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher >rate but would settle for the lower. > >So I'm looking for something with ~64K of RAM and a DMA engine that can >output bytes without CPU intervention. I'd generate the sync pulses in >software and use the DMA engine to reduce the CPU load on actually >outputting video data. >
Have you looked at (or are you willing to ;-) DSP's. Years ago I did something with an ADSP2181 and that had a parrallel port with DMA IIRC. Next thing that comes to mind is the Atmel AT91M55800. No parallel out, but on-board DAC with DMA (PDC). But only 8K internal SRAM. Shame those Atmel PDC's can't be freely programmed, hooked to a timer or something. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) There are a few things that never go out of style, and a feminine woman is one of them. -- Ralston
larwe wrote:
> Scott Newell wrote: > > > How about something like the Sharp LH75411, as used in the Pixter? > > It's got the LCD controller and 32kB on chip. > > Mmmm... might be OK with some external zero wait state SRAM. I have to > study the LCD controller. Thanks! > > > Some of the SuperH microcontrollers have DMA engines. > > I'll look at them - ARM would be better for me though, as I have lots > of experience with it. > > Thanks for the pointer.
Something like a Philips LPC2214 with a 64K SRAM and a small CPLD may be a fun combination (although it obviously breaks your "no SRAM" requirement. The SRAM + CPLD combo can be had for $10. Add another $10 for the ARM chip. Not too much real estate.
I did this with an LPC2106 originally but without DMA and under 
interrupts. Believe me there is still a lot of processing time left for 
other things.

Take a look at http://www.pbjtech.com/

*Peter*

larwe wrote:
> I'm looking for a micro that I can use to do semi-software-based video > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > rate but would settle for the lower. > > So I'm looking for something with ~64K of RAM and a DMA engine that can > output bytes without CPU intervention. I'd generate the sync pulses in > software and use the DMA engine to reduce the CPU load on actually > outputting video data. > > Catch - I don't want external SDRAM on the board. So, all the micros > I've found with on-chip LCD controller (which would do what I want > admirably) are out. > > My next line of attack is to put an external SRAM on the board and use > an external counter to push bytes out of it and interrupt the CPU at > the end of each scanline; I don't much want to go that route but will > if I have to... >
larwe wrote:
> I'm looking for a micro that I can use to do semi-software-based video > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > rate but would settle for the lower. > > So I'm looking for something with ~64K of RAM and a DMA engine that can > output bytes without CPU intervention. I'd generate the sync pulses in > software and use the DMA engine to reduce the CPU load on actually > outputting video data. > > Catch - I don't want external SDRAM on the board. So, all the micros > I've found with on-chip LCD controller (which would do what I want > admirably) are out. > > My next line of attack is to put an external SRAM on the board and use > an external counter to push bytes out of it and interrupt the CPU at > the end of each scanline; I don't much want to go that route but will > if I have to...
Not too many micros with 64k of ram onboard. DMA slows down the CPU so you will need a very fast micro. The only sensible route is external video controller/memory.
Infineon TriCore (TC1796), if you can get the software for it.

larwe wrote:
> I'm looking for a micro that I can use to do semi-software-based video > output. Pixel clock would be ~5.7MHz or ~11.5MHz, I'd prefer the higher > rate but would settle for the lower. > > So I'm looking for something with ~64K of RAM and a DMA engine that can > output bytes without CPU intervention. I'd generate the sync pulses in > software and use the DMA engine to reduce the CPU load on actually > outputting video data. > > Catch - I don't want external SDRAM on the board. So, all the micros > I've found with on-chip LCD controller (which would do what I want > admirably) are out. > > My next line of attack is to put an external SRAM on the board and use > an external counter to push bytes out of it and interrupt the CPU at > the end of each scanline; I don't much want to go that route but will > if I have to... >