Page 2 of 3
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Fri Jul 17, 2020 4:03 pm
by MikeDev101
if the OP thinks he over-heated the 6502, I think it would be worth buying a new W65C02S
It's actually pretty unlikely MikeDev101 overheated his 6502. As we've often heard Garth explain, semiconductor dice can withstand surprisingly high temperatures.
But a newly purchased 65C02 (either WDC, or Rockwell if one can be found) is still a good idea. It could be used to get the SBC running and then the SBC could be used to test the original NMOS CPU. And presuming the latter is functional then maybe it could be sold along with the other pieces of the drive.
(It's worth noting that, compared to NMOS 6502's, WDC C02's have some minor pinout differences that need to be observed. But the Rockwell pinout is identical to the original NMOS.)
-- Jeff
After doing a basic power test using an Arduino as a 5v power source, it got a little bit warmer than room temp, like maybe 75°F (My room temp is 72°F). It's very likely that my 6502 is still working fine!
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Fri Jul 17, 2020 4:45 pm
by BigEd
You might find it useful (or interesting) to review other threads from people with similar starting points. I found these:
viewtopic.php?p=33687#p33687
viewtopic.php?f=12&t=5442
There is a bootstrapping problem, in that you need the 6502 to be running code when it comes out of reset, and you need that code to be found. Broadly there are these choices, all of which have been done:
- buy, build, or borrow a programmer
- use a microcontroller to load RAM with code before releasing reset
- use a microcontroller to emulate a ROM in real time
- ask someone to burn a ROM for you (great if you don't expect to have to revise it!)
- build a single stepping front panel with toggle switches
Speaking of a ROM which doesn't need to be revised, you should consider building a standard and tested design before embarking on designing and building your own. It's a better learning experience. I recommend Grant Searle's projects, but of course there are others.
As and when you do build your own, it's better to start simple and plan a second revision with more sophistication. It's a common failure to be over-ambitious for the first build: it risks a difficult project which may sap your motivation.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Sat Jul 18, 2020 12:30 am
by cbmeeks
I don't think this has been mentioned, but if you want an amazing video series about building a 65C02 breadboard computer, no one beats Ben Eater.
https://www.youtube.com/watch?v=LnzuMJLZRdU&t=21s
His videos are incredible.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Sat Jul 18, 2020 11:37 pm
by MikeDev101
You might find it useful (or interesting) to review other threads from people with similar starting points. I found these:
viewtopic.php?p=33687#p33687
viewtopic.php?f=12&t=5442
There is a bootstrapping problem, in that you need the 6502 to be running code when it comes out of reset, and you need that code to be found. Broadly there are these choices, all of which have been done:
- buy, build, or borrow a programmer
- use a microcontroller to load RAM with code before releasing reset
- use a microcontroller to emulate a ROM in real time
- ask someone to burn a ROM for you (great if you don't expect to have to revise it!)
- build a single stepping front panel with toggle switches
Speaking of a ROM which doesn't need to be revised, you should consider building a standard and tested design before embarking on designing and building your own. It's a better learning experience. I recommend Grant Searle's projects, but of course there are others.
As and when you do build your own, it's better to start simple and plan a second revision with more sophistication. It's a common failure to be over-ambitious for the first build: it risks a difficult project which may sap your motivation.
Thanks, I'll take a look soon. I do have a spare Arduino UNO R3, so I could write me up a ROM to RAM copier.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Wed Jul 22, 2020 3:03 am
by MikeDev101
I've taken a look into the videos, and they help clear up some of my confusion. I've yet to acquire a EEPROM programmer to begin writing assembly code to use my chip, and a 1MHz full-can oscillator for the clock. I'll also be extracting the MOS 8520A-1 from my now "for-parts" Commodore 1581 drive (Bad idea now, so RIP... Then again I'm basically broke atm) Complex Interface Adapter for my project's I/O. Embedded is a photo of the basics, ready for me to get some work done.
I've considered using a similar memory map used in the videos. I'm probably gonna use a bit more efficient methods of using the 68K (idk) addressable space for RAM/ROM/IO... I'll also be using my FLASH chip instead of my EEPROM, mainly because of a faster maximum access time, according to the data sheets and AFAIK. Since I have a limited amount of SRAM to use (8KB), I'll probably use an extremely low-address, maybe a zero-page? And maybe the ROM an extra 48K, with the remaining amount of addressable space for the CIA, though this is a idea and I'm not sure my miscellaneous parts bin has the logic gates I need to determine what hardware device to use when the CPU fires a request over the system bus...
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Wed Jul 22, 2020 7:30 am
by BigEd
I'd suggest your first build can have a very simple, and even inefficient, memory map. It will make life easier. You have little choice but to put RAM at the low end, and programmable ROM at the high end, because of the 6502's design.
That is to say, I urge you to think of your first design and build as only the first - it does not need to have all the flexibility and capability that you might want in a subsequent design.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Wed Jul 22, 2020 2:59 pm
by MikeDev101
I'd suggest your first build can have a very simple, and even inefficient, memory map. It will make life easier. You have little choice but to put RAM at the low end, and programmable ROM at the high end, because of the 6502's design.
That is to say, I urge you to think of your first design and build as only the first - it does not need to have all the flexibility and capability that you might want in a subsequent design.
I know... It's just a thought. As I said in my last post, it's only possible if my miscellaneous parts bin has some logic gates for determining what I/O device to use. I haven't checked it in a while, but I do believe I may have some NAND gates... Not entirely sure at the moment but it's something along the line of the Texas Instruments CD-series logic chips?
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Wed Jul 22, 2020 7:24 pm
by GARTHWILSON
I haven't checked it in a while, but I do believe I may have some NAND gates... Not entirely sure at the moment but it's something along the line of the Texas Instruments CD-series logic chips?
Leave the CD4000 series for when you need 12V (or other high-voltage) logic with no speed requirement. CD4000-series logic is
extremely slow (like hundreds of nanoseconds at 5V) and totally unsuited for address decoding and other glue logic.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Wed Jul 22, 2020 8:58 pm
by Dr Jefyll
I do believe I may have some NAND gates... Not entirely sure at the moment but it's something along the line of the Texas Instruments CD-series logic chips?
CD isn't the relevant part. What's important is the letters after the 74, such as 74
LS00 or 74
HC00.
Garth's right about CD
4000 series being unsuitable. But not all CD chips are 4000 series. I'm pretty sure CD74 series and CD4000 series both exist. AIUI, the CD is more of a manufacturer's designation, and not really of much concern to us.
So, in other words, I think you can ignore the CD part entirely. Look for one of the 74 families. 74HC and 74HCT are usually good choices, unless you really need some extra speed. As for 74LS series... well, it works, but it isn't the best choice.
Have a look in your junk box and see what you can find!
-- Jeff
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Thu Jul 23, 2020 12:24 am
by MikeDev101
I do believe I may have some NAND gates... Not entirely sure at the moment but it's something along the line of the Texas Instruments CD-series logic chips?
CD isn't the relevant part. What's important is the letters after the 74, such as 74
LS00 or 74
HC00.
Garth's right about CD
4000 series being unsuitable. But not all CD chips are 4000 series. I'm pretty sure CD74 series and CD4000 series both exist. AIUI, the CD is more of a manufacturer's designation, and not really of much concern to us.
So, in other words, I think you can ignore the CD part entirely. Look for one of the 74 families. 74HC and 74HCT are usually good choices, unless you really need some extra speed. As for 74LS series... well, it works, but it isn't the best choice.
Have a look in your junk box and see what you can find!
-- Jeff
Well, I only have a pair of CD4011BE chips, and a MC14001BCP chip (which is a NOR, not a NAND)... Either I should run my CPU at a really low speed clock or consider purchasing the aforementioned logic chips.
I do have a spare 12V with 5V power supply, with which I can run the CPU and other low-power devices are 5V, whilst running the logic gates at 12V? Though, I'm not entirely sure how the chips will perform. I'm not really good with reading datasheets...
Edit: I have my for parts 1581 drive motherboard, and it does have a HD74LS00P chip. That's much better. Also, I've taken a look into the 74LS93 chip and the drive's circuit board diagram, and if I'm not mistaken the 74LS93 divides the oscillator clock (16MHz) by 12, so it should be theoretically operating at 1.33MHz?
I don't really have that much need for speed, just a basic design that "works". In the future I'll consider upgrading the logic and purchasing the W65C02S, with which I'll be able to use my 16MHz oscillator.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Thu Jul 23, 2020 1:18 am
by GARTHWILSON
Well, I only have a pair of CD4011BE chips, and a MC14001BCP
It's still a 4001; so the same advice applies.
I do have a spare 12V with 5V power supply, with which I can run the CPU and other low-power devices are 5V, whilst running the logic gates at 12V? Though, I'm not entirely sure how the chips will perform. I'm not really good with reading datasheets...
You cannot mix voltages like that without voltage-translation parts in between. If you run a 4000-series logic IC on 12V, its inputs won't recognize a 5V (let alone 3.3V or 2.4V) input voltage as a logic '1'. Also, its 12V output may blow 5V logic's inputs. 4000 series is still slow at 12V too, just not as slow as it is on 5V or lower. You're pretty much stuck with either 74-family logic or programmable logic.
I'll also be using my FLASH chip instead of my EEPROM, mainly because of a faster maximum access time, according to the data sheets
The difference in the speeds of these two will be extremely small compared to the difference in speeds between the 4000 series and most of the 74xx__ families.
I'm probably gonna use a bit more efficient methods of using the 68K (idk) addressable space for RAM/ROM/IO...
Such finer-grained address decoding requires the cascading of more logic levels, which makes the gate delays add up. That's ok if the logic is fast enough for the desired clock speed; but seeing if you're in the clear will require looking at the propagation delays published in the various parts' data sheets and adding them up where you have multiple gates cascaded.
I've considered using a similar memory map used in the videos.
Ben apparently got it from the 6502 primer, specifically its address-decoding page, which I wrote nearly 20 years ago and finally published it eight years ago when I got my own website. [Edit: I forgot I had posted it here at viewtopic.php?p=2326#p2326 in Jan 2001.] I've been using the scheme since the early 1990's. It's possible of course that he came up with the scheme independently; but I still highly recommend going through the 6502 primer which is about the many aspects of building your own 6502 computer. It was written to answer questions and problems that kept coming up here on the forum.
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Thu Jul 23, 2020 1:36 am
by MikeDev101
(snip)
Good advice. I have decided to stick to a basic EEPROM and SRAM with CPU design. I'll be using the HD74LS00P logic chip and a 74LS93 divider (in tandem with the 16MHz oscillator, to hopefully run at 1.33MHz) to provide the clock. Not to be rude, but I find it easier to follow the video's example. But I will gladly take a look at the primer later on when I've got myself (A) a useless mess of wires (which I hope doesn't happen

) or (B) a functional design, with new ideas.
I've found me a nice little project box to work with. Since I'm lacking breadboard size, I'll probably use direct-wiring soldering, or just everything wired directly together and held down with something (that's already sounding like a dumpster fire of bad ideas). I'll probably just use good ol' hot glue and sticks. Alas, guess it's off to the races! I'll be extracting my CIA, 74LS93 and HD74LS00P soon (and preferably a socket for my EEPROM).
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Sat Jul 25, 2020 3:12 am
by MikeDev101
I've decided to put my project on hold. I've had some complications...
1. I've damaged 1 and destroyed another of my only EEPROM sockets, by accident, during the extraction process. One of them is still useable, but it's not in one piece anymore and the other is a lost cause (missing/broken pins beyond belief)...
2. My 74LS93 chip, responsible for dividing my 16MHz oscillator clock down to 1.33MHz, has a broken VCC power pin so it's basically useless.
3. I've fried my CIA chip on accident! I mistaken my CIA for my CPU during wiring up the power cables, and when I smoke tested the chips (trying to check mainly the CPU) I unknowingly fried my CIA in the process. My CPU is fine but now I've got no way for the CPU to communicate with the outside world.
And worst of all, I've ran all outta solder.
In the meantime I'll probably be considering purchasing new parts. I'll be upgrading to a W65C02, a W65C22 and more SRAM, along with a 10MHz oscillator for the W65C02, instead of a funky 74LS-based clock dividing circuit, some solder (and some solder wick), and finding me a good deal on an universal EEPROM programmer! (I'm aware of the existence of the TL866ii Plus or whatever you call it, but It's a bit pricey for my liking)
Re: 6502 AD Breadboard microcontroller? ("Poor man's Arduino
Posted: Sat Jul 25, 2020 12:29 pm
by cjs
...and finding me a good deal on an universal EEPROM programmer! (I'm aware of the existence of the TL866ii Plus or whatever you call it, but It's a bit pricey for my liking)
You might consider using Amtel 28C256 or similar EEPROMs, which require no special voltages to program, just the usual +5 V. (You can even program them in-system, though you want to make sure you're not running code from it when you do so.)
Note that the pinout has a couple of minor differences from the standard JEDEC-pinout 27xxx PROMs.
Re: 6502 Microcontroller (Poor man's Arduino) [On Hiatus]
Posted: Sat Jul 25, 2020 6:07 pm
by daniMolina
I really think you should practice your soldering. It seems all your issues come from this...
I've damaged stuff over the last 3 years, luckily nothing too important and less and less over time.
It's a shame to damage hard to find components or equipment, and it gives you that sensation of failed objectives...
The most important lesson I've learnt in this world is, never do any work if you're tired, or not fully concentrated. Errors pile up at at amazing pace if you do.
Also, triple check everything before powering up. This will save you a lot of problems and frustration along the way.
As hobbyists, we are here to have fun.