PDA

View Full Version : Adding 512Kx8 or 128Kx8 external SRAM to the Prop (for emulations, etc)



Cluso99
01-22-2009, 01:36 PM
I was web surfing last night - I should have been programming my prop :-(

Anyway, I was thinking that for the PropAltair and similar emulations, that ram is always the problem. So, I thought about using 2 props as follows...

One prop would be the standard prop running VGA (or TV) and keyboard (and maybe mouse) and Serial (FullDuplex) and running a terminal emulation (VT52, VT100, etc). This is basically what OBC has done with PropComm (without the propdos). Nothing complex here. It can communicate serially to another prop. It may also use the SD card as a disk emulation to the second prop.

The second prop would have a serial connection to the first prop, and would load from eeprom as normal. It would then boot the emulation or load from the other prop. This prop would have its io pins connected directly to a 128Kx8 sram. This takes 17 pins for address, 8 for data and 3 for ce, oe and we, totalling 28 pins. This plus the 2 serial and 2 I2C makes the total 32 io pins the prop has. The sram has 10-15nS, so the prop will be slower than this.

Would a pcb with just the second prop built like this sound interesting, or should a pcb have both props on it including vga, tv, keyboard, mouse, etc?


▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)

My cruising website is ·www.bluemagic.biz (http://www.bluemagic.biz)

Post Edited (Cluso99) : 1/22/2009 9:47:40 AM GMT

Dr_Acula
01-22-2009, 01:52 PM
That sounds very simple. And very interesting.

I've been trapped before by trying to get everything onto one board and get it all working all at once. Sometimes it is better to build things in modules and get each module working, and maybe down the track an obvious solution will come up that puts it all on one chip. The propterminal is a great standalone device but it may well be pushing the limits of the prop. The problem here is IO pins and the prop simply doesn't have enough. All the fixes are all fudges and end up using more and more glue chips to the point you may as well build it as a non prop solution.

So yes, a little board with a prop and just serial and/or I2C and a 128k ram chip. Don't try to do anything else at this stage. Put all the data storage on the other board eg the working terminal/sd projects. Before you build a board though, this sounds almost simple enough to breadboard and test that way. Just a 32 pin and a 40 pin chip after all. I presume 1k resistors if you are using a 5V ram chip? I've been using lots of SIL/DIL arrays for resistors and they certainly beat soldering in lots of individual resistors.

heater might be able to answer this one - will there be enough space for emulating all the instructions for a range of micros? Including but not limited to Z80? Enough longs etc. Given a micro will only use 64k, will the other 64k be useful in some clever way for the prop to use?

Sounds interesting. It could be a neat 3 chip computer. And no doubt someone will work out a cunning way of decreasing that chip count!

Post Edited (Dr_Acula (James Moxham)) : 1/22/2009 7:03:59 AM GMT

virtuPIC
01-22-2009, 02:22 PM
Prop with cache and wirtual memory... http://forums.parallax.com/images/smilies/wink.gif Well, it already has multilevel memory organization on chip. There are other threads about connecting Microchip's 23X... SPI SRAM to the prop. External memory is probably useful for many applications. You have to decide about the following points choosing technology, at least:

RAM or ROM, EPROM, EEPROM, FLASH?
serial or parallel chips?
serial or parallel conneciton?

There might be a few more points. You tell about parallel connection in address and data, right? That's fast, but needs many pins. What about serial addressing? The simplest case is to put in a shift register that takes the addres. Would only need two prop pins, could be clocked rather fast, and you could use the cheap memory chips. You could even put a counter after the shift register that is automatically incremented at memory read. This would increase speed on block reads. If you invest some time in software development you could use this approach even to connect to DRAM of arbitray size! A propeller pulling 4GB or more...

There is also code around to access SPI / I2C memory and currently several threads on interfacing Microchip serial SRAM.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Airspace V - international hangar flying!
www.airspace-v.com/ggadgets (http://www.airspace-v.com/ggadgets) for tools & toys

Cluso99
01-22-2009, 03:04 PM
I am thinking of the AS7C31024B-12JCN which is an SOJ 32pin package. It is 128Kx8 SRAM. No interface glue logic required, just direct to the prop pins. The software access is pretty simple and pretty fast in pasm.

I·am suggesting·parallel access and no·multiplexed address lines or latches/counters. This simplifies the software and speeds up the access. :-)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)

