Micro with DMA output engine?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
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...


Re: Micro with DMA output engine?
Quoted text here. Click to load it

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

Re: Micro with DMA output engine?


Quoted text here. Click to load it

Mmmm... might be OK with some external zero wait state SRAM. I have to
study the LCD controller. Thanks!

Quoted text here. Click to load it

I'll look at them - ARM would be better for me though, as I have lots
of experience with it.

Thanks for the pointer.


Re: Micro with DMA output engine?
Quoted text here. Click to load it

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.


Re: Micro with DMA output engine?


Quoted text here. Click to load it

Ah, but I didn't say no SRAM, I said no SDRAM - because it's fiendishly
difficult to source in "boutique" quantities and I'm tired of
scrabbling through a pile of SODIMMs looking for chips of the right
density.

Quoted text here. Click to load it

Do you have a CPLD recommendation? It's five years since I used one....
Lattice isp2032. I'd like something with a free schematic
capture/chip-burning tool, since I'm not spending $5k on a tool to be
used once.


Re: Micro with DMA output engine?
Quoted text here. Click to load it

I've only used Xilinx devices, but I expect Altera ones are comparible.
Both Xilinx and Altera have free toolsets on their website.

I can't estimate the size of part you'll need. If I were doing it I'd
write the verilog code first and then choose the cheapest part that
fits.

Or even better - post a detailed description of what you want to do to
comp.arch.fpga - you may get a very precise answer (I'm not very
experienced, sorry).

Good luck!

Paul.


Re: Micro with DMA output engine?
Quoted text here. Click to load it

  You could try
www.Altera.com
www.Xilinx.com
www.Lattice.com
  and look there for FREE tools, and CPLD sections ?

  Or, since Digikey seems to be your window on the world,
probably best to actually start there ?
www.digikey.com

  There are other solutions to your display problem, but I'll
leave you to work that out yourself...

-jg



Re: Micro with DMA output engine?


Quoted text here. Click to load it

I didn't think of Altera, but I started with Xilinx and Lattice, and
remember it's not quite as simple as just free software tools - I need
a reasonably priced JTAG pod (or whatever) also.

Quoted text here. Click to load it

There are many solutions to any problem. Particularly when considering
my form factor, the "right" way to do it is to put everything in an
FPGA, but I don't have the skills and experience to do it this way. I'm
only considering a CPLD as a replacement for the discrete logic I'm
going to need (counters and misc. gates), which is how I've used them
in the past. Yes, it could all be done elegantly in VHDL but I'm only
at a rudimentary level of familiarity with the language; I think I can
get the project done faster using other methods.


Re: Micro with DMA output engine?
Quoted text here. Click to load it

I think Xilinx and Altera are the #1 and #2 respectively for FPGAs and
CPLDs.  The Xilinx tools are very good, I think.  They just released
version 8.1i of their Webpack free development suite.

In terms of configuration, Digilent (who make development boards for
Xilinx) sell a $12 cable:

http://www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Cables&Cat=Cable

Or Xilinx provide instructions and 'C' code to enable devices to be
programmed directly from a microprocessor (i.e. you could wire the ARM
to the CPLD's JTAG pins and program the CPLD from the ARM... if you can
fit the bitfile in the ARM flash).

See:
http://www.xilinx.com/isp/microprocessor.htm


FPGAs and CPLDs are a lot of fun.  I find verilog incredibly easy and
interesting (coming from a 'C' and assembly background with a
university digital systems education).

I develop my verilog with the Icarus verilog simulator and gtkwave vcd
viewer on Linux.  Then I migrate onto the Xilinx tools when I'm ready
to do more hardcore simulation and synthesis.


Good luck!

Paul.


Re: Micro with DMA output engine?


Quoted text here. Click to load it

Thanks, that's exactly the kind of tip I needed.

Quoted text here. Click to load it

I have plenty of room at the moment - but I'm not sure I want to waste
all that space since I might want to add more functionality to the main
uP.

Quoted text here. Click to load it

I started experimenting with VHDL a while ago - I have about eight
inches of books on the topic <g> - but haven't progressed very far.


Re: Micro with DMA output engine?

Quoted text here. Click to load it

I would go directly with the Xilinx  HW-SPAR3-CPLD-DK.  They have
FPGA+CPLD together for $99, including a XC3S200 FPGA,
XC9500 CPLD, jtag downloader and CDs.  The 200K FPGA alone
cost over $20 retail.  The package is cheaper than all the components.

By the way, the FPGA kit has a hardware VGA port for three basic
colors (RGB).  I am sure you can modified it for additional colors.
If you need and want an micro within the FPGA, PPC cores are available
for the Virtex-4 series.


Re: Micro with DMA output engine?
On 21 Jan, in article

Quoted text here. Click to load it

All that seems overkill. Having used a 128kB SRAM and Altera Max7256 to

        dual port RAM with micro (address and data)
        frame grab from a PAL interlaced video source in monochrome
                route ADC data to SRAM
        Continuously play back data from RAM to a DAC whilst performing
          simple calculations on the data at pixel rate.
        Run all the necessary counters for video timing and addressing.
        CPLD registers for function control of CPLD from software.
        Other functions for the board.

All that in 128 TQFP and had enough extra lines and counter bits available
to cope with 512kB device when 128kB no longer available. The 512kB is only
in a 4 pin larger package (36 instead of 32).

That way the CPLD and SRAM appear on the address bus of the micro. The
10bit DAC and 8 bit ADC were connected and controlled directly by the CPLD.

For what you are doing a smaller pin count Altera or Xilinx will do the job
of handling syncs and providing blanking interupts for you.

--
Paul Carpenter          | snipped-for-privacy@pcserviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/ PC Services
We've slightly trimmed the long signature. Click to see the full one.
Re: Micro with DMA output engine?

Quoted text here. Click to load it

Overkill as in "being too cheap"?

Quoted text here. Click to load it
Altera EPM7256AETC100-10 is USD$40
Xilinx XC3S200-4FTG256C is USD$26

I would stick with the 256 balls BGA, in case of needs to upgrade to
XC3S1K.

Quoted text here. Click to load it


Unfortunately, they don't make big chips with small pin/ball counts.
Bigger
chips are sometime cheaper as well.


Re: Micro with DMA output engine?
Quoted text here. Click to load it

I toyed with an FPGA development system for about a year - reading
Verilog books but never actually getting around to DOING anything.

Then I joined a small company and spec'd an FPGA as part of an
out-sourced board.  The story ends with us deciding to bring the FPGA
code back in-house and with me volunteering to do it.  Which I did in
about two weeks.

What the FPGA did isn't important.  What is important is that having
spec'd the chip and having poured through Verilog and digital design
texts for a year, applying it was straightforward.

In the end you learn by doing.  Don't be afraid.  A CPLD may give you
better integration, real estate and performance than discretes or
trying to do it all in the microcontroller.

Paul.


Re: Micro with DMA output engine?
snipped-for-privacy@gmail.com says...
Quoted text here. Click to load it

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).
Quoted text here. Click to load it

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.
Quoted text here. Click to load it

Mark Borgerson


Re: Micro with DMA output engine?


Quoted text here. Click to load it

Sorry, I meant parallel (bytewise is perfectly fine; I only need 6 bits
actually).

Quoted text here. Click to load it

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.


Re: Micro with DMA output engine?
In comp.arch.embedded,
Quoted text here. Click to load it
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
We've slightly trimmed the long signature. Click to see the full one.
Re: Micro with DMA output engine?
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:
Quoted text here. Click to load it

Re: Micro with DMA output engine?

Hi Peter,

Quoted text here. Click to load it

That's a very impressive little board! I believe my application can
probably _just_ run in the blanking intervals - but it leaves me no
margin at all. I'd rather be able to run with a closer to 100% duty
cycle.

If I can't find a micro with DMA, I'm going to build some external
hardware - I haven't yet decided if it needs to be a "full" CRTC
implementation or whether I will just have an external scanline buffer
to take the DMA load off the CPU.


Re: Micro with DMA output engine?
Larwe,

When I originally did this with the LPC2106 I used a separate cpu for
the application. But after various improvements in the software plus
some sneaky optimizations (skip blank lines etc) plus the high-speed of
the Philips ARM7 family I am able to run applications very comfortably.

When I need to do a major update of the display information I tell the
video generator to blank the display (still synching) to free-up some
additional processing time for the application. Doing this usually means
that the application completes everything in less than a frame anyway so
the viewer sees nothing more than the screen updating.

But that depends upon your application I suppose but bear in mind that
if you do happen to find a cpu with the RAM and DMA that it mighn't run
all that fast anyway, especially with the DMA running.

But let us know if you do happen to find a suitable cpu.

*Peter*

larwe wrote:
Quoted text here. Click to load it

Site Timeline