6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Mar 28, 2024 2:04 pm

All times are UTC




Post new topic Reply to topic  [ 35 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Fri Aug 17, 2012 2:12 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
As you could see on my website, I've build an entire system around my little sbc.
When i started building my sbc, i had in mind a simple setup, that was supposed to fit in a small plastic box. The idea was to have the cpu, ram, rom, and the basic I/O on one board, and four connector for additional I/O. Later toes four connectors become the 4 slots on the backplane, and stuff got more complicated. The sbc is a bit in a mess, some stuff aren't yet finished, like the interrupts, since i never needed them, i never soldered them(not a beg deal). But since i built the chassis with the power module, and all that fancy connectors, i would like to have a fancy cpu board, with dma, mmu, proper interrupt circuits, custom clock, and all the fancy stuff.
When the cpu board is powered up, it should behave like the one i have now, 32k ram, 16k rom, and the same address map(not essential).
I would like to be able to run some multitasking os, like the GeckOS, so are there some compatible ic that i can get for the mmu/dma circuits?


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 17, 2012 9:50 pm 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
Are there any mmu or dma chips that are compatible with the 65xx bus?


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 17, 2012 10:08 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8412
Location: Southern California
Dajgoro wrote:
Are there any mmu or dma chips that are compatible with the 65xx bus?

I don't know, but this topic comes to mind, about a method that steals no bus cycles, because it only uses the few dead bus cycles of 6502 instructions:
The secret, hidden, transparent 6502 DMA channel viewtopic.php?f=1&t=1160

While looking for it, I also came across:
Using a miconcontroller as a DMA master viewtopic.php?f=4&t=1179
DMA and 6502 viewtopic.php?f=4&t=939
Commodore 8726 DMA controller viewtopic.php?f=4&t=180

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 17, 2012 10:44 pm 
Offline

Joined: Sun Apr 10, 2011 8:29 am
Posts: 597
Location: Norway/Japan
That secret DMA channel thread was interesting, I hadn't seen it before. But the link to the original idea has gone dead, is it available somewhere else?

-Tor


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 18, 2012 1:03 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
What about the MC6844 dma ic? Can i use it?

Edit: And the SN74LS612N as a mmu?


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 18, 2012 5:17 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8114
Location: Midwestern USA
Dajgoro wrote:
What about the MC6844 dma ic? Can i use it?

Edit: And the SN74LS612N as a mmu?

Good luck finding those, especially the 'LS612. :o

Instead of building around such ancient silicon (especially 74LS anything), may I suggest you roll your own MMU? Fundamentally, an MMU is nothing more than some logic that when given certain inputs (bit patterns), produces certain outputs (bit patterns). You can achieve this with a fast EPROM.

Now, just to perhaps pique your interest a bit, take a look at this Jameco Electronics part. I ordered five of these in June for test purposes, mostly to see if the 55ns rating was for real, but also to have some extras for future projects. The 55ns rating is for real, and this device is an *EPROM*, not an OTP PROM. The parts I received are AMD 27C256-55 (click on the image on this page to load the data sheet). As my company is a certified AMD system builder, I have some access to their engineering support. So I queried them on the EPROM and was told they are readily available and really will achieve a 55ns cycle time.

I rigged up a specially coded EPROM to run on my POC to give it a spin. I had the Ø2 clock dialed up to 16 MHz (62.5ns bus cycle time) and the 'scope showed that things were working—the EPROM was responding and the program I wrote (which basically was cycling the buses in a certain way) was running. Actually, at 16 MHz I was slightly violating the EPROM's timing, but it didn't seem to care.

Incidentally, I was told by AMD that the the Flashrite programming algorithm described in the data sheet isn't correct for the 55ns part. Most 27C256 (12.7 volt) EPROMs use a 100µs delay time during programming. This EPROM requires a 200µs delay time—anything faster will result in errors. I tried the 100µs delay and sure enough, failure. At 200µs, no problem.

Anyhow, getting back to a roll-your-own MMU, consider that the EPROM has 8 data lines and (in the case of a 27C256) 15 address lines. Suppose you hook up 8 of the address lines to the data bus (A0-A7 to D0-D7), and use the EPROM's 8 data lines as outputs to drive system logic? You'd have a "pauper's PLD" or MMU or whatever you want to call it. To do this requires that you work out the Boolean algebra, translate it into a series of bit patterns and write them into your EPROM in the usual fashion. Since your inputs to the EPROM are D0-D7 and are attached to the EPROM's A0-A7 lines, you can program up to 256 possible combinations, writing to the EPROM address range $0000-$00FF. If you set up the EPROM's chip selects (/CS and /OE) to a immutable address in your I/O block, you could write to it anytime you want to change your memory map. Select your "MMU," put a bit pattern on the data bus, and you get your bit pattern at the EPROM's D0-D7 lines to control your system logic. You have 8 distinct outputs that could directly control other devices or could drive a 74F138 decoder to further subdivide the logic. Short of using a real PLD, this is the most cost-efficient way to achieve MMU capability.

Note that the output of the EPROM is ephemeral. As soon as the EPROM is deselected, D0-D7 will tri-state. Therefore, you'll need a latch on the output side that closes when /CS and/or /OE are high and opens when both /CS and /OE are low. A good choice is a 74ABT573, which adds only 3ns prop delay to the circuit and has the high fanout needed to drive other circuits.

Give it some thought. Unless you're running your clock in the 15 MHz or more range, the above EPROM will be more than fast enough for what you want to do. And, if you don't like the logic, just erase and reprogram. :D

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 18, 2012 4:06 pm 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
Hmm, Ill give it a thought.
And as weird as it sounds i found them both on ebay:
612' : http://www.ebay.com/itm/221042646978?ss ... 1438.l2649

MC6844 : http://www.ebay.com/itm/310203758082?ss ... 1438.l2649

And what about the MC6844?


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 18, 2012 6:03 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8412
Location: Southern California
Quote:
What about the MC6844 dma ic?

At 2MHz max, it's awfully slow compared to the 65c02 & '816. Would the 6844 give enough benefit to justify slowing down that much? I doubt it.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 19, 2012 3:54 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
What about the MC68B44, that should be faster?
And is there any 6502 computer that uses this device?


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 19, 2012 4:39 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8412
Location: Southern California
The "B" version was the fastest, at 2MHz. The 6800 family never got very fast. The 6800 bus and 6502 bus are quite similar, so I suspect someone has put a 68x44 in a 6502 system somewhere.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 19, 2012 5:24 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8114
Location: Midwestern USA
Dajgoro wrote:
What about the MC68B44, that should be faster?
And is there any 6502 computer that uses this device?

I can't understand why you'd want to hobble your system by using such old silicon. The 6844 is dog-slow. The 'LS612 is also slow and a power hog to boot. Plus you'll be paying 10 times what the part is worth. However, if you want to use that stuff at least you have a source.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 19, 2012 6:24 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
Well, the NMOS that i already have aren't much faster, as for the 65c02, toes Rockwell from ebay aren't much faster from the NMOS 6502, and ordering them from wdc isn't cheap. Also there is the issue that i now have tons of 65xx peripherals, and i am going to use them, and so far i got it all working @4MHz, so i ill would like that to run this system at 4MHz too. I also have the backplane, which slows thing down, and there is no other way to squeeze the peripherals more, since i have a not of toes.
As for the mmu, i could easily make on myself, but since the 612' seems to have some "popularity", ill try to use it instead. I was also looking for some fast eproms and eeproms on ebay, and i didn't have much luck, but i found 10ns ram. I am not sure anymore, should i get the fast ram, or will the 70ns ram that i already have do, since the bottleneck is the eeprom(over 100ns), and nmos peripherals?

Edit: In the current system i have 33ns ram.


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 20, 2012 12:47 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
Any comments?
And is there any free easy to use cad program in which i can draw a schematic of the board?


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 20, 2012 1:19 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8114
Location: Midwestern USA
Dajgoro wrote:
Any comments?
And is there any free easy to use cad program in which i can draw a schematic of the board?

Take a look at this. You can use the schematic CAD separately from the PCB layout CAD. The schematic can support multiple sheets and netlist error checking. Its only significant limitation from a hobbyist's perspective is you can't export the netlists. The download link is here.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 20, 2012 4:48 am 
Offline
User avatar

Joined: Mon Aug 08, 2011 2:48 pm
Posts: 808
Location: Croatia
Yes, but then i am stuck with ExpressPCB...
I remember i once tried Eagle, but i couldn't figure out how it works...


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 35 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: