Does anyone know any Freescale microcontroller with composite video output capability?
I haven't heard of one in the ColdFire range.
We use an MCF5329. It has video output suitable for an LCD panel. We have that connected to one of these:
It has an internal frame buffer and can generate "analog TV (NTSC and PAL), VGA and HDTV ( 480p,576p,720p, 1080i)".
The MCF5329 can only do very simple "video", effectively "static graphics". It doesn't have a graphics controller. The CPU has to write every pixel to the frame buffer - in that sense the design is pretty much identical to the 1984 Macintosh. It can'tgenerate the right clock rates forVGA or SVGA (800 by 600), and the latter at 16 bits takes 2/3 of the memory bus, just refreshing the screen.
If you want high speed video, you should be asking in the I.MX forum, which has moved to http://imxcommunity.org/.
I just typed "ntsc video" into the "Search" box on Freescale's web site and got a hit on this:
• Displays— Two display ports, each can drive displays using either (or both) of the following interfaces– Parallel interface: up to 24-bit data bus, up to 100 MHz– DSI fast serial interface: up to 2 data lanes, up to 1600 Mbps— NTSC/PAL TV-Out interface via integrated video encoder.— Pixel Color depth up to 24-bits
We use a MAX7456 OSD chip to generate text and very basic graphics in PAL/NTSC, it' a good device and just requires SPI input. You can define your own characters so you can draw simple graphics/sprites, if you got really creative you could reprogram the character data on the fly to draw anything you wanted although the communications speed would become a bottleneck. That and a loss of sanity.
Aside from that, there has been stuff on Hackaday.com where people have written software libraries to do video output in hardware from very low-spec chips, although it could be a bit of a labour of love.
The "Maximite" project (PIC32 based) uses an plain SPI output port to output a bit stream at the correct frame rate to produce monochrome VGA @ 480x432 or monochrome composite @304x216 (512line 50Hz). If you're up for a challenge I can't see any reason why you couldn't do the same with the Coldfire QSPI module.
I'd hope anything a PIC can do a Coldfire can do better
Off the top of my head, the CF has DMA & lots of timers, so you could have an area of RAM which the DMA constantly streams out (this may be via QSPI pin or just a timer/GPIO pin) plus a sync signal every line/ frame (DMA finished / wrap). I'd hope that with a bit of thought you could set that lot up and then just leave it running in the background with relatively low CPU overhead.
I've seen MAX7456-style functionality recreated using a CPLD and shared RAM chips but it wasn't pretty and the hardware was expensive, on the plus side graphics would have been possible. Part of our current project was to ditch the CPLD setup though, so I never played with it.
The CPLD was syncronised to a PAL/NTSC video signal, and used 2 bits per pixel read from RAM to control a video buffer circuit which either passed the video, switched it to WHITE level or switched it to BLACK level. The micro would write to the RAM using stored character patterns and calculated locations. Greyscale would have been a simple enough expansion but I'm not sure about colour. With a VGA or similar RGB-separated system it all gets quite easy.
It's worth having a look back through the history of computing to see how early home computers etc. managed to generate video, most of them are well below the performance of the average Coldfire these days, and custom hardware can be blown into a CPLD. One nice trick used in the Amiga computers was to run the CPU/board from the video oscillator or a harmonic thereof which made all sorts of things easier.
Another one for reference:
Retrieving data ...