PDA

View Full Version : HYDRA: SRAM Expansion



Michael Popoloski
02-17-2007, 05:25 AM
Hey Andre, any chance that you will release the circuit for your SRAM expansion any time soon?

AndreL
02-17-2007, 09:52 AM
Once I release the product then I will release the SRAM design with the product. Its all in a CPLD, so there's not much of a circuit, its all software in a sense, bascially though the circuit is the CPLD, the 512K SRAM, the EEPROM, and a bunch of LEDs (always need LEDs), plus the programming interface for it, so you can re-program the CPLD if you want to :) So the card doubles as a CPLD dev card a little bit, that's why I have the LEDs on it as well, they track the operations, etc. but also the boot configuration bits, thus can be used for indicators for CPLD experiments.

The boards should be back next week, if they work then I will do a run of them, and put them for sale asap, we can get cool demos later, more important to get the boards out there, so people cna start using the cart which is officially called the "HYDRA XTREME 512K CARD" :)

Andre'
·

mahjongg
02-19-2007, 07:55 AM
Andre,

My hydra just came in yesterday, and at this moment I am installing windows XP on my ancient PC, so I can run the propeller tool (I use a mac).

I am very curious how your memory expansion board works! I think it is the thing that differentiates between the possibility to write a simple game "demo" or maybe a pack-man clone, and a "castle wolfenstein" type of game on a XGameStation. Can it be used in combination with the VGA port? A quick glance through your manual learned me that the 8-bit port is shared with the VGA port.

Funny to read that you learned BASIC programming on a TRS-80 in the tandy shop, thats exactly how I learned it, I wrote a simple "pong" game and it was immediately snapped up by the shop owner, who to my amazement asked if he could save my program on a tape "for demo purposes". Alas, Tandy closed its shops in Holland several decades ago.