My cruising website is ·www.bluemagic.biz (http://www.bluemagic.biz)

Dr_Acula
01-22-2009, 03:53 PM
Good suggestion - use a 3V sram. Not much difference in price anyway between 5V and 3V.

I'm not an expert on maximum speeds on the prop but heater only managed to get about a 4Mhz emulation on an 80Mhz propeller. Doing any data transfers in serial is going to slow things down ? by up to 16x further meaning an emulation speed in kilohertz rather than megahertz. I think it has to be parallel ram unless there is some very fast serial code out there. If you leave all the vga stuff as a seperate terminal project, set it to one side, and just consider a 40 pin prop and a 32 pin ram chip, this does become rather beautiful in its simplicity. I'm looking at the sort of board this replaces - it replaces an eprom, a microprocessor, a uart, two crystal oscillators and 9 74HC glue chips. Plus it can emulate any number of micros - 8080 6502 8085 8051 Z80, maybe even PICs?

Cluso99
01-22-2009, 04:28 PM
Ok, just found these SRAM 128Kx8 and 512Kx8 PDIP32 parts (Farnell in Australia A$6.12 and $11.83 - about US$4 and $8 in 1-off pricing).

The OE pin can be tied low, so for the 512Kx8 device 19 address + 8 data + CE + WE = 29 pins. Obviously the 128Kx8 device is fine with 27 pins. So, if the 512Kx8 is used (and it would be nice to be compatible for both chips)·the question is which pin to use for the 29th pin (SCL or SDA) so I need to look at the specifications to see which is best. I am thinking either the SCL or SDA would be tied to the WE pin. An eeprom is actually not required as it could be loaded via the serial pins (just like it is loaded by the·PropLoader now).

I also want to check out the SD card interface, as with no eeprom, there would be another pin available, so it may be possible to add an SD card interface to this board to emulate the disk.

Imagine a 2 chip Altair/Z80/8080/6502/6800 etc retro computer with 512KB of ram plus 2GB SD card connected to·another prop doing tv/vga/keyboard and any extra I/O or peripherals. http://forums.parallax.com/images/smilies/hop.gif

Postedit: The SRAM is 55nS.·Successive reading can be done by leaving CE permanently enabled (which prevents the SRAM entering standby and therefore uses a lot more power) and just changing the address and reading. However, the prop would require a nop in between setting the address and·reading the data (because between 2 successive prop instructions is 50nS). A write requires the WE line to be used.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)

My cruising website is ·www.bluemagic.biz (http://www.bluemagic.biz)

Post Edited (Cluso99) : 1/22/2009 9:45:25 AM GMT

heater
01-22-2009, 06:12 PM
This great. So many people stepping up with solutions to the Propeller RAM "crisis". Especially with respect to emulators. I hope Parallax is noting this for the Prop II. Even with its bigger HUB RAM its extra speed will encourage more and bigger applications which will put pressure on RAM again. Especially for users of ImageCraft C and it's LMM. It would be really cool to have some kind of hardware assistance for fast RAM interfaces given the Prop II has so many I/O pins. Even to the point of having RD/WRLONG/WORD/BYTE instructions work for the external RAM as well as the HUB. But I digress....

I'm a bit tired to absorb all the ideas here but as usual in any design there are many ways to go and many trade offs.

A parallel RAM bus connections must be the fastest possible, but uses too many pins. Fine for speed, not so fine for a single Prop solution with SD cards and VGA and keyboard etc etc.

Serial RAMS are going to be slower, but perhaps not so slow if a "memory controller" COG is fetching instructions in parallel with emulator cog opcode execution. This may be slower but is dead simple for people to add to a Prop demo board for, say, just running up an emulator for a lark. And of course useful for many other less speed demanding tasks.

So which way to go? Well it seems that both solutions are going to be designed and implemented depending on individual priorities. If anyone gets as far as producing a batch of boards for a parallel RAM solution for sure I want one and will be adapting PropAltair to run on it :)

Just now I've been contemplating the idea of adding two old 32K RAMS (I have many in my junk box) and using Intel's trick of multiplexing the lower 8 bits of address with the 8 bit data. Only requires an external latch and an address decoder (just an inverter) This gets the pin count down to 19. Leaves pins for SD card etc. Looks like I could add it to my home made demoboard. If only I wasn't living away from my workbench and components just now.

Next up for me is to get CP/M 3 running which will require bank switched memory. I've come to the conclusion that the bank switching is best done in external hardware, otherwise some software always has to check which bank is supposed to be active at any moment and then fix up offsets into a linear external RAM space, slow.....

@Dr_A: I have not looked into emulating other CPUs much. There is someone working on a Z80 emulation for a ZX81 clone. No report as to how far that has come yet. There are others working on multi COG 6502.

The Z80 has twice as many opcodes as the 8080. It has more than twice as many registers. It has more addressing modes. This leads me to believe that it will require 4 or more times the effort to develop it and require multiple COGs. Could be done in one COG and LMM, I guess, but very slowly. Personally I'm not up for that but will keenly follow any developments that go on there.

BTW. PropAltair speed is probably worse than that. 350,000 instructions per second. Just like an original 8080:) Without going to multiple COGs I don't see much improvement coming there.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

hinv
01-22-2009, 06:55 PM
The B version of the prop would help a lot as well. It has been stuck in development for over a year now because of a software issue AFAIK. Another 32 IO pins would be great. It would completely eliminate the need for glue logic, and provide you with enough bits to do 2MB of addressing just in the B port.
Parallax, if you are listening? Has any progress been made on the B version Prop1? Since a year later we are still thinking another year for PropII, has the priority for the B version chip changed at all?

Thanks,
Doug

