PAL? And character driver.
potatohead
Posts: 10,261
I'm working on some video related things and recall a PAL driver along with a basic character driver produced for one of the earlier images.
Anyone remember who, and has that code been updated for the latest?
Anyone remember who, and has that code been updated for the latest?
Comments
This is the only PAL driver I remember.
http://forums.parallax.com/showthread.php/147591-PAL-NTSC-Interlaced-Non-interlaced-Composite-Component-driver
This might help
P2 VGA Text Driver
This video hardware is kind of awesome. Just got done with the NTSC basic composite parameters. Drove it all the way up to about a thousand pixels in a narrow region of the screen. No worries.
Of course, on composite we can't see 'em all, but the detail just degrades nicely, on par with modern game console hardware. My older amber screen works up to about 800 pixels though. I like how it really doesn't fail on odd timings, like 437 pixels, or some odd border timing. Just works. Doing this kind of thing on P1 was a lot harder.
When I get the NTSC done with the common options all done, I'll post up the WIP as it will be useful. Eventually, if we want to, we could render out the same display to all the different devices. For sure on basic displays. Dynamically drawn displays will need more work, but the basic bitmap, tile, character type displays should be no problem.
Did you get a character driver of any kind (PAL/NTSC, even VGA) off the ground?
I have a "digi box" that understands such things. It has been gathering dust on the shelf for many years now.
Certainly there is not a screen in the house that understands that old stuff.
Why are we even thinking about it?
1. TV displays have low horizontal sweeps. This maximizes the time to do things.
2. Many cheap displays are out there and work well with a good signal.
3. USB video capture devices will generally render 640x480(400 NTSC) very nicely, which means a nice development window on the dev machine. I like this personally a lot more than I do serial for many cases. Apart from that, it can be a great prototype method for other things. I very regularly run a simple character display, keyboard or simple game controller input on a P1 to debug and prototype. It is just simple and portable and more interactive than serial is.
Don't get me wrong. Serial is awesome. I have gotten setup on it and like it too. My favorite is two prop plugs and a terminal like putty, etc... that performs well. It is just nice to have choices.
4. Composite video isn't going anywhere soon. Frankly, TV displays are more capable than people give them credit for. A big part of that is poor signals, and or other limits that really don't need to be there. Modern devices are impressive. It can be a single pin.
5. Done right, in software on the proposed design, offers compatability with P1.
6. Also done right, Component takes really good advantage of HDTV devices. No IP / encryption / licensing issies. We do whatever we want.
7. Games.
I think the decision to drop the color management and just do VGA is the right one. Doing this in software with DACS will deliver a great signal, useful to people, and one that does not impact the design path. Maybe we can drop the other video system into a future design. It is really something! Not needed right now though. Just a shame to waste it.
8. TV speeds and resolutions are very well matched to the proposed design RAM and speed capabilities. So is 640x480 VGA, and of the two, a good TV display can present better than a too precise VGA display can for a lot of things. Nice choice to have.
9. I like TV, and think we ought to have a nice signal option. Again, with DACS, we will get one very seriously improved over P1, but not as good as the P2 design was. That all shakes out to be good enough for a lot of applications.
10. The analog domain offers tricks and some really cheap optimizations in terms of RAM and compute speed needed to do some things. Plus, again we get to do whatever we want.
11. Legacy / retro fit type projects can very likely drive an appropriate display saving time and money over including a new display.
12. Retro computing. I have a plan or two that will be in the TV domain, so long as we can actually get a design through fab befor the relevance window on it closes... It has been years. Fun years, but...
This screen I am using now understands VGA.
I imagine that in a years time I cannot buy such a screen.
What then?
If VGA really goes away, then we do component, which performs just as well, and it has the lower sweep frequencies TV does too. Use TV displays instead of VGA monitors.
This is part of why I like TV. Most HDTV sets can take composite and component, and the resolutions and signal input options range from a basic monochrome, slow signal through 1080p (i on many), which can deliver any resolution and color depth people want on component.
The TV is the new monitor, in other words. VGA may well be in a pinch. No worries. When Chip said VGA support only, he is referring to a simple RGB display with sync. So long as it's done the way the P1 does it, with a software loop driving DACS, we can always do TV, component and composite.
Really the difference is color management. TV colorspace is not RGB, which means a few things. One, it means packing pixels into bytes isn't as clean. We can use lookup tables, or just store pixels differently. End result is the same, it's just about what is easiest for people.
TV has the attribute of the monochrome signal being seperate from the color one, except for composite, which is all mashed together. Component has a momochrome signal(Y), and two color difference signals, Pb, Pr, and that means some nice things!
We can trade easy pixel packing (RGB) for a simple one pin monochrome high resolution display that will work on a ton of devices! We can also do things like run color at a reduced reolution from the intensity, saving RAM, etc...
Simple converter chips can take VGA, or component signals and translate them to HDMI. We avoid those hassles, leaving the people who make those chips to deal with certifications, etc...
My computers use LCD displays as I gave up desktop computing years ago. Those computers will output VGA, but they also do display port and or HDMI. An adapter cable or two gets me DVI, etc...
I won't ever buy another VGA display. That is the pinch!
I will buy TV displays, and I very regularly use them as computer monitors too. Thus, composite and component aren't going anywhere, while VGA could.
Heck, a good HDTV that is freaking feet in size can be had for what good VGA monitors cost. And I can get a stereo capable one too.
There's a huge, underestimated market for the ability to do legacy stuff in an enhanced way. Develop cutting edge applications but be able not only to work in with new installations but be able to retrofit as well.
There's a particular German manufacturer that puts out beautiful, nicely engineered automation products. I'd happily use them, their premium price is in my opinion worth it, but they keep dropping the legacy interfaces in favor of the latest. They'll be onto hdmi now, or some miniature version of it, no doubt.
Don't get me wrong, for completely new designs the newer interfaces appeal. But there's a whole other market out there, and they're not comparing the price you offer to what you can purchase from the local electronics retailer.
I have made a Text driver for the latest P2 image.
It works in a 50% task with 2 parallel 25% task, one of them in hubexec mode. All this on a 80 MHz P2 emulation with a single cog !
With my new Flatscreen TV I get sharp 80x25 characters via NTSC (this is 80*8 = 640 pixels horizontally). When I bought the new TV I had to search a bit to find one with all input formats I want. This one has HDMI, VGA, Component and Composite (NTSC and PAL). The newest TVs (with Smart and 3D and such) had all no VGA input anymore, but for sure Composite (all TVs in Europe have a SCART connector with Video In).
It will take some time to find the right files, try it again, and clean the comments before I post it here, so I will do it only if you or others have really a use for it. I mean the P2 in this form will never exist as a chip, only in an FPGA.
Andy
Did you compare Component vs NTSC displays ?
Once the P2-reSpin settles down, I'm sure designs like this will be very useful reference points.
In part, this is a connector problem.
I've seem some Asian small monitors supply a VGA-Mini-USB wiring adapter cable, and a quick look find also these
* USB-A to 3 x RCA
* USB-Mini to 3 x RCA
* Micro-USB to 2 x RCA
- many quite cheap.
Perhaps a Parallax Custom Cable, that is USB micro/mini could do Mono Component Video (USB-Mini to 5 x RCA) , or Stereo at a pinch using the case as a pin ?
That would be very much appreciated if you could dig it out. I definitely have a use for it.
If its only me interested, perhaps just PM it. No matter what state its in, it will be miles better than what I would do!
I think the techniques involved will be useful with whatever silicon appears.
I see VGA lasting longer then composite. While my "crystal ball" is normally wrong about where technology will go I think this will be an exception. The reason I see VGA lasting is that most newish TVs and monitors have it as an input. Interestingly enough "TVs" tend to have hdmi but no dvi and monitors tend to have dvi. Having vga, hdmi and dvi on a single unit is rare! However vga tends to be the common denominator available on both TVs and Monitors.
There are two drivers here, one is Physical space, and the other is Chip sets.
There are single-chip LCD 'digitizers' in Asia, that take PAL/NTSC composite, and also VGA.
Once you have a chip level solution, the capability is not really going to go away, but the Physical connectors may not be fitted, or they may change (see example above of a MiniUSB connector, used for VGA signals - cable adapts to HD15 )
I see such one-chip LCD 'digitizers' now include HDMI, like this bare-bundle on ebay
http://www.ebay.com.au/itm/HDMI-VGA-2AV-Driver-controller-board-7-inch-Lcd-l-for-vehicle-car-Raspberry-PI-/121305598541?pt=AU_comp_monitor&hash=item1c3e608a4d
and this one has VGA and Composite and also Component YPbPr via an optional cable
http://www.ebay.com.au/itm/8-TFT-LCD-COLOR-VIDEO-TV-SECURITY-CCTV-MONITOR-PC-VGA-YpBpR-800-600-pix-CAR-/320974010638?pt=AU_Car_Parts_Accessories&hash=item4abb8ab90e
This 8" one has no strange cables, and adds BNC to a connectors-in-case design (800x600)
http://item.b-billion.com/wai/YW801/photo/large/ports_iso.png
another one claims an IR Audio transmit, for drive to headphones. (that also has case-mounted VGA and HDMI)
This 10" one has 1024 x RGB x 600
http://www.ebay.com.au/itm/NEW-Car-HD-10-Digital-Standalone-Headset-Stand-alone-HD-Monitor-Screen-VGA-Port-/321209101311?pt=AU_Car_Parts_Accessories&hash=item4ac98debff
The number of characters per row is somewhat configurable. Every character takes a word which defines ASCII and color in RGB 3:3:3 format. The background color is global definable.
I also attached a version of Baggers fire algorythm integrated into my own bitmap NTSC driver. The fire effect is calculated in a task in hubexec mode.
Andy
@jmg, I compared composite and component with the prior version of this driver. There is no material signal difference, just instructions and tasks, etc....
Use of the DACS really improved composite! I got sharp 80 column text too, and that goes right to a high bandwidth signal. It appears Chip just clocked the color pixels into the modulator and let the TV and signal limits filter things for a very good result. Little to no ghosting as we see on sharper edged video systems like the P1. IMHO, that video circuit was pro grade.
Component is of course pixel perfect. Like VGA, nice sharp pixels, no issues. The composite was the best I have ever seen out of anything less than pro gear.
If we ever get another bite at the apple, I would love to see this circuit in silicon.
Personally, I think the nice DAC resolution helps a lot, and I'm hoping we can get a software result in the same range, Ordinary TV's can do 80 chars composite, even fairly old ones lacking advanced filters.
My HDTV loved this composite signal. Ran a test with P1, and potatotext 2 which does 80 color chars, and the HDTV could resolve most color combos even with the P1 signal, NTSC, standard def, interlaced. Impressive. Th P2 circuit rendered near perfectly on even extreme color changes. Not sure how that happens... but it does.
Re: VGA
Yeah, it could go either way. Agreed, and I'm just going with my experiences. Use of alternative connectors seems a good trend, and I'm fine with that.
I do see component as superior to VGA in that it requires fewer conductors, unless sync on green or some such option is used on VGA like SGI did. It is also superior in that one can get low sweeps and high pixel clocks and even digital devices will render most combinations just fine. These were removed from VGA a while back, actually when EGA / CGA fell off the map. The slower sweeps are a bonus for many things, and of course co ponent can do a great monochrome signal on one pin. Many devices will display 6-800 pixels at 15Khz sweep! All sorts of fun things can be done with the color difference signals too, but that's me.
We shall see how it goes.
I just hope we get a bigger waitvid, so we don't have to pepper the display with them at higher resolutions.
Now I'm debating whether to take a trip to work to retrieve a de0. Look forward to looking at this soon.
What is brilliant in my eyes is this video generator with all that easy to use modes. And the Hubexec mode that runs at nearly full PASM speed, as long as you use it only in one task.
The poeple that have never played with the FPGA emulations can be happy because they don't know what gets lost with the change to the new P16X design. I see no chance that the P2 design will ever make it into a chip. 65nm is too expensive for Parallax, and 4 cogs is not enough for many users, also if we also would get 16 tasks. The only way it could happen is to put one or two P2 cogs together with a number of simpler cogs on one die, but that idea got refused by the argument that it is ugly. How can you argue against that.... ?
Andy
Maybe we can see it on some future run.
How would this port to the P16X ?
eg - If we assume HubExec is in there (based on Chip's comments) but Tasking maybe is not, does that mean ?3 COGS in P16X ?
The other way it may come back is if there is just a single "hub" video generator. Let's see how the shared math block works out, perhaps there is some merit in that approach.
The video engine does the hard work, and it has color management, and it's fast, etc...
On the current design, we will need to generate the chroma signal, optionally mix and scale it in software. And we will need to see what Chip does with WAITVID. Maybe he will leave some of the modes in! If he does, that helps a lot. If not, and we get a simple, "fetch 'n stuff" through the DACS, then a driver like this will need more software.
I would be disappointed with a single video generator. They get used in a lot of ways, and there are times when having more than one display makes a lot of sense.
However, if we aren't futzing around with tables and such, these software drivers will be plug 'n play, no worries. Something to think about.
FTDI have announced more LCD support options : This time they included an AVR on the PCB.
http://www.ftdichip.com/Products/Modules/VM800P.html
My P2 VGA text driver will require a complete re think now that AUX ram and cached hub reads are gone too. Hub slot sharing would definitely assist here in
font lookup and colour conversion. At 80MHz the driver only just fits into the time window available now, even with the P2's enhanced power.
Fingers crossed the new video system fills the gap.
Cheers
Brian
If you had HUB Quad Read, and Hub Slot allocate (Primary:Secondary) via table and a part that was ~160MHz, how many COGs would it (could it?) spread into ?
The advantage of Quad reads would be reduced in the post processing of the data into the format required.
To split the driver into multiple cogs requires a different technique that I haven't looked at closely yet.
Need to wait and see what "Mr Chip" delivers in the toy department
Cheers
Brian