One of the things you can do with a memory expansion system is to emulate older computer systems, for example a TRS-80, (actually it would be one of the more simple systems to emulate, if you can get a Z-80 emulator going. Remember the games, like "weerd", "dancing demon" (not really a game though), and the many "space shooters".

Did somebody already design an analog (PC-type) joystick for the Xgamestation? If not, it should be a snap to design one. Just use a few 555 timers, and copy the old idea IBM stole (borrowed) from the apple ][ paddle interface.

If you use the memory expansion, is there still a possibility left to do some extra I/O ? A "loop-through" connector for example. Similarly, how do you handle other EEPROM plug in boards?

P.S. I'm Sorry, too many questions in one thread http://forums.parallax.com/images/smilies/rolleyes.gif.

Mahjongg

P.S.S. Okay, windows XP works, next I need to install a USB port card and the Propeller tool GUI, but thats a job for tomorrow.

Post Edited (mahjongg) : 2/19/2007 3:02:35 AM GMT

AndreL
02-19-2007, 11:05 AM
When you are using the SRAM you can still use the VGA if you like, but whatever goes to the data bus will end up at the vga port, so not a good idea. And yes, I remember the dancing demons very clearly, the graphics mode was something like 120x92 or something like that, very long vertical rectangles if I recall, I made countless pong, breakout, and lunar lander games with scrolling like scramble was my favorite to do. Anything that you could get away with the long vertical pixels not looking too bad.

And the board has no extra loop thru connector on it, I doubt anyone would care about plugging another card into it, plus the capacitance etc. from the edge connectors really makes the signals get ugly. However, my boards are super carts of sorts, so they have both the ram and rom on them. The idea is that on the super cart you would deploy a really big game, or app, or language since it has the memory for it to as well in eeprom.

Andre'

mahjongg
02-19-2007, 06:35 PM
Okay, so you can't display a VGA picture while using the SRAM, thats a pity because one of the uses for a larger memory would have been freeing up memory for a larger framebuffer.
I see a solution to the problem, but it would mean changes to the board (SMT soldering, not for everyone), and the VGA driver software.
If you take off the (74HC244 if I recall) buffers driving the VGA port and replace them with (transparent) latches it would perhaps be possible to latch the video data so afterwards you have the 8-bit port free for other things. maybe it's an idea for a next version of the XGameStation. At least, if my idea is possible to implement! I have not studied the VGA driver software yet, and my idea wont be possible if the video shifter counter directly controls the I/O ports without software intervention.

Well, you can still use the composite video port, most games would use the TV as the output device anyway.

I do understand the idea of a "super cart", with extra memory built in (it would not be without precedent), still I suspect the memory expansion won't be extremely cheap, so it would have been nice to have the possibility to have a replica of the plugboard connector on the top of the memory expansion carrying -only- the I2C signals for the memory cards.

Is it possible to disable the EEPROM on the memory card and use the socketed EEPROM on the mainboard? Changing the DIP-chip is not as convenient as a plug in board, but if you want to use another game with the memory expander it is still more convenient than uploading another program each time you want to change the game.

The TRS-80 had a "high" resolution of 128x48 (2x64 by 3x16). Actually, it used 64 characters of its characterset for a "mosaic set". Each of the 64 characters was divided 2-wide by 3-high into six "blocks" (pixels), with each character having another pattern of pixels being on or off. With them it was possible to form a very crude "pseudo graphics mode". Not great, but the gameplay of some of the games was still better than many games running on later hardware.

Mahjongg

AndreL
02-19-2007, 06:56 PM
That's right it was 2x3, now I remember. As far as disabling the eeprom, I could have it do that, but there's no diff in just loading the program that you have on the dip on the main board into the cart, if the program needs the cart then might as well put it with the cart in the first place.

And as far as games ALL console games from the 70's till now use the TV for display, so I think we are ok without the VGA :)

Andre'

mahjongg
02-19-2007, 08:24 PM
Ah, Not quite sure I understand the situation with the EEPROM,

my impression of the normal carts was that when you plugged one in it would disable the on-board EEPROM, and the EEPROM on carts are not user replacable as they are surface mount devices. If the memory expander uses a similar arrangement, how do you change the software that is started when you plug in the memory expander, -without- uploading new code to it.

okay, so maybe the EEPROM on the cart is not a surface mount device as in the other boards but a socketed DIP-chip, in that case there is no problem, or maybe the memory expander -does not- disable the EEPROM on the main board. In that case you can change the DIP-chip on the main board. Again, I'm not really sure what you are saying, do you mean you can still use the DIP-chip EEPROM on the main board with the memory expander?

I agree, TV out will be enough for emulating retro games, and I can forsee some really cool games (and demo's) with it.

Mahjongg

Michael Popoloski
02-19-2007, 10:38 PM
With this new expansion, will it be possible to have many more colors, such as having a few bytes per pixel? With enough RAM, that part shouldn't be a problem, although I haven't read the NTSC chapters yet, so that might still be a problem? What I am asking is, if you get more RAM onto the board, will that be enough to have higher color resolutions, or is the current color depth a limitation of the NTSC or the cog video hardware?

AndreL
02-20-2007, 04:16 AM
You just plug the card in and program the eeprom on the new card, just like anything. No one is going to remove DIPs to re-program things, you just re-load something. Its just like any of the other expansion cards. The only reason I put a dip on the main board is if someone came out witha 256K eeprom etc. users could at least replace that one, and if users just beat the hell out of the eeprom and it starts to get flaky they can replace. But, the idea of the socketed eeprom is NOT to remove the chip and put other programs in :) Its just to remove the chip for other purposes, if you want to reprogram the hydra, you download a new program into it. Then if you want to have 100 hydra's in the field and re-program them without a PC, you just take a mem card, put it hit hit reset, pull the card, and walk away, or put a single app on each card and use them like that. I use 50 cards here with everything on them. But, I find that 2 or 3 cards makes development really nice since it saves you reloading apps that you use all the time.

IF you look at our high color demos we have already achieved this, all of our high end demos use high color modes with more cogs, so we are blasting out one byte per pixel instead of 2 bits.

But, yes, with more memory you can always do more, but its not going to make programming the propeller any easier :) To achieve high color bitmapped displays is difficult at best, you really have to know you asm and parallel processing. But, as I said we have 2 engines with full documentation you can review to see how we did it.

Andre'

Graham Stabler
02-21-2007, 04:45 PM
Andre,

Can you say a little more about the CPLD, is this one of the Xilinx devices? I ask because I'm very interested in them but don't really know where to start, I want to interface a camera with some RAM so that approach might be ideal.

Graham

AndreL
02-21-2007, 05:26 PM
Its a lattice type CPLD, 64 logic blocks. You can program it with ABEL or Verilog with an ISP programming cable which you can make your own pretty easily as well. The thing about CPLDs and FPGAs is you have to pick your poison and spend a lot of time learning the tools and then its a bit of work going from a dev board to soldering one of them into your design. Some need external memories to load from, plus you have to program then in circuit or at least have the ability to.

But, with the SRAM card I will give the design for a home brew programming cable, plus show how to load the behavior into it, and re-program the chip.

Also, very shortly I am releasing a "Programmable Logic Starter Kit" as well, there are a ton of CPLD/FPGA dev kits out there, but ALL of them have the worst docs I have seen and no single person is in charge of one cohesive document showing how to install the software, and then a bunch of simple demos that do something ending with something cool like driving video. So look for that as well.

