I am planning a little hobby-project designing an embedded board around a ColdFire-processor. (I haven't quite decided exactly which processos yet though...) One thing I would like to do is to be able to drive a VGA-display directly from the board, so I need a VGA-controller. Are there any good and cheap VGA-controllers that are available for purchase online? Any suggestions on a suitable controller, and where to get it, would be greatly apreciated...
What are your other system constraints? If power is not a big issue, and this is not intended for mass-production, then your easiest route is probably to use an ISA VGA card. There are not many embedded-friendly VGA controllers, and they're hard to acquire and hard to home-prototype with. I would not consider any them "hobby-project" material.
It is MUCH easier (two orders of magnitude, in terms of time wasted) to take a micro with a flexible TFT-LCD controller, put DACs on the outputs, and play games with the dot clock and sync timing registers to drive analog VGA. This has been done, for example, with the Sharp LH79520.
My advice, for what it's worth: Don't bother with ColdFire, it's a legacy architecture. Go for something with a future, like ARM or MIPS. MIPS if you're an ASIC maven, ARM if you intend to use standard SoC parts.
Are there ANY "embedded friendly" VGA controlles that are easily available? I see that ATI, for example, have some controllers intended for embedded use, but I am not sure where I could buy one.
In what way are these chips hard to home-prototype with?
In what sense? Motorola keeps developing the ColdFire and I thougt the latest ColFire processors were quite powerful and modern. Is there any particular reason why you consider it "old fashioned"? I am not familiar with all the different processors, but I was thinking about the ColdFire because at least I know that some of them have a lot of nice features, like for example integrated ethernet-, SDRAM-, USB-controllers, etc. And the core itself also have for example floating-point, MMU, etc. Basically everything you need. If you mean I should consider another architecture instead of ColdFire, can you give me some examples of some processors you mean would be a better choice, and which have all of these nice features.
PS. I have a copy of your book, "Embedded system design on a shoestring." It's a great book...
Well... The short answer to that is "no". The longer answer to that is "no, but there are some appliances you could repurpose or scavenge".
Most VGA controllers, period, are PCI-bus (or AGP), which makes them fantastically difficult to lash onto an average microcontroller. Most of them are BGA parts, and hand-prototyping that is NOT a job for the faint of heart. I've done it, but I'm not proud of it. The parts that are ISA-bus (or similar) are very limited-production, limited-audience devices. For example, Epson makes some chips that are suitable, and they're available in QFP which is possible to home-prototype, but you will have fun trying to find someplace that will sell you in less than
1 tray (50pcs) quantity. I believe (it's been a while since I was in the market for these parts...) that Oki and perhaps also NEC make suitable devices, but last time I tried to get anything out of Oki I couldn't even find someone who knew that they made the particular parts I was looking to sample.
You'll also have considerable fun trying to get the chip working, since the sparse application notes are either incomplete, ambiguous or plain wrong (in Epson's case, anyway - maybe they cleaned up their act since I last looked, but anecdotal evidence suggests they haven't).
By and large, consumer electronics don't use separate VGA controllers. They use on-chip hardware in the main SoC to drive the display, whatever flavor it might be. So there isn't much market for such devices, and consequently it's hard to get them at reasonable price in small quantity.
What is your reason for wanting an external VGA controller, by the way?
I'm sorry, I had a bit of a brain hiccup there. When people say ColdFire, I automatically equate that with 68k parts. Ignore what I said.
Okay, well, your definition of "hobbyist project" is pretty far advanced of mine, then :)
ATI is very hard to deal with. It took us six months of wrestling to get datasheets. Never managed to get actual parts for sampling, and we were promising several thousand pieces of orders. I hate to say it, but the two people that are easiest to deal with are Chips and Technologies (now Asiliant), and Epson. The downside to Asiliant's parts is that they are really ancient, and you'll probably have to do some finagling to interface them to current micros. Really they are for legacy applications. But they are very generous with samples, and their app notes sort of mostly work.
I dunno... I still think you're approaching a very difficult problem. I've had a lot of experience trying to get high-resolution (1280x1024x24bpp was my target) displays integrated onto embedded systems - though, my focus was on LVDS LCD interface, not analog VGA. The ONLY cost-effective method I ever found was to buy an x86-based SBC with an appropriate laptop LCD/CRT controller on it.
With 24bpp at 85Hz, that's a about 470Mb/s memory bandwidth just to take data from framebuffer to the DACs.
So I'd say with a FPGA like Spartan 3, two 16bits DDR at 133Mhz (thats 1066Mb/s bandwidth ), I think it's doable.
With 1280x1024 that would be easier. 75Hz would be ok to have not too much flicker, About 120Mhz pixel clock, 300Mb/s bandwidth. With a singe DDR chip you'd have 566Mb/s bandwidth and should be ok to display like 30 fps.