Home » RBC Forums » General Discussion » Plasmo's 68k pathfinder projects (68K, 68000, 68020, 68030, 68040, 100mm x 100mm pc board)
Plasmo's 68k pathfinder projects [message #2193] |
Fri, 31 March 2017 12:48  |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
It is interesting to see recent flurry of activities about the 68000 family. IMO, the 68xxx along with National's 32xxx are two most elegant 32-bit computer architectures of their time. Let this be a lesson to aspiring computer architects: elegant does not mean success, quite the contrary in fact. The wonderful thing about homebrew is we can ignore what the market picked and chose the elegant one over the successful one. I too am a fan of 68K and coincidentally starting to get reacquainted with the 68K in the last three months. I used the 100mm x 100mm pc board format as pathfinder vehicle for my exploration of 68K mainly because it is cheap and I can throw away the board if it didn't worked out. I call them the Tinyxxx, mainly because it is tiny. I've designed & successfully boot up three (68000, 68020, 68030) and am working on the 4th (68040). I posted my experiences on EASy68k forum, but it went down in the past few days due to malicious software. I'm working on wiki of the Tinyxxx on the RetroBrew web under builderpages 'plasmo'. I'm posting all the design information I can think of there. It is work in progress.
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:start
|
|
|
|
|
|
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2202 is a reply to message #2198] |
Fri, 31 March 2017 19:24   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
yoda wrote on Fri, 31 March 2017 15:25Hi Plasmo
I don't quite understand what a SIMM Flash is. My design is a 68040 with 68150 bus controller. I plan a 68681, 68230(for a timer) and 16 IDE interface. I am using EPM7128SLC84 for glue logic (I am almost out of pins so I may have to addd a couple TTL chips to free some pins). I am planning a second EPM7128SLC84 and 2 72 pin simm's up to 256MB of memory. How flexible is your memory controller and would it handle something like that. I don't think it fits in 100X100 board. My biggest concerns are the 68150 debug and DRAM. I know the other devices work well and debugged that code on Gryphon and Xagdin boards.
The way I do debugging is to use a cross compiler on my Mac. Once I have serial port working, I have Xmodem in my code base so I can transfer binaries very quickly (20-30 seconds) into SRAM and do debugging and when I have a certain amount of code working I will reflash my flash with latest and greatest. All I have to do is relink the code at a different start address which I have as link script and just choose a make target of ROM or RAM to change.
Dave
SIMM flash and SIMM I/O come out of the notion that once we have control of the address multiplexing scheme in CPLD, we can reconfigure the scheme based on memory map, so the SIMM sockets become generalized expansion ports. Therefore the motherboard is consists of a CPU, a CPLD and an array of SIMM sockets controlled by the CPLD. Boot flash (SIMM flash), different SIM I/Os, and of course the SIMM DRAM are plugged into the array of SIMM sockets to form a computer system. I want to embody this concept in Tiny040 but it has too many moving parts so I'll wait for another day, probably do it with 68030 becasue I have so many parts.
I discovered too late that I can't do burst memory access in Tiny030 because the burst addresses need to be incremented externally (unlike the 68040). So I'm migrating the external address multiplexer into the CPLD so that's why I use the 100 pin surface-mount 7128SQC100 (I also have a lot of them). Since all addresses are in the CPLD, remapping it for 16 meg or 64 meg DRAM should be easy. I do my CPLD design in Altera schematic for better control of the scarce resource. The DRAM sequencer plus the CAS-before-RAS refresh logic take 18 flip flops. So there are plenty of room for growth. I will upload Tiny030 CPLD design file in a day or two so you can take a look.
I have a S record loader in my boot code so I can load program into Tinyxxx's RAM serially and debug. Tiny302 has memory remap registers to swap RAM into location 0. 68020/030/040 all have vector base register so no need for remapping. Tiny020 & Tiny030 have an expansion port that has the same pinout as a flash memory so it is also a flash programmer. There are two jumpers on Tiny020 that swap the memory map of programmer with boot flash so code can boot out of the programmer. These are my mechanism for developing boot code.
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2204 is a reply to message #2202] |
Fri, 31 March 2017 19:44   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Max,
I don't have answer to your question. My experience with 68K a quarter century ago was embedded hard real-time applications. We developed our own bare-bone OS, monitor/debugger, and applications. At this moment I frankly don't know what to do with 32 megabyte of memory in Tiny030, other than running memory diagnostic! I figure if I can build the CPU engine with plenty of memory cheaply (emphasis on cheaply), others will figure out what to do with it. After Tiny040 I want to do IDE, video, and Ethernet because they are all new to me so that's an end in itself for me. After that...then I'll need to figure out a good answer to your question. Actually I may not have that much time, my wife is asking the question already.
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2208 is a reply to message #2206] |
Sat, 01 April 2017 08:37   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
I think he's saying that he views a SIMM slot as a general purpose expansion slot under the control of the firmware in the CPLD. So he can put DRAM on the card plugged into the SIMM slot, or FLASH on the card, or basically any I/O since he can customize the CPLD code to handle.
A SIMM slot has address, data, and control lines to it tha can handle high speed connections. So it's just a different form factor expansion slot. I've seen SIMM connectors used for all sorts of things. A lot of COM standards put the CPU on a card that fits into a SIMM/DIMM connector. They usually rename the connector but it really is a SIMM/DIMM connector.
I could be wrong though.
Mike
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2209 is a reply to message #2208] |
Sat, 01 April 2017 10:04   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Yoda,
I uploaded the CPLD design of Tiny030 here:
https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=b uilderpages:plasmo:tiny030:tiny030_cpld.pdf
RefreshDRAM block contains the CAS-before-RAS refresh logic. AccessDRAM block contains the DRAM access sequencing logic. Basically it is a clocked tap delay line and that clocks on both rising edge and falling edge. Clock symmetry is important, timing spec is met with symmetry of 60/40 which is the spec of most crystal oscillators. Refresh starts on the negation of Address Strobe. Refresh occurs concurrently with non-DRAM access. Where DRAM access and refresh occurr at the same time, DSACKx will be held off until refresh is completed. The refresh counter of 256 clocks is designed for 16MHz system clock. The board is now running at 24MHz, so refresh counter can increase to 380 clocks. That's lesser than 1% penalty on memory bandwidth. The address multiplexer is external. I used 74240 instead of 74157. That was a mistake because I need an extra time for the RAS address buffer to negate before asserting the CAS address buffer thus resulting in 2-wait state DRAM access at 24MHz. Using 74157 would've reduced wait state to 1 and save 1 CPLD flip-flop. If & when I redesign Tiny030, I'll move the address multiplexer inside the 7128sqc100 so I can have 1 wait access as well as burst access.
I use Verilog as well when I design in Altera's Cyclone & Stratix families, but I always use schematic in the CPLD family for better control of resources. Altera schematic software is superb. I've used my share of CAE tools and it is the best, IMO.
The lead pitch of 7128sqc100 is 26 mil (0.65 mm BSC) so it is not too hard to hand solder. To help it furthur, I'll design the footprint with longer finger pads so it is easier to align and easier to preheat with soldering tip. I have a Metcal soldering station so I can easily switch in a fine tip. The secret is fine tip, fine solder, and flux. I have a roll of multi-core 63/37 10 mil solder and it makes all the difference.
----------------
Mike,
You are exactly correct. Once I have control of SIMM timing in CPLD, I can use the SIMM anyway I like. Not only does SIMM have address/data/controls, it also have lots of spare pins. We are the homebrew-er, we can chuck standards when it is inconvenient!
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2212 is a reply to message #2210] |
Sat, 01 April 2017 12:05   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
256 megabyte, my sainted aunt! How does one even fill 256 meg with meaningful code? Obvious I've lots to learn coming out of the hard real-time world where code MUST execute an iteration within 20mS EVERY time or you are out of a job. I know what level of sophistication 256K byte of hard real-time code can do, what 1000 times more code can do boggle the mind.
All bitching aside, yes, if you put the address multiplexer inside the CPLD, it is easy to change from 16 meg DRAM (11 bit address multiplexing) to 64 meg DRAM (12 bit address multiplexing). 128 meg is 2 banks of 64 meg, but same 12-bit address multiplexing. A fly-in-the-ointment is that 64/128meg DRAM are almost always 3.3V so interfacing 3.3V DRAM to 5V 68040 (there are 3.3V 68040, but I don't think they are available in PGA, I maybe wrong) can be troublesome. If the address multiplexers are external, then they need to be wired for either 11-bit address width or 12-bit address width. At least this is what I think. I don't even know much about DRAM interface until a month ago so others are in better position to answer your question.
[Updated on: Sat, 01 April 2017 12:09] Report message to a moderator
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2214 is a reply to message #2213] |
Sat, 01 April 2017 13:15   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Ha, you are absolutely right. There are SIMM using KM44C16000B which is 5V part. There are even some that's 3.3V SIMM, but proven to work in 5V environment. Cool, so we can have 256meg memory as crazy as it sounds, with 5V 68040.
[Updated on: Sat, 01 April 2017 13:16] Report message to a moderator
|
|
|
|
|
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2253 is a reply to message #2224] |
Wed, 05 April 2017 08:54   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
How to build a $10 68K homebrew?
I'm thinking out loud about building a 68000 homebrew with $10 worth of parts.
There is a good bit of enthusiasm about the 68K family and the basic 68000 is a good starting point to learn about 68K. There are three recent 68000 design activities just on the retrobrew website alone and I'm about to add the 4th one, but with the goal of keeping the board cost as low as possible. My feeling is that more people will work with the 68K if the cost is low.
So what do I mean by low cost? A 68K homebrew will have add-on and expansion capabilities, but the core design, i.e., the minimum set of components needed to boot-up, communicate with outside world, and execute uploaded files, need to be cheap. Items excluded from cost calculation are:
* support accessories are not counted. This means external power supplies, cabling, USB-to-serial adapter are excluded from cost calculation
* IC sockets not counted
* Assembly/test cost not counted
* shipping cost not counted
My approach is this:
* purchase component lots. I've purchased 100x 68000 for $99, that's a while ago, so that's call it $2 today.
* purchase used components. used SMT with bent legs is almost worthless because it can't be machine soldered, but for hand soldering it is not a problem. I've purchased lots of used 7128SQC100 for a song. Let's call it $1 for used 7128SQC100.
* purchase obsolete memory module. SIMM72 at 4 meg & 16 meg are dirt cheap as used surplus lots. let's call it $1 for used 16meg SIMM72.
* pc board in the 100mm x 100mm form factor. We know it is $10 for 10x 100mm x 100mm pc board, so $1 pc board.
With CPU/SIMM/CPLD and $1 pcb ($5 parts so far), lets design a 68k using SIMM, CPLD, and no ROM. Actually there is a ROM, but it will be a cheap serial flash, such as an AT24C256 (eBay has it at $12 for 50pcs). Here is a piece of innovation I don't have, yet--how to load boot program from serial flash into SIMM at power up. This is easy with a sophisticated FPGA, but I'm working with a modest (therefore cheap) CPLD. I know about 40% of 7128S is used for decoding and SIMM DRAM controller, I believe the serial flash logic can fit in remaining 60%. This part definitely require path finding.
Remaining components to round out the design is DUART (68681, $1), oscillators ($1), and capacitors/resistors ($1), reset logic & push button (40 cents). The tally stands at $8.65 right now. A relatively expensive SIMM socket is needed to plug the SIMM72 to pc board, but perhaps that can be eliminated by have SIMM72 pads at one edge of the pc board. SIMM72 can be soldered to the pc board using single-row 1.27mm strips (35 cents). So it is $9 now, I think that's all.
So the $9 core design looks like this:
68000 CPU, Altera 7128SQC100 (decode/DRAM controller/flash loader), 16meg SIMM72 DRAM, AT24C256 serial flash, 10 MHz oscillator, 3.6864MHz oscillator, 68681 DUART, filter cap, bypass cap, resistors as needed.
Plenty of room remaining on the 100mm x 100mm board, so IDE interface, expansion connector, 7-segment displays, etc can be added, but those do not count toward $9 basic design.
Thoughts?
Edit, I suppose this will be called Tiny68K, but with 16meg DRAM max out 68000's memory space, it really should be Maxi-Tiny68K.
[Updated on: Wed, 05 April 2017 09:01] Report message to a moderator
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2257 is a reply to message #2254] |
Wed, 05 April 2017 22:21   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Thanks for the feedback. It is unclear to me how elastic is the demand for retrobrew computers, whether lower cost will bring in correspondingly more interests or more applications. Prior to discovering the low cost of pc board manufacturing, I've reverse engineered a batch of commercial 68K boards, modifying boot software and adding Xbee & LCD display features and scattering them around my house & garage. Cost was important for those embedded applications. It seems to me a $10 68K core with compact flash IDE and room for other I/O has many potential embedded applications.
I envision the serial flash loader to keep CPU in reset while copying ROM code from serial flash into DRAM at power up, so when CPU comes out of reset, it will have the boot code in first 8K or so of DRAM. Ideally the CPU can also write boot code back into the serial flash, but that may require more logic than the 7128S CPLD can handle, so I plan to prototype a serial flash programmer with a Tiny030. Program a serial flash with Tiny030, move it to TinyMax68k and boot. That's the plan
Your experience with SIMM72 is different than mine. SIMM were so cheap at one time that I can go to local computer salvages and buy them by the pound. I did and I have about 5 pounds of them, many scratched up, thrown into pile without any ESD or foreign object controls. Recently I memory tested 18 of the16-meg SIMM from the salvages on a Tiny030 and 16 of them passed. Nevertheless a SIMM socket in conjunction with solder-able SIMM edge pads is not a bad idea. SIMM socket can accommodate DRAM/SIMM flash/SIMM I/O and solder-able edge pads can handle SIMM DRAM or serves as an expansion port.
I understand the reluctance with SMT soldering, especially with BGA and fine pitch (<20mil) components, but that really limit the scope of what one can design & build. With the cheap pc board technology so advanced, it is a shame not to match the pcb with comparable packaging technology. It is a skill well worth cultivating.
3.3V 68SEC000 with Max10 is a good idea. MAX family even have calibrated RC clock that's accurate enough for baud clock. A simple UART only need 37 flip flops plus whatever for clock prescaler. Unfortunately my 16meg SIMM are all 5V, so it won't play in this particular scenario. CPU+FPGA+memory are great combination.
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2258 is a reply to message #2257] |
Wed, 05 April 2017 23:29   |
 |
Andrew B
Messages: 467 Registered: October 2015 Location: Near Redmond, WA
|
Senior Member Administrator |
|
|
I will probably jump into the 68000 bandwagon here in the next few months, likely with John's KISS-68030 board (I'd like to replicate Will's super sexy Linux setup).
I do think it would be nice to have a new, beginner friendly starter board. We have a lot of Z80/Z180 options right now and a 68000 option would be great. (Although in fairness to John C - we do already have 2, the Mini-68k and the KISS-68030)
In a new design I would prioritize part availability long-term and limiting SMT soldering if possible over cost. If not availability of exact parts, ability to slightly change out parts and keep things going (like swapping to a newer more available FPGA over time).
The biggest issue I see with the various ECB cards and John M's S-100 cards is that some parts just become un-available with time. Various FDC chips have different levels of interchange/idiosyncrasies and some are hard to get, the 28-pin UART on the CPU280, the HD-6120 on the SBC-6120, the Lava 10 FPGA based VGA S-100 board FPGA module, etc. A design that lots of beginners might have fun with over the next 10 years (about the age of some of the original RBC boards from when the project was known as N8VEM) should use as much standard parts as possible. Using common parts also allows people to choose from buying new from Digikey/Mouser/Farnell/etc or sourcing from whatever discount source of choice they have.
This is just my 2 cents and I think primarily this board and wiki is a 'do-acracy' so feel free to do whatever you'd like and share. I think we are on the edge of something really cool with all these 68000 discussions and Will's Linux work.
[Updated on: Wed, 05 April 2017 23:33] Report message to a moderator
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2265 is a reply to message #2263] |
Thu, 06 April 2017 16:09   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Andrew,
Welcome to the 68K bandwagon, more is truly merrier!
Beside the 680x0 family of computer, there are also the 683xx (CPU32) family of microcontrollers which use 68000 as the core processor. I don't see much homebrew activities with 683xx which is surprising because they are particularly easy to construct thanks to rich I/O features, system integration module, and background debugger. Many of them are available in PGA package (68360, 68340, 68302). I collect them, and intent to build them in the 100mm x 100mm format in next few years (it will take years to explore the CPU32 family).
I probably didn't make it clear at the beginning of this thread that all my Tinyxxx designs are available to the retrobrewcomputers users. I posted most of the design information, including the Gerber/drill files, in my builder page ( https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:start The construction logs are empty becasue I want to build each board again and document all the steps. I'd happy to supply my surplus bare boards at my cost which is about $3 per board because of DHL shipping. Alternatively, at $10 for 10 boards, you may just add the design files to your existing pcb order.
----------------
Mike,
After 38 years, 68000 is still in production. This is so because they've worked their way into industrial controls and automotive engine controls, so I won't be surprised to see them around for another 10 years. CPLD/FPGA have evolved rapidly during my career so it is unlikely any of them will be in production 10 years from now. There'll be FPGA for sure, just not today's FPGA. Ironically, 22V10 is more likely to be around 10 years from now, IMO. That's because 5V systems are so entrenched in industrial controls and 22V10 is critical in supporting the 5V systems.
[Updated on: Thu, 06 April 2017 16:16] Report message to a moderator
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2270 is a reply to message #2267] |
Fri, 07 April 2017 04:18   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
I looked into the 68360 manual just now and I see the serial devices are SCC, same as that of the 68302. The console port of the Tiny302 is a SCC so yes, I can sympathize with your frustration. There are about 30 lines of SCC initialization code and few lines in the transmit/receive interrupt services that took several days of intense study and good bits of trial & error to understand. The lack of background debugger on the 68302 made code debugging even more difficult. But once various registers are initialized and the buffer descriptors are setup & linked, it is a dream to run. The Communication Process took care of most everything and the 68000 just moves data block in/out.
Take a look of Tiny302 with just the core components (the minimal set of components to boot up processor, communicate with console, load & execute programs), It is basically an oscillator, boot flash, RAM, 68302 and a connector (left side of the board that interfaces to USB-to-serial adapter). Even the memory remap function resides in the 68302. I believe this is what the core component set for all 683xx will look like.
[Updated on: Fri, 07 April 2017 04:21] Report message to a moderator
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2275 is a reply to message #2274] |
Fri, 07 April 2017 09:49   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
Does the 683xx contain a MMU? I can't find anything that indicates it does but that info could be buried someplace that I haven't noticed.
And to me, the lack of a MMU would be a show stopper. Unless it could be used as a 68040 companion. And for now, I'll take Dave's word that using it as a companion isn't as start forward or beneficial as one would hope at first glance. So I'll be sticking to my dream of a Sun 3/80 retro system until someone comes up with a more enticing idea.
Mike
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2278 is a reply to message #2276] |
Fri, 07 April 2017 14:07   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
jcoffman wrote on Fri, 07 April 2017 09:53
None of the 683xx chips have an MMU. The chips are intended for embedded applications. They would make good companion chips for a 68040 or 68060 based computer.
--John
That's what I thought. I just wanted to double check with those who know more than me.
Mike
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2312 is a reply to message #2253] |
Sun, 09 April 2017 00:33   |
|
plasmo wrote on Wed, 05 April 2017 18:54How to build a $10 68K homebrew?
A relatively expensive SIMM socket is needed to plug the SIMM72 to pc board, but perhaps that can be eliminated by have SIMM72 pads at one edge of the pc board. SIMM72 can be soldered to the pc board using single-row 1.27mm strips (35 cents).
That's an excellent idea :)
I also recently tried to come up with something to experiment with 72pin SIMMs without sockets, and I came up with this solution which although a bit laborious, works very nicely: http://imgur.com/a/qAi5k (the last two images at the bottom of the album). That's a standard double-row header straddling the SIMM, with one side of the pins bent about 45 degrees to contact odd pads on one side and even pads on the other.
|
|
|
|
|
|
Re: Plasmo's 68k pathfinder projects [message #2666 is a reply to message #2658] |
Sat, 06 May 2017 20:23   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Kip,
Since I'm shooting for a $10 68000 computer, the pc board cost should be cheap, too. In fact, the board itself is 50 cents, but DHL shipping from China drives the effective board cost to $1.50 each, plus whatever cost of first-class mail in the USA.
I'll post a note when I have the board working, but in the meantime the schematic and Gerber design files are in my builder page under the heading of "Tiny68k". I'll update the page as I go. It will be a while because first I have to check out the serial EEPROM programmer that I designed along with the Tiny68K. Figure out how to write the EEPROM, program it with appropriate 68000 monitor, move the chip to Tiny68K and then figure out how to load the 68000 monitor from EEPROM into DRAM and boot out of the DRAM. Lots of moving parts, and I'm busy farming in the summertime.
You may noticed that I've added Xbee interface, IDE for CF, 7-segment displays, and SIMM72 socket. These are "luxury" items not part of the $10 68000 computer. (I sound like a car salesman 
|
|
|
Current Time: Mon Mar 17 03:49:42 PDT 2025
Total time taken to generate the page: 0.00816 seconds
|