But, I have worked with Altera, Xilinx, Lattice, Atmel, and others, so after playing with so many FPGAs and CPLDs, its kinda like windows programming, most people think its a nightmare, but I can show you 20 lines of code to make a full windows app in C, so I am going to try and show people just how easy it is to use CPLDs (and fpgas) and give people an exact tool chain path that's very easy, so they can put these chips into their projects immediately.

Andre'

Graham Stabler
02-21-2007, 07:26 PM
That's very interesting to hear about the starter kit, I can imagine that could be very interesting. CPLDs anf FPGAs are something I understand the basics of from reading wikipedia etc but I guess my lack of digital electronics knowledge makes me marvel when you say you can generate video from one. Really exciting stuff, I look forward to both ram module and the starter kit.

Graham

Jamesx
02-21-2007, 09:50 PM
Andre'

We are working on a project that will include a Xilinx FPGA. Current plan is for a Propeller to be the main organizer, sending data to an FPGA for FFT work. The FPGA programming is being done by an outside consultant, but it would be great to learn enough to follow along.

Thanks in advance for the tools and explanation of how this all works.

Jim C

Paul Baker
02-22-2007, 02:44 AM
I will attest that the tool chain is a critically important aspect. I made a board using a large CPLD where I chose the chip based on the features and price and figured my previous experience with VHDL would sail me through the software portion. I was sorely wrong, the manufacturer I chose had a professional development tool chain they wanted many hundreds of dollars for and a free tool chain that they aquired from a different company, hadn't updated since they aquired it 5 years before, no documentation worth speaking of, and no support. The project turned into the most expensive coaster Ive ever made (and it didn't do well at that because it's populated). Shortly afterward I found that a competing manufacturer has a free tool chain that is supported and updated and has a large community of small scale developers. I wont name names, anyone can figure out who Im talking about with a few minutes of googlework.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker (mailto:pbaker@parallax.com)
Propeller Applications Engineer
[/url][url=http://www.parallax.com] (http://www.parallax.com)
Parallax, Inc. (http://www.parallax.com)

Dennis Ferron
02-22-2007, 10:40 AM
I've been thinking, with some caveats with regard to timing (speed), the Propeller could itself be used like an FPGA or CPLD, with the benefit that it is better documented and easier to program. Currently I'm using a handful of 7400 series TTL chips to interface my 6502 and SRAM to a Propeller; I could replace that with a CPLD, but why not simply use a second Propeller and generate all the signals with software instead of gates? It's kind of a topsy-turvy proposition when you think about where things are going: some people tell me FPGA's are going to replace hard-wired chips for emulating processors, yet it seems to me to be easier to use microcontrollers like the Propeller to instead use software to emulate the signals the FPGA would have made!

rokicki
02-22-2007, 11:14 AM
Oh for sure. Where the propeller suffices, it's probably about 10X easier. CPLDs and FPGAs are cool and powerful, but quite inaccessible to most, and even where it is accessible, they are just more *difficult*. I've said it before; I think the propeller is in a *really* sweet spot.

Bill Henning
02-22-2007, 01:18 PM
Yikes.

I've just taken delivery of:

cypress cpld/fpga dev kit parallax's altera fpga kit (old stock) a xilinx fpga kit (I already had a xilinx CPLD kit)

Yep, I'm trying to evaluate cpld's & fpga's for future projects; mostly involving propellers :) however I am relying on each vendor's free software; I simply cannot afford the pricey full packages. I know enough to be dangerous :) ie I believe I can build some interesting peripherals with cpld's/fpga's, but I am not (yet) up to trying to make a processor in one - though I doubt I will be able to resist tinkering with some open cores. But first, I have some propeller projects to finish, including a couple·I will try to bring to market - more on that later, after they work, and the pcb's are made and tested... this is the first time I'm trying to bring a hardware product to market by myself, for myself (instead of being contracted for something to another company).

Bill


Paul Baker (Parallax) said...
I will attest that the tool chain is a critically important aspect. I made a board using a large CPLD where I chose the chip based on the features and price and figured my previous experience with VHDL would sail me through the software portion. I was sorely wrong, the manufacturer I chose had a professional development tool chain they wanted many hundreds of dollars for and a free tool chain that they aquired from a different company, hadn't updated since they aquired it 5 years before, no documentation worth speaking of, and no support. The project turned into the most expensive coaster Ive ever made (and it didn't do well at that because it's populated). Shortly afterward I found that a competing manufacturer has a free tool chain that is supported and updated and has a large community of small scale developers. I wont name names, anyone can figure out who Im talking about with a few minutes of googlework.



▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com (http://www.mikronauts.com) - a new blog about microcontrollers

Post Edited (Bill Henning) : 2/22/2007 6:28:00 AM GMT

Paul Baker
02-22-2007, 01:33 PM
Bill, the one I have heard good things of is among your list.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker (mailto:pbaker@parallax.com)
Propeller Applications Engineer
[/url][url=http://www.parallax.com] (http://www.parallax.com)
Parallax, Inc. (http://www.parallax.com)

Post Edited (Paul Baker (Parallax)) : 2/22/2007 6:37:41 AM GMT

Remy Blank
02-22-2007, 03:53 PM
Paul Baker (Parallax) said...
I wont name names, anyone can figure out who Im talking about with a few minutes of googlework.

Please do name names, I'd like to get started with FPGAs but am having a hard time deciding between Altera and Xilinx. Haven't looked at Cypress, so this is only going to make it more difficult.

A first letter, maybe? http://forums.parallax.com/images/smilies/wink.gif

-- Remy

Graham Stabler
02-22-2007, 04:10 PM
Paul, I can see why you would not name the manufacturer you had problems with but what's wrong with naming one that is good?

Cypress certainly look less good as their software is not free and is not supported by them.

It looks to me like Xilinx might be rather good given the new $50 starter kit for CPLDs and the free ISE WebPACK "the industry´s only FREE, fully featured front-to-back FPGA design solution for both Windows and Linux." (which will also do all the CPLDS). They also seem to have a bit of a forum.

But altera despite their higher cost dev kit provide "Altera’s no-cost Quartus® II Web Edition" that will program all the CPLD devices.

So I'm still not entirely sure.

Graham

Paul Baker
02-22-2007, 04:20 PM
Xilinx is the company I have heard good things about their free tool chain, though I was so burnt out with the previous failed attempt I never got to using a Xilinx part in a design. I have·worked with programming Cypress devices using Verilog and VHDL (neither are free if I remember correctly), but that was when the technology was nascient and devices beyond the old GAL/PAL/... where just coming onto the market.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker (mailto:pbaker@parallax.com)
Propeller Applications Engineer
[/url][url=http://www.parallax.com] (http://www.parallax.com)
Parallax, Inc. (http://www.parallax.com)

Post Edited (Paul Baker (Parallax)) : 2/22/2007 9:25:47 AM GMT

Remy Blank
02-22-2007, 04:35 PM
Thanks Paul!

-- Remy

Paul Baker
02-23-2007, 12:49 AM
I have had no experience with Altera, so don't take my silence as a bad mark against them. Obviously Chip likes them because he used thier FPGAs to do the first prototyping of the Propeller (it is actually his favorite manufacturer of FPGA), he says that thier free Tool chain is the same as thier professional, only the number of devices it will program is limited.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker (mailto:pbaker@parallax.com)
Propeller Applications Engineer
[/url][url=http://www.parallax.com] (http://www.parallax.com)
Parallax, Inc. (http://www.parallax.com)

Graham Stabler
02-23-2007, 12:57 AM
I'm ordering the CoolrunnerII starter kit from Xilinx. Given the low cost and the nice set of examples it seems a safe bet. They will also have an accessory kit in the future with various modules to interface with, that is much more like a Parallax style product than the usual high cost dev kits.

Actually something I forgot about was that I bought a pass through device for hacking my Nintendo DS, that was just a CPLD and because I had a newer DS I had to flash it, that was Xilinx and I downloaded the software and built the programming cable myself. If console hackers are happy with Xilinx I suspect I will be.

So we have Andre' on Lattice, Chip on Altera and a good buzz about Xilinx plenty of choice it seems.

Cheers,

Graham

rokicki
02-23-2007, 01:27 AM
The Spartan 3E starter board from Xilinx ($130) is also quite good; very featureful and they are putting a pretty big FPGA on it these days.
It also includes a CPLD (but part of it is used for programming/interfacing so you can't use the whole thing for your stuff.)

Certainly if someone needs more pins and can manage the soldering, a CPLD makes a very nice "extension" of the propeller, but for
most things another propeller is probably simplest.

JoannaK
02-23-2007, 01:36 AM
I have used both Xilinx free toolkit (with Spartan 2 Evaboard) and Lattice tools (older with their isp-gal's and ISP-2032:s) and didn't have any problems with either of them. At least Lattice had their Parallel port ISP cable schematics freely available, but I can't tell if it would work with current generation of chips.