heater
01-22-2009, 07:03 PM
Oh yeah, forgot about the long lost B version. Pretty please......

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

Cluso99
01-22-2009, 07:18 PM
Here·are my suggested connections..
I don't think the eeprom and 512Kx8 can co-exist, but the 128Kx8 and eeprom are ok. I have added an SD-Card also http://forums.parallax.com/images/smilies/cool.gif



Proposed Propeller / SRAM / SD Card PCB
By Cluso99 22 Jan 2009
All parts 3V3
Propeller Eeprom Serial SRAM-512Kx8 SD-Card PullUps
--------- ------ ------ ----------- ------- -------
P31 Sin
P30 Sout
P29 SDA A18 (nc 128Kx8) 10K
P28 SCL A17 (nc 128Kx8) 10K
P27 A16
P26 A15
P25 A14
P24 A13
P23 A12
P22 A11
P21 A10
P20 A9
P19 A8
P18 A7
P17 A6
P16 A5
P15 A4
P14 A3
P13 A2
P12 A1
P11 A0
P10 -CE 10K
P9 -WE
P8 -CS (1) 10K
P7 D7 SCLK(5) 10K
P6 D6
P5 D5
P4 D4
P3 D3 Din (2) 10K
P2 D2 D2 (9) 10K
P1 D1 D1 (8) 10K
P0 D0 Dout(7) 10K
-Reset -Reset
-OE=Gnd




▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

Dr_Acula
01-22-2009, 08:08 PM
Re heater "So which way to go? Well it seems that both solutions are going to be designed and implemented depending on individual priorities. If anyone gets as far as producing a batch of boards for a parallel RAM solution for sure I want one and will be adapting PropAltair to run on it :)"

Well the board above from Cluso99 looks pretty simple. As for old chips, well I've got drawers of 6264 8ks, and sooner or later, I've got to face up to the fact they may never get into a project :( A single 128k 3V3 is just so much simpler.

What else does such a board need to make it work? The download bit - is that a max3232? And it could talk to any terminal (propterm or hyperterminal etc) via good old RS232 so that would use all 4 gates in a max3232. 3 chips? Plus the SD socket?

Making boards is pretty easy (btw has that board arrived yet heater?). What I'm not clear about is how *useful* the other 64k of ram could be. I could see it being very handy to expand the prop's memory in theory, and decrease reads back and forth to the sd card. Maybe store emulations of lesser used instructions. But I'm not up with the prop to understand the details of how that might work. But if you want a board with sd and 128k ram and a max3232 that would be pretty simple. Let me sleep on the idea...

Post Edited (Dr_Acula (James Moxham)) : 1/22/2009 1:18:23 PM GMT

kwinn
01-22-2009, 08:59 PM
Cluso99, I think this is the best idea to date. Sure beats adding CPLD's or multiple glue chips, and probably less expensive to boot. I would be in favor of a separate board, and putting connections for a second memory chip that could hold another ram chip or a parallel eeprom is a great idea. The only suggestion I have is to provide only 16 address lines directly from the prop and add a latch to hold A17, A18, and the CS lines. They will not change very often so should have minimal impact on speed.

Peter Jakacki
01-22-2009, 09:32 PM
I also looked into adding extra RAM by dedicating a Propeller for this task rather than using FPGAs. I don't think there would be much of a penalty if the upper address bits are latched off the lower address lines, this provides up to 8 extra address lines for just a single strobe so I would use a 512KB SRAM for instance.
8 data
11 low address + 8 high address latched
1 address strobe
1 CS
1 WE
TOTAL MEMORY LINES = 22

To interface to the other Prop couldn't we use the 8Mbps Prop-to-Prop technique? Anybody try this yet?

I'm not really interested in emulation (maybe a little) but I would like to have the extra RAM for video and applications in general so I look forward to Prop II as everybody does. However, the current prop is excellent for many embedded tasks just as it, after all it is designed as a single-chip microcontroller in a friendly DIP or QFP pack. I have my pick of any umpteen micros that have external memory buses in 144+ lead QFPs (if I'm lucky) but mostly BGAs. As much as I would like the memory I'm not that interested to steer away from the Prop.

*Peter*

dMajo
01-22-2009, 09:57 PM
@Cluso99, I think that by using just a transistor to reverse the state you can have the ram CE and SD card CS tied to the same output (having the CE after the transistor will ad benefit to preserve ram states during propeller reboot since the ram wil have the chip select but will miss the write enable). This can allow you to preserve the eeprom.

I am also with Kwinn to lach the data bus externally to provide more chip selects to several rams or other paralel IC; but I am against the address latching since this will page the memory and somehow limit the horizons.

Cluso99
01-22-2009, 10:01 PM
If the address lines are connected directly to the prop, the software will be faster (simpler). I've specifically set the pins to make software easier. I am going to include a microSD socket.

As for the serial, this is still open. I think it should be unbuffered, but am thinking about if I will put an FT2232 onboard (USB to dual serial 3V or 5V). This would allow use with the cheaper Proto Board (without USB). I want to share the power supply between boards, so not sure if I will supply or take power to the other prop. Using a direct link to the other prop will allow the 8Mbps technique (untried). The reset line will also be connected because the booting may need to be done by the other prop.

