Shop OBEX P1 Docs P2 Docs Learn Events
Kiss pp vga++ — Parallax Forums

Kiss pp vga++

davidsaundersdavidsaunders Posts: 1,559
edited 2011-11-10 11:38 in Propeller 1
A simple GG board to provide 8BPP color at resolutions up to 800x600, with speeds that are usable for good video games.A little background:Must rewrite.Concept:Must rewrite.For communication:The prop will send drawing commands to the video Prop by way of a 6 bit bus on the lower 6 pins of the 10 used. The 8th pin will be a data clock (managed by the video Prop), in order to provide a transmit rate. The 7th pin will be a /RDY pin that will go low when it is OK to transmit.HW used:16 x 74HCT244 for disconnecting the SRAM data bus from the Resistor DAC and bank selection.16 x 32KB 10ns parallel SRAM.32 x 2.2K ohm resistors.2 x signal diodes (most small signal diodes should work well).1 x VGA 15pin MiniDSUB.Some wire :) .Breadboards (for Prototyping and testing)Coper Clad board (size to be determined)FeCl (DUH).Some Capacitors (will update, I always find more needed somewhere when I check with the scope).Pins used:To be defined. I am using Prop pins 0 through 7 for now, though I am not certain of the pins commonly used by other devices, as such as I look into this I may change the PinSet.Commands:Each command is sent as the first 6-Bit value in the data from the Prop, or n the case of the command 11, the first two 6-bit values, fallowed by its data. Those of you that are familiar with DR-GEM will recognize the numbering used, the parameters are in the same order as they are in GEM, each IntIn value taking two 6bit sends (and is thus 12bits).Functions:6 = PolyLine8 = DrawText9 = PolyFill11,1 = FillRect11,2 = Arc11,3 = PieSlice11,4 = Circle11,5 = Ellipse11,6 = EllArc11,7 = EllPie11,8 = RRect11,9 = RFillRect12 = SetTxtSize13 = SetTxtDir16 = SetLineW17 = SetLineColor22 = SetTxtColor25 = SetFillColorInput and other help welcome. Phase 1 step 0 (get the parts togather):
GGVGA001.jpg
Phase 1 step 1 (wire the Prop [representing the GG] to the AVR):
GGVGA002.jpg
1024 x 768 - 109K
1024 x 768 - 76K
«1

