PDA

View Full Version : Performance (and other newbie ?'s)



DogP
01-31-2007, 04:13 PM
Hey,

I'm new to Propeller, but I'm familiar with microcontrollers, programming, etc. What I'm looking for is a good way to get TV and/or VGA output from a framebuffer stored in RAM (would be external to the Propeller). I've looked at a bunch of products to do this, and for the most part nothing has been powerful or cost effective enough to do this. I'm just a hobbiest looking to learn something new and create a video output that I've been wanting to make for years :) . Looking at the screenshot of the racing game on the Hydra, it appears that this may be able to do what I want.

Anyway, I've looked through some documents and searched the forum, but I haven't really seen anything about the performance of these chips. Ideally, I'd like 50 frames/second, but I realize that there's a lot of data to be passed, but 25fps is really the minimum that would be useable. The buffer is about 20kbytes (384x224x2bpp). How fast is reading data from the I/O pins to internal memory? The data is transmitted sporadically at 20MHz, I assume I couldn't read the data directly into Propeller's memory at those rates, correct? I'm planning on using some simple logic chips to write it to SRAM, which can then be read and output to a display at the microcontroller's pace. Spin doesn't look too difficult to learn, and I assume I'd probably need some routines in ASM, I'm just wondering if this is even remotely possible.

I'm familiar with wiring circuits and everything... what's the recommended kit to get started? I'd prefer to get the DIP package and wire everything myself, since the demo board w/ the audio and everything is a waste of important I/O pins for me, and I'd like to be able to easily replace the chip if I fry it (like I've read happen to a few people). Is the education kit the way to go, or the DIP plus? Or should I just buy the bare chip and order the rest of the parts w/ my next parts order from Mouser? If I get the kit without the USB connection, how do I interface with it? Do I just need to rig up a serial cable, or is the USB adapter required?

Thanks,
Pat

Ym2413a
01-31-2007, 10:19 PM
Try a PropStick. It's DIP and it has the EEROM and serial interface right on it.
You could have one COG read commands and data from the In/out Pins and write it to HUB RAM. While another COG could output the video.

Something that isn't all that hard to do.

DogP
02-01-2007, 03:30 AM
Thanks for the suggestion... I'd prefer to get the seperate components though since space isn't an issue, and if I decide to use another (or several more... they look to be pretty addictive :) ) for other projects, I'd rather not have to keep buying the $80 all-in-one package.

I was reading another thread and FIFO memory was suggested... I didn't think about that before, but that probably would be most suitable for my purpose too. It'd save having to use a counter to increment the address, and it's dual ported so I can read it as it's being output, and it would simplify the timing between the output and the Propeller.

But does anyone know the speed that these can transfer data? I've got about 20KB that would need to be transferred in 10ms, and all of that data is output in 5ms (and then there's a 5ms wait before the next cycle)... would the Propeller be able to keep up with the output (so I'd only need a small amount of FIFO memory), or would I need all 10ms (needing about 10KB of FIFO memory)... or wouldn't it be able to handle these rates?

And for video output, is just one Cog typically needed, or would I need to use several? I'm just trying to figure out the most efficient way to do this.

Oh, and I found the answer for the USB/serial cable.

Thanks again,
Pat

Mike Green
02-01-2007, 04:26 AM
With an assembly language routine, the Propeller does an instruction every 50ns (with an 80MHz clock/5MHz crystal) and a block of data can be transferred with 6-12 instructions per byte typically so the Propeller could certainly keep up.

For video, it depends on what kind of video and what resolution. TV takes one cog. Low resolution VGA takes one cog. High resolution VGA (1024 x 768) takes two cogs and also looks better (see Chip's tiled VGA driver).

DogP
02-01-2007, 06:10 AM
Awesome... thanks for the info. I've just gotta get my hands on one of these so I can start playing :) . The resolution I need is only 384x224 (x2bpp monochrome) pixels, although there's 2 displays (for 3D), so eventually I'd like to be able to show both in red/blue or alternating w/ shutter glasses, but I can worry about that after getting ANY sort of display. The problem is the display is drawn top to bottom, then left to right, so the scan direction is rotated from the TV's scan direction. If it's a problem, I can just draw top to bottom and rotate my TV though ;) .

Thanks,
Pat