Why mod.. when you can make?

User Tools

Site Tools


blog:gpu_in_action

Table of Contents

GPU in action!

Everything is running quite nicely! *high 5!*

Looks like the rev1 pcbs have a couple very minor issues, easily worked around and easily repaired if I do another run.

  1. Power: pcb has the power-switch rotated in the schematic so the toggle doesn't work.. but as its square (if you clip off unused pins) is easily mechanically worked around. Easily fixed for rev2, if we do a rev2 of these individual pcbs
  2. GPU: In the JTAG ISP header for flashing the firmware, the reset pin needs to head to main reset instead of where I have it going now - JNTRST, which I mistook for JTAG reset when I laid that piece down. Using a jumper from the breakout pins from the JNTRST to RESET fixes it, so good enough for a prototype.. and good to know planning ahead to expose all pins to breakout paid off day zero! So easy workaround - a jumper wire (“bodge”) and easily fixed for rev2

As to 'rev2' .. the plan is to merge most of the little pcbs into one larger pcb down the road, rather than do rev2's of each of the little guys. We shall see if thats the plan later, or if larger pcb costs outstrip the cool factor of having a single awesome board.

So all is good! The power pcb is working nicely providing clean 5V and 3.3V (and the Vcc/GND's), and conveniently masks out spikes from my bench power supply. (Bench power is set to 9V, but when you turn it on, maybe 30% of the time it'll spit out 15, 20, even more for a millisecond before it settles down. The power pcb 7805 swallows that spike just fine.)

The GPU is generating VGA right now .. took a couple hours to populate and test (and figure out what was going on with reset) , and everything is working a treat! The firmware code needs a lot of work of course (its just test code to prove the image generation works), and next step is to hook up an atmel to act as the cpu and drive the VGA board as its supposed to, a more formal test (and nailing down of some graphic protocols, etc.) Good times. ie: rev1 GPU is expecting to take input durection, during VBL (vblank), via serial, i2c, or breakout pins (which could be RAM bus, or a bitbanged protocol, or whatever.) Serial should be easy to set up - certainly is on the atmega's, and takes only 1 pin (the gpu header supports the other serial pins of course, for biway communications and all that.) So a minimum breadboard – atmega644, 4 power wires, 2 caps, and 1 wire from atmega TX to GPU's serial RX protocol line, and then start writing scrappy little video demos :)

I'm very pleased the pcb's work well.. I've only done 3 pcb layouts (still a noobie) - but all working nicely and the GPU board being a reasonably complex design. Fully manual routed (autorouter woudl fail due to complexity, and Eagle's autorouter makes a spaghetti mess at best anyway), with a fair number of via's to route all those microcontroller pins. Crom only knows why the CPU's don't group pins together.. why are PA or PB etc spread all over the place nearly at random? The atmega's get that right, with each quadrant of the chip nicely lined up. (Must assume the pinouts make sense for VGA or higher pincount, but the QFP64 STM32F4's are just a mess that way. Still, routing for-the-win!) I've learned some tricks in Eagle and nolonger have concerns about doing a double sided pcb mixing surface mount and through-hole components; Also of note - I've been limiting myself to the QFP64 STM32 part but for a full shared bus with CPU (such as z80 etc), I've been tempted to go for the 100pin variation .. much more GPIO space to work with for the address/data/control busses. No problem now that my confidence is there. (And really, I've historically done a lot of prototyping on breadboard and perfboard, which is very fun but can be time consuming; at this point its fast enough that for any complex circuit without a large number of custom need to create components it is probably better to lay it out on a pcb and send it off to fab. For $13 for 10 of them, its hard to argue!)

GPU in action pic, and video, attached!

Discussion

Enter your comment. Wiki syntax is allowed:
 
/home/skeezix/public_html/zikzak.ca/zikzak.ca/dokuwiki/__data/pages/blog/gpu_in_action.txt · Last modified: 2017/11/11 02:58 (external edit)