Comments

  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-12 19:11
    Phase 1 is breadboarding.

    Phase 1 step 0 (get the parts togather):
    GGVGA001.jpg

    The sockers that the SRAM is sitting on are going to be used to make a breadboard adapter for the SRAM
    1024 x 768 - 109K
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-05-12 19:39
    This looks very interesting. How much memory does the ram chip have and what is its clock speed?
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-12 20:20
    10ns, 512K by 8Bits (512KB).
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-13 07:00
    I updated the top post for clarity.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-05-13 07:23
    I'm not an AVR guy, but this is certainly interesting!

    So far the contest has got two Propeller to video setups on the table. Pretty Cool.

    OBC
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-05-13 08:04
    Re the updated post #1, this sounds so cool.

    I've pondered a total hardware 74xx chip solution but the atmega makes even more sense as it can talk intelligently to the propeller.

    I very much look forward to seeing a demo. I see no technical reason why it won't work if you have a ram chip that fast. And when it does, I think there are all sorts of possibilities to improve the performance by altering the coding balance between the atmega and the propeller. Ultimately who knows, the propeller probably has enough smarts to act as an intelligent video processor eg draw this circle here, draw this sprite there and then move it. And the atmega handles the heavy lifting.

    And it will be "GG compatible"?

    How many bits of color depth are you proposing again? (eg total and/or, how many bits per color)?
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-13 08:38
    Dr_Aucula:
    I will be using 4 2 bit DACs to produce 8BPP color directly. This will be 2Bit each Red, Green, Blue, Intensity.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-05-13 17:29
    Sounds good. If this works, would there be scope to use two ram chips side by side. Could that give you 4 or even 5 bits per color?

    I look forward to seeing photos of the breadboard as it takes shape.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-13 19:01
    Dr_Aucula:
    Yes you could use 2 RAM chips to achieve 4 bits per color value if you wanted, though you would only be able to write to one of them at a time with the ATMega164P (which I am using for this) due to only having 32 IO pins.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-14 08:28
    I updated the top post to include a reference of the commands that are going to be used.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-14 09:36
    Phase 1 step 1 (wire the Prop to the AVR by way of a 74HCT244).
    GGVGA002.jpg
    1024 x 768 - 76K
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-14 13:39
    Must apologize about things going a bit slow at the moment. I am in the process of hand masking Coper Clad board to make a breadboard adapter for the SRAM. Using the sockets and wire would be to difficult to hand solder, so I am doing it the easy (though a bit slow) way and making a PCB by hand.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 08:16
    What pins should I leave alone for other commonly used Propeller Platform modules??
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 09:55
    Before I go and etch a PCB, will someone please verify that my pin spacing on my PP template is correct?

    Here is the template that I use (never had to make sure that it matched before):
    0515110950.jpg

    Standard 0.1 inch perfboard.
    1024 x 768 - 81K
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 14:22
    So that it is knowing that progress is being made, Here is the status on the in progress board layout:
    PPAVRVGA04.jpg
    1024 x 768 - 61K
  • SapiehaSapieha Posts: 2,964
    edited 2011-05-15 14:25
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 14:33
    Sapieha:
    Thank you.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 20:14
    **** it!

    I am just going to use a Propeller.

    The AVR is to hard to work with in this type of setup, doing communication AND video AND interpreting commands, this is what got me into the Prop to start with, doing multiple things in parallel with out interrupts, and being able to do them in a truly asynchronous fashion.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-05-15 22:20
    I am just going to use a Propeller.

    With your 10ns chips, I wonder what you could do? That is fast enough to clock out data for a DAC. You just have to get it in there. I've pondered two ram chips - clock data out of one while the other is filled up and do them alternate scan lines on the screen. Maybe two props or ?? one prop. But definitely two (or more) ram chips.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-16 05:57
    Dr_Aucula:
    I Would like to do this with two ram chips. The trouble is that I am using a DIP40 Propeller and a DIP 74HCT244 as well as a DIP latch, this does not leave much room for the RAM. In order to use two chips I would have to use a great number of jumper wires (to save space used by traces).
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-16 05:59
    Maybe if I had a QFP Propeller, and SOIC logic gates, though I do not have these at this time.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-11-09 19:37
    I am still around. I have made a lot of progress that I wish to post, though I have no longer a reliable internet connection. Most of my progress has been with the vidio output as well as some MFM floppy disk stuff. Every thing else is just to easy :) .
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-11-09 23:10
    Have you got a picture on a screen yet? This all sounds very interesting. How much are your 10ns ram chips?
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-11-10 02:13
    Re - MFM floppy disk stuff

    I had held onto a couple of the 3.5" drives with daydream wish to get something else retro going. Then I found that the disks were a right pig to get, and the box of my old ones had suffered jetwashing by some roofing contractors.

    I will have to use a SD along with an audio track "wir- wir, scuff- scuff, tic- tic".
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-11-10 07:00
    Toby:Here there are still a few retailers that carry 3.5 inch HD/DS floppy's and the drives are a dime a dozen (ok about $8.00 USD each).Dr_Acula:Sorry I will have to take some pics with my phone camera. I have been so wrapped up in getting stuff done and documented that I have not been thinking about taking pics.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-11-10 07:05
    Dr_Aucula:I can no longer find the 10ns DIP chips on Arrow. The 15ns equilivent 32KB (256K by 8bit) is $1.36 USD, see:http://components.arrow.com/part/detail/42623086S7937172N4653And I am no longer using the 512KB devices (resoldering them when the design changes is a lot of work).
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-11-10 08:14
    I thought I had seen those SRAMs used for VGA before, here is the link.

    http://www.embedds.com/cpld-8-bit-vga-graphics/
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-11-10 08:22
    Hmm.. that link doesn't seem to work

    http://www.ulrichradig.de/home/index.php/cpld/8bit_c_graka (but in German)
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-11-10 09:57
    Toby:Yuck CPLD. I highly prefer microcontrolers for this kind of application. Especialy using the Prop and having extra cores to do a bit more. Not to mention that it is a lot easier to reprogram a Micro than a PLD.
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-11-10 11:38
    Yeah, I know.

    It was just that I happen to have some Xilinx chips to play with. I thought that the artical could show if it is neccessary to have dual SRAMs for timing or other buffering reasons.

    The original link was lifted from an English translation but when I tested it off of the forum, for confidence, it seems to have stopped working, so hence the dirrect reference that followed.

    (Anyway what's the problem with having to have a parallel port and several GB of spare HD space ??)
Sign In or Register to comment.