BTW The other prop need not be a prop. COuld just be a pc (maybe via the PropPlug?)

The only other issue I can think of is whether to use SMT or DIP parts.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

dMajo
01-22-2009, 10:08 PM
@Peter

If you multiplex the data lines with the address ones you half the throughput BUT you can recover it with no penalties widening the data (so two cycles: one for address the other for the data BUT double the data 16 bits)

1MB (64K*16) = 16 addresses lached + 16 data

Peter Jakacki
01-22-2009, 10:16 PM
@dMajo, I don't think it would make a lot of difference as unless the access is totally random you will find that there is a lot of sequential activity going on so the high address does not need to be updated unless it has changed. Besides we are talking about dedicating a Prop with spare cogs so it is possible to have a cog looking after the address bus issue. I might be talking through my hat because I have not sat down to study the implementation but from my experience and what I have been thinking about it this method could have merit.

*Peter*

Oldbitcollector (Jeff)
01-22-2009, 10:42 PM
Looking at the timestamps on this thread, I'm wondering if anyone actually sleeps here. :)

@Cluso

That suggested board not only looks simple to build, (and prototype!) but also uses parts
that everyone should be able to get their hands on. All we need is some parts and some
spin to glue this together!

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Check out: Protoboard Introduction (http://jeffledger.googlepages.com/Protoboard_Introduction.pdf) , Propeller Cookbook 1.4 (http://ucontroller.com/Propeller%20Protoboard%20Designs%20for%20the%20Beg inner.pdf) & Software Index (http://forums.parallax.com/showthread.php?p=770318)
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us (http://propeller.warrantyvoid.us)
Got an SD card connected? - PropDOS (http://www.orrtech.net/propdos/)

Peter Jakacki
01-22-2009, 11:09 PM
Oldbitcollector said...
Looking at the timestamps on this thread, I'm wondering if anyone actually sleeps here. :)
OBC


My understanding wife asked me once if I had to choose between her and the "computer", which would I choose. I told her that was a silly question and not to ask it. http://forums.parallax.com/images/smilies/nono.gif

OBC, the timestamps give us away, we don't talk prop shop because we have to, we do it because we love to.

*Peter*

Cluso99
01-23-2009, 12:29 AM
Yes, it's 3:20am here. The SRAM will fit on a Prop Proto Board but I think I may layout a pcb. Unfortunately, my Protel software is not on my pcs here so will have t wait until I next go home. Unless I download one of the freebies.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

kwinn
01-23-2009, 01:33 AM
Peter, darn, I wish I had thought of that.

dMajo, I am glad you liked the idea of latching the chip selects, but I agree with Peter Jakacki that it will not make much of a difference in speed. Profiling software has shown that most software program and data access is fairly localized. Look at how much time is spent in loops and subroutines. I also agree with Peter that all 16 address lines do not need to come directly from the prop. If we used an 8 bit latch ( like the 74xx373) we could use 2 bits to select one of 2 memory chips (or 1 of 4 with additional decoding) and the remaining 6 bits for the high address bits.

While this is not quite the arrangement Peter suggested it allows addressing 2 chips ( 1ram 1 eeprom? ) of 128K each with 22 prop lines:
8 data
11 low address + 6 high address latched
1 address (latch)strobe
1 OE
1 WE
TOTAL MEMORY LINES = 22

Using 2 more prop lines allows addressing 2 chips of 512K. Picture having several instances of CPM running at one time and being able to switch between them. The alternative is to use a second latch and free up some more prop lines. The down side of all this is it complicates a simple and elegant idea.

Is anything gained by freeing up the prop lines that are now used for more than one function (P0, P1, P2, P3, P7, P28, P29)?

dMajo
01-23-2009, 02:02 AM
@Kwinn, Yes this is true until we are executing code (fetched or LMM) but sutch expansion could be also used for fast and big data magement (a relational DB, Sort functions over large data that is not bubblesort, ...)


16 address + 16 data
1·· address strobe
1·· WE
1· CS for lower 8 data latch (not the address latch) giving 8 CS/CE to up to 8 devices

TOTAL 19 lines for up to· 8 IC (ram/eprom/special parallel hardware/SD cards) addressable up to 64K*16 (1MB) with no latch penalties compared to 8 bit parallel; just 3 external 8bit latches (or one 8bit and one 16bit)

... and on P28/P29 it will be very nice to find a FM31L278 in place of the standard eeprom

kwinn
01-23-2009, 04:18 AM
Here is a block diagram of my suggestion. If possible memory chips can be laid out to accept either ram or eeprom, and 128k or 512k. Essentially from the prop left would be like the prop proto board without the video circuitry. Please forgive the sketchy diagram and any missed signals. I am working at a customer site today and only had a slightly extended coffee break to do this in.

kwinn
01-23-2009, 04:56 AM
dMajo, true up to a point and possibly better for database applications/sorting but you still have to update the address or chip select latch to read the next memory location, and on average both latches have to be updated every 8 accesses. Also the 16 address/data pins have to be changed between inputs and outputs frequently.

I must admit I like the cleaner more orthogonal design it gives, but for emulating an 8 bit micro I feel it is not a good choice. It would be interesting to compare the two choices for the range of applications possible. Perhaps we could agree on some specific tests to run, write the code, and compare the results.

heater
01-23-2009, 05:00 AM
No the world never sleeps, we are all in different time zones after all!

@Dr_A, sadly your board has not arrived here yet. I'm checking the post like a little boy at Christmas for the past couple of days. Only yesterday I found out where you are, via the vintage computer forum, it's a long way.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

heater
01-23-2009, 05:04 AM
@Dr_A: "What I'm not clear about is how *useful* the other 64k of ram could be." well somewhere I have it in the back of my mind to try and run up CP/M 3 or MP/M which used banked switched memory.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

Dr_Acula
01-23-2009, 05:46 AM
@heater It should be soon, but if nothing in the next week I'll send another.

Re a board, I'd suggest DIP rather than surface mount. When I was younger I built a lot of circuits for small robots etc and tried to get everything as small as possible. But for computer boards, it doesn't matter if it is larger, at least for prototyping and proving concepts. SMD is so fiddly to make. It can always go surface mount once it is proven.

It is always tempting to add a latch here or a transistor there, but there are plenty of pins so there is no need to try to save pins. I like the clean and simple "no extra parts" solution.

Re boards, the biggest cost with small runs is the setup cost and the shipping. The number of boards and the size of the boards are less relevant. So making a board a bit bigger does not change things much. I'm just thinking that you could put a pad on the board for a 128k ram and you could also put one for a 512k ram and you could install which one you wanted. Ditto the max3232 - you could have a small header for digital comms (0-3V) and that signal can go to a max3232 and D9 pcb mount socket. If you only want digital comms eg to another prop board, then just install the header and leave out the max3232 and D9.

Re the download circuit, what is the vibe from the forum on the transistor circuit vs the max3232 circuit vs the prop adaptor board? Which one is most popular? Would you put pads for more than one (all) of these options and let the user install the components that suit them?

ImageCraft
01-23-2009, 01:11 PM
If one of you geniuses can figure out how to make a propeller accessing external memory as fast as possible, we can make a XMM-C (eXternal Memory Model C) Stamp module. There is hardly any change needed to support this from the compiler and the LMM kernel. Then you can run really large C programs on the propeller.

Phil Pilgrim (PhiPi)
01-23-2009, 01:38 PM
André LaMothe is such a genius who's already developed a 512K RAM module (http://512K RAM module) for the Propeller. It would be hard to improve upon his design, which provides auto-address incrementing/decrementing and claims hub-fast speeds for external RAM accesses.

-Phil

jazzed
01-23-2009, 01:42 PM
Ya. Incremental access. Great for big FIFOs. Random access would be realatively slow. Better than nothing I guess.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Phil Pilgrim (PhiPi)
01-23-2009, 01:58 PM
Well, it's either that or use up nearly all the Prop's pins. Multiplexing the address and data while providing autoincrementing seems like a reasonable compromise and, for sequential stuff like LMM execution, speedy access. Programming one cog as a MMU for caching could provide further speedups. Determinism would go out the window, though.

-Phil

heater
01-23-2009, 04:40 PM
@Dr_A:
Re: The N8VEM board, lets wait a while and see what turns up.
Re: DIP. I haven't checked this recently but I seem to remember that the pin outs for different sized DIP RAMS and EPPROMS used to be laid out such that you could make boards with a large package foot but it would take a smaller package device, leaving some address pads empty. So different sized RAMs could be accommodated in the same board space.

@ImageCraft:
Wonderful idea! Haven't you thought of doing this for the Hydra and its memory module?

@Phil.
Do you mean the Hydra RAM expansion? It is a truly wonderful thing but I pass on it for a number of reasons:
1. For emulators and such tasks fast random access is required. The Hydra card is great for "streaming" but unless I missed a point RANDOM access is going to be slow.
2. The code required to drive is big. It's not going to fit in my one cog emulator. I could have a memory controller COG but I need all the others already.
3. Price seems a bit steep.

Proposal:
Lets say you want to go ape (expletive) and create the fastest possible Z80, 8086, whatever emulator in a Prop.
1. Use as many pins as you need to get the fastest access to RAM (May need a 16 bit data bus for x86 etc). As Dr_A says.
2. Use as many COGs as required to get the emulation up to speed.
3. Use serial links to a second prop for your slow peripherals.
4. Include in your address/data bus an IO/memory select signal. Wire 8 bits of the data bus to the second Prop along with RD,WR, IO/M.

With 4) the second Prop becomes a high speed peripheral device to the first.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

Cluso99
01-23-2009, 06:37 PM
To answer a few points:

The 128Kx8 and 512Kx8 pinouts are identical, except A18 is nc and A17 is CS2. So no problems, either smt or dip. Unfortunately, the FRAM uses a different footprint :-(

I want random access and fast as possible. Multiplexing and autoincrementers are out for my design. The I/O (VGA, keyboard, etc) will use a seperate Prop and I have planned to communicate via fast serial (separate cog). This prop will be probably be loaded (booted) by another Prop ad there may be no eeprom on this Prop.

It was the IBM clones which introduced the 640K, so early IBMs had much less ram, but they also had a ROM (64KB?)

I like the Imagecraft C option. Remember though, another Prop is required for I/O.

Another find - SPI Flash 64Mb (8Mx8) 75Mhz W35X64 from Digikey about $9 and they have dual bit read (outputs 2 bits of data on both DO and DIO).

Contemplating more than 1 Propeller on the board, using a common crystal oscillator (so the serial is in sync for ultra high speed comms - maybe able to shift out/in a bit every 2nd instruction = 10Mbs). http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

lynchaj
01-23-2009, 07:01 PM
heater said...
@Dr_A:
Re: The N8VEM board, lets wait a while and see what turns up.
Re: DIP. I haven't checked this recently but I seem to remember that the pin outs for different sized DIP RAMS and EPPROMS used to be laid out such that you could make boards with a large package foot but it would take a smaller package device, leaving some address pads empty. So different sized RAMs could be accommodated in the same board space.


Hi!· You and all the Propeller crew are welcome to join us on the N8VEM mailing list (http://groups.google.com/group/n8vem).· I just got a whole batch of the SBC PCBs and there are four other PCBs available.· James has the mini-N8VEM which is excellent solution so there is no shortage of great tools to pick from.· There are a couple of·active Propeller vintage computer related developments on going and the parts are relatively cheap.· You are certainly welcome and I think you would have fun too.

Thanks and have a nice day!

Andrew Lynch

Ale
01-23-2009, 07:31 PM
I did some boards based on this circuit for a RAM expansion for a HP-71B. The baords are ready http://forums.parallax.com/images/smilies/smile.gif. The circuit I used is this one.

Cluso99
01-23-2009, 08:08 PM
Nice one Ale http://forums.parallax.com/images/smilies/smile.gif
Shouldn't the I2C have a pullup on SCL also?
The booter does drives this line high and low, but the spec says it should be open drain. My I2C routine will just drive the dira pins for both the SCL and SDA.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

heater
01-23-2009, 08:25 PM
Cluso: I think we are on the same "bus" here :) Two Props, big RAM (DIP preferably) on one of them , serial links between the two. The non RAM prop surrounded by a Prop Demo Board like circuit for compatibility. Who's going to make this board for us ?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

TonyD
01-23-2009, 08:44 PM
Has anyone considered LPC (Low Pin Count) memory chips?

Every modern PC has a LPC Flash chip (typically up to but does any one know of any LPC RAM chips? The LPC inferface consists of a 4-bit wide data / address bus and 3 control lines.

- TonyD

kwinn
01-23-2009, 10:26 PM
Ale, that board is very close to what I was thinking of initially. If you are planning on selling them, how much and where do I send my money.

Cluso99
01-23-2009, 11:10 PM
Ok, here is a block diagram. I have started the layout, but expect it may take a while http://forums.parallax.com/images/smilies/cry.gif

The PCB should be 3.0" x 6" (The Prop Proto Board is 3.05" x 4"). Currently planning on using t/hole where possible.

Up to 3 Propellers. Up to 2 128Kx8 or 512Kx8 SRAMS (If both are connected to Prop #2, then microSD and Eeprom/Flash cannot be fitted) A shared 20Mhz Crystal Oscillator 1 USB 2.0 using the FT232RQ 1 microSD slot 1 or two I2C 24C512 (512Kb Eeprom) or SPI W25X08-W25X64 (8Mb-64Mb Flash) (only 1 if microSD is fitted) 1 extra I2C 24C512 (512Kb Eeprom) for booting Prop #3 VGA or TV (shared pins) PS2 connector (for Keyboard) PS2 connector (for mouse) 32 pin I/O connector plus Reset to Prop #1 (shared)

Propeller #1 can have:

32 pin I/O connector plus Reset·(shared with options below) I2C 24C512 (512Kb Eeprom) or SPI W25X08-W25X64 (8Mb-64Mb Flash) SRAM #1 128Kx8 or 512Kx8 (shared with Prop #2 -MUST be isolated by cutting tracks)

Propeller #2 can have:

SRAM #2 128Kx8 or 512Kx8 SRAM #1 128Kx8 or 512Kx8 (shared with Prop #1 -MUST be isolated by cutting tracks) microSD or I2C 24C512 (512Kb Eeprom) or SPI W25X08-W25X64 (8Mb-64Mb Flash) NOTE: The microSD/Eeprom/Flash CANNOT be fitted if both SRAM #1 & SRAM #2 are connected to Prop #2

Propeller #3 can have:

USB 2.0 using the FT232RQ PS2 connector (for Keyboard) PS2 connector (for mouse) VGA or TV (shared pins) I2C 24C512 (512Kb Eeprom) for booting Prop #3 can load and boot Props #1 & #2

This sounds complex, but is being designed to be as flexible as possible.http://forums.parallax.com/images/smilies/cool.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

Ale
01-23-2009, 11:46 PM
The boards are tiny, just propeller, 573, memory (TSOPII) and few level shifters and of course a couple caps and regulator. I wanted to do the memory expansion with them but I did not have the time. I can send someone a couple (I may have paid 3 or 4 € for each, I made only 10). Let me post a pic.

If someone makes a board with a RAM and 2 porps as proposed (with VGA, miniDin(s), etc, etc). Please let me know, I'd like one or two

Post Edited (Ale) : 1/23/2009 4:53:54 PM GMT

heater
01-23-2009, 11:50 PM
Cluso: That triple Prop board idea sounds just fabulous. However it turns out, if you are going to have a batch made please sign me up for a couple. If you are really going to do this you should think of a wizzy name for it (TriPrAM, blechh) and start up a new thread for discussion.

You have a lot of options there, will take a little time to digest. In away its a shame to have so many options and have to hack the board around to get them as its nice to have a "standard" which you can expect people to have when pushing software projects out into the world.

Suggest you reverse the numbering of the Props so that Prop 1 is first in line to the USB loader.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

Ale
01-24-2009, 12:23 AM
Why cutting tracks ? a dip-switch may be used instead or not ?

Cluso99
01-24-2009, 12:42 AM
I am going to link them, if required. A dip sw takes too much space. Could use pin stakes and links. Alternately, there is a method to solder bridge them. I will renumber the chips.

Should I use the combined VGA & 2 x PS2 connectors as used on the Proto Boards (I don't really like them)?
Does the design need sound?
Does the design need game ports?

Note I have left a Data/Address bus running between all the props.
Not that I have much room left.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

heater
01-24-2009, 02:04 AM
VGA/PS2: Whatever is commonly available would be nice. I don't like the combined ones much.

Sound: Oh yeah. PropComm VT100 needs a BELL (BEEP) in stereo.

Game ports: Not me.

What about a the thread ? This might be a long discussion....Specially when we get to actually use the thing.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.

Ale
01-24-2009, 02:46 AM
Designing it and building it is half the fun.
A header for extra ports (game ports) or something like that may be better.

dMajo
01-24-2009, 02:52 AM
kwinn said...
dMajo, true up to a point and possibly better for database applications/sorting but you still have to update the address or chip select latch to read the next memory location, and on average both latches have to be updated every 8 accesses. Also the 16 address/data pins have to be changed between inputs and outputs frequently.

I must admit I like the cleaner more orthogonal design it gives, but for emulating an 8 bit micro I feel it is not a good choice. It would be interesting to compare the two choices for the range of applications possible. Perhaps we could agree on some specific tests to run, write the code, and compare the results.
Updating the chip select is to change the target chip (eg going from first 1MB ram to the second 1MB ram or eeprom; the address strobe latch is directly driven by the prop) but yes each cycle needs to update first the address then the data of the currently selected chip: BUT THIS IS DETERMINISTIC.


Phil Pilgrim (PhiPi) said...
André LaMothe is such a genius who's already developed a 512K RAM module (http://512k%20ram%20module/) for the Propeller. It would be hard to improve upon his design, which provides auto-address incrementing/decrementing and claims hub-fast speeds for external RAM accesses.

-Phil
This is only for sequential reeading/writing not random (and is done with a CPLD solution)


Cluso99 said...
To answer a few points:

The 128Kx8 and 512Kx8 pinouts are identical, except A18 is nc and A17 is CS2. So no problems, either smt or dip. Unfortunately, the FRAM uses a different footprint :-(

I want random access and fast as possible. Multiplexing and autoincrementers are out for my design. The I/O (VGA, keyboard, etc) will use a seperate Prop and I have planned to communicate via fast serial (separate cog). This prop will be probably be loaded (booted) by another Prop ad there may be no eeprom on this Prop.

It was the IBM clones which introduced the 640K, so early IBMs had much less ram, but they also had a ROM (64KB?)

I like the Imagecraft C option. Remember though, another Prop is required for I/O.

Another find - SPI Flash 64Mb (8Mx8) 75Mhz W35X64 from Digikey about $9 and they have dual bit read (outputs 2 bits of data on both DO and DIO).

Contemplating more than 1 Propeller on the board, using a common crystal oscillator (so the serial is in sync for ultra high speed comms - maybe able to shift out/in a bit every 2nd instruction = 10Mbs). http://forums.parallax.com/images/smilies/smile.gif


I have found srams down to 12nS, the fastest fram I was able to found was about 30/50nS. If the need is for fast and power tolerant than go with the sram suplying it with batt and a voltage drop detector cutting the control signals.
I agree for the serial: if the two chips are in sync can be really fast.


Cluso99 said...
Nice one Ale http://forums.parallax.com/images/smilies/smile.gif
Shouldn't the I2C have a pullup on SCL also?
The booter does drives this line high and low, but the spec says it should be open drain. My I2C routine will just drive the dira pins for both the SCL and SDA.


Usually you do not need a pullup on SCL (can be high driven) exept for one case: in the multimaster environment. Through this signal the bus arbitration between masters is made (btw just now I am busy on a pasm I2C slave/multimaster driver supporting 1MHz and broadcasts·thats making me crazy because I am a newbie on prop)



@to everyone, multiplexing address/data of 16 bit sram (very few data are 8bit: lmm will read 32 bit instructions in two read cycles; and most of the data integers, analog vals are 16 bit) looks to me a good compromise between speed/determinism in random and sequential applications making a wide general purpose application because is leaving also enough IO for single prop developments
·

Phil Pilgrim (PhiPi)
01-24-2009, 03:49 AM
dMajo said...
Usually you do not need a pullup on SCL (can be high driven) exept for one case: in the multimaster environment.

There's also a case in single-master systems where this is necessary. Some slow slave devices implement a clock-hold feature, which holds the clock low during a transfer to slow the pace. The master is supposed to release the clock instead of driving it high, then wait for the clock line to go high before issuing the next clock.

-Phil

Mike Huselton
01-24-2009, 06:52 AM
See Chip's thread: http://forums.parallax.com/forums/default.aspx?f=25&m=121344[url]

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH - Electronics: Engineer - Programming: Professional

jazzed
01-24-2009, 06:59 AM
Thanks for posting that Quantum. I've been looking for it all day! Now for some proof if possible.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Cluso99
01-24-2009, 09:38 AM
@dMajo: I have written an I2C in pasm (read only but not much to add for writing). It is pretty tight code, but needs debugging (problem initialising so not getting past first base). Uses SCL and SDA as open drain (only controls dira). I have been distracted (again!). You are welcome to debug the code and use it.

Post Boot PASM COG Loader? http://forums.parallax.com/forums/default.aspx?f=25&m=320151&p=3&ord=d

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

Dr_Acula
01-24-2009, 07:20 PM
Looking sweet, Cluso99. One thing I've found with getting boards made is there is a big setup cost and a big shipping cost but the boards are usually only $2-$3 each. So making the board a bit bigger, and keeping it flexible, and leaving out components is actually quite a good way to go. heater has the cp/m board now so can test instruction behaviour with real chips. If you can do it in 3 props, down the track some cunning person will fit it into 2. And if a system can emulate a Z80 there will be other chips it can emulate too, once the proof of concept has been done. Any chance of a draft schematic?

James Moxham Adelaide, Australia

Addit: re "cut tracks", nothing wrong with a 40 pin header package and solder bridges. Not quite kosher. But it works. And/or use bits of left over wire. Dunno. This might evolve anyway. heater might have some insights soon on whether this can be done with two props. Or even one??

Post Edited (Dr_Acula (James Moxham)) : 1/24/2009 12:26:48 PM GMT

Ale
01-24-2009, 07:55 PM
Dr. Acula is right.
The thing is we are, well around the world http://forums.parallax.com/images/smilies/smile.gif, so shipping would have to be for 2 or 3 boards for each one of us. A 10x16 cm board, some 4"x6" will be a good target size without cramming everything too much. I can do a schematic adding what was spoken so far.

hippy
01-25-2009, 01:38 AM
Cluso99 said...
Should I use the combined VGA & 2 x PS2 connectors as used on the Proto Boards (I don't really like them)?
Does the design need sound?
Does the design need game ports?

It's your baby so feel free to ignore me but I think there's a danger of feature bloat coming in here. More importantly, in order to be all things to all men, it is perhaps becoming less flexible as things get added and thus become pre-defined. Configuration, links and cutting tracks make for a less attractive and less aesthetic product overall IMO.

From a simple Prop with large RAM it's steadily migrating to more of a Demo Board, more a 'solution' than an 'add-on peripheral'. I personally prefer the idea of a simple but functional building block as originally described. Add what you need to make it usable as you envisage it being used, but keep it as a simple unit and allow the end user to decide how they are going to use it is the way I'd go.

You'll never second guess what any individual wants and invariably will provide too much or too little if you go that route. From a note I read about *nix commands; do one thing and do it well. That's the philosophy which I think should apply here.

Good luck with it no matter what you decide.

Cluso99
01-25-2009, 04:36 AM
@Hippy:Thanks and nice to see you around again http://forums.parallax.com/images/smilies/smile.gif

@Ale: I have the schematics in scribble form. Thanks for the offer. Still having thoughts but expect to firm up this week.

There are a few PCB manufacturers around with layout packages, so will ask about this on a new thread. (My professional software is interstate and I want to get started). Just on the way out, so if someone would like to start the thread for me it would be appreciated http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)

Cluso99
01-27-2009, 07:00 PM
I have announced a SixBladeProp (TM) board which uses the static rams discussed here.

See...
SixBladeProp - A new 6 propeller pcb
http://forums.parallax.com/showthread.php?p=780033

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators (Micros eg Altair, and Terminals eg VT100) - index (http://forums.parallax.com/showthread.php?p=778427)
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)