Just a few questions on basics
Just a few questions on basics
Ok, my parts are slowly trickling in. Mouser stuff should be here tomorrow, and that should complete my current hardware orders
Much reading has been happening as I wait, and of course, this means more questions!
I found the original MOS 6500 Family Hardware Manual here on this site. That one seems like a gold mine! Relatively easy reading too as far as these things go.
Anyway, since I ordered a modern CMOS chip from WDC, I'm assuming that the timing stuff (like data has to be stable for x ns ) are gonna be different, right? I know I need to read the actual datasheet for the part I ordered, but those are rarely as clear as that MOS document was.
With all the CMOS stuff I ordered, including 74HC logic, I'm fine running everything at 5 volts, right? I only ask because in my reading, I always see 5v ascribed to TTL, and 3.3v to CMOS. Yet all my MCU projects have been 5v, including some 74HC shift registers. So now I'm confused. Would the statement "CMOS stuff (at least this stuff) is good for 3.3, but is 5v tolerant? Is there a document out there somewhere that sorts this out?
Address decoding. Okay, I just want to make sure I have what I need. I will have a 32k RAM and 32k ROM chip. I am fine leaving portions of either inaccessible in an early prototype just to get things going. I am lead to believe that with a single VIA, single ACIA, and the memory chips I mentioned, a single quad NAND can do it. I also see mention of people using 3 to 8 decoders. I have 1 74HC00 on hand, and 1 74HC138 (along with others. I ordered a kit with 31 specimens). I also have a quad Schmidt trigger NAND. That is as good as the 74HC00 in this case, right? No ill can come of the Schmidt trigger inputs I assume, right? I also have a Hex inverter, and a quad AND, which basically gives me another (slower) quad NAND.
All this to ask, am I sufficiently stocked here? I ordered 2 VIAs and 2 ACIAs, and I can imagine wanting to use all of that eventually. But like I said, I'm willing to have a more crippled version at first.
I have noticed (i think) on YouTube, some builders seem to have dedicated crystal oscillators for their ACIA and I think their VIA. I could totally be wrong here, so maybe its not what I saw. I ordered 4 1 MHz oscillators, and 4 2 MHz oscillators. Am I okay here?
I also ordered some used books:
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
Any obvious books that I should be getting? I know there are .pdfs out there, but I love old tech books (and new).
I think that's it for now. Thanks for being patient with my questions!
Much reading has been happening as I wait, and of course, this means more questions!
I found the original MOS 6500 Family Hardware Manual here on this site. That one seems like a gold mine! Relatively easy reading too as far as these things go.
Anyway, since I ordered a modern CMOS chip from WDC, I'm assuming that the timing stuff (like data has to be stable for x ns ) are gonna be different, right? I know I need to read the actual datasheet for the part I ordered, but those are rarely as clear as that MOS document was.
With all the CMOS stuff I ordered, including 74HC logic, I'm fine running everything at 5 volts, right? I only ask because in my reading, I always see 5v ascribed to TTL, and 3.3v to CMOS. Yet all my MCU projects have been 5v, including some 74HC shift registers. So now I'm confused. Would the statement "CMOS stuff (at least this stuff) is good for 3.3, but is 5v tolerant? Is there a document out there somewhere that sorts this out?
Address decoding. Okay, I just want to make sure I have what I need. I will have a 32k RAM and 32k ROM chip. I am fine leaving portions of either inaccessible in an early prototype just to get things going. I am lead to believe that with a single VIA, single ACIA, and the memory chips I mentioned, a single quad NAND can do it. I also see mention of people using 3 to 8 decoders. I have 1 74HC00 on hand, and 1 74HC138 (along with others. I ordered a kit with 31 specimens). I also have a quad Schmidt trigger NAND. That is as good as the 74HC00 in this case, right? No ill can come of the Schmidt trigger inputs I assume, right? I also have a Hex inverter, and a quad AND, which basically gives me another (slower) quad NAND.
All this to ask, am I sufficiently stocked here? I ordered 2 VIAs and 2 ACIAs, and I can imagine wanting to use all of that eventually. But like I said, I'm willing to have a more crippled version at first.
I have noticed (i think) on YouTube, some builders seem to have dedicated crystal oscillators for their ACIA and I think their VIA. I could totally be wrong here, so maybe its not what I saw. I ordered 4 1 MHz oscillators, and 4 2 MHz oscillators. Am I okay here?
I also ordered some used books:
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
Any obvious books that I should be getting? I know there are .pdfs out there, but I love old tech books (and new).
I think that's it for now. Thanks for being patient with my questions!
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Just a few questions on basics
Dan Moos wrote:
Anyway, since I ordered a modern CMOS chip from WDC, I'm assuming that the timing stuff (like data has to be stable for x ns ) are gonna be different, right? I know I need to read the actual datasheet for the part I ordered, but those are rarely as clear as that MOS document was.
Quote:
With all the CMOS stuff I ordered, including 74HC logic, I'm fine running everything at 5 volts, right?
Quote:
I only ask because in my reading, I always see 5v ascribed to TTL, and 3.3v to CMOS. Yet all my MCU projects have been 5v, including some 74HC shift registers. So now I'm confused. Would the statement "CMOS stuff (at least this stuff) is good for 3.3, but is 5v tolerant? Is there a document out there somewhere that sorts this out?
WDC parts can go much faster at 5V than 3.3V, but you're not pushing the speed limits either way; so you wouldn't need to do 5V unless you need 74HCT or 74ACT logic. The HC and AC can work fine at 3.3V but will be slower. Their preferred voltage is 5V. 74HCT and ACT are 5V only, and there are other CMOS families that are made to work at 5V, like most 74LVC. They're not just 5V-tolerant. They actually use a 5V supply and put out 5V (or very close to it for a logic-high output.
Quote:
Address decoding. Okay, I just want to make sure I have what I need. I will have a 32k RAM and 32k ROM chip. I am fine leaving portions of either inaccessible in an early prototype just to get things going. I am lead to believe that with a single VIA, single ACIA, and the memory chips I mentioned, a single quad NAND can do it. I also see mention of people using 3 to 8 decoders. I have 1 74HC00 on hand, and 1 74HC138 (along with others. I ordered a kit with 31 specimens).
Quote:
I also have a quad Schmidt trigger NAND. That is as good as the 74HC00 in this case, right? No ill can come of the Schmidt trigger inputs I assume, right?
Quote:
All this to ask, am I sufficiently stocked here? I ordered 2 VIAs and 2 ACIAs, and I can imagine wanting to use all of that eventually. But like I said, I'm willing to have a more crippled version at first.
I have noticed (i think) on YouTube, some builders seem to have dedicated crystal oscillators for their ACIA and I think their VIA. I could totally be wrong here, so maybe its not what I saw. I ordered 4 1 MHz oscillators, and 4 2 MHz oscillators. Am I okay here?
I have noticed (i think) on YouTube, some builders seem to have dedicated crystal oscillators for their ACIA and I think their VIA. I could totally be wrong here, so maybe its not what I saw. I ordered 4 1 MHz oscillators, and 4 2 MHz oscillators. Am I okay here?
Quote:
I also ordered some used books:
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
Any obvious books that I should be getting? I know there are .pdfs out there, but I love old tech books (and new).
I think that's it for now. Thanks for being patient with my questions!
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
Any obvious books that I should be getting? I know there are .pdfs out there, but I love old tech books (and new).
I think that's it for now. Thanks for being patient with my questions!
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Just a few questions on basics
Dan Moos wrote:
I also ordered some used books:
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
Last edited by BigDumbDinosaur on Wed Mar 15, 2017 3:57 am, edited 1 time in total.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Just a few questions on basics
Ok, all makes sense.
Am I to understand that I will for sure want a 1.8432 MHz Oscillator for my ACIA's baud rate generator? And this should be an actual oscillator can, not just a crystal, right? Also, if I wanted 2 UARTS for some reason, can the same oscillator serve both?
Am I to understand that I will for sure want a 1.8432 MHz Oscillator for my ACIA's baud rate generator? And this should be an actual oscillator can, not just a crystal, right? Also, if I wanted 2 UARTS for some reason, can the same oscillator serve both?
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Just a few questions on basics
The answers are in the last half of the page of the 6502 primer, http://wilsonminesco.com/6502primer/IO_ICs.html .
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: Just a few questions on basics
Ah! I've at least skimmed that entire document, and this isn't the first time its been shown I missed the answer to my own question. Oscillators ordered!
I'm having difficulty knowing where to look for a good monitor/assembler. I just want to be able to look at memory, and assemble simple "prove it works" code. Basically the bare minimum.
Actually, I'm not really clear what the minimum code (if any) that a ROM needs to have for the machine to be in a "normal" state on power on.
I'm having difficulty knowing where to look for a good monitor/assembler. I just want to be able to look at memory, and assemble simple "prove it works" code. Basically the bare minimum.
Actually, I'm not really clear what the minimum code (if any) that a ROM needs to have for the machine to be in a "normal" state on power on.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Just a few questions on basics
Dan Moos wrote:
Am I to understand that I will for sure want a 1.8432 MHz Oscillator for my ACIA's baud rate generator? And this should be an actual oscillator can, not just a crystal, right? Also, if I wanted 2 UARTS for some reason, can the same oscillator serve both?
The same oscillator can drive more than one 6551. However, if you eventually decide you want two or more serial ports there are better ways to achieve them. Keep in mind that the 6551's technology is very dated, the device originally appearing c. 1977. UARTs have greatly improved since then. Unfortunately, the WDC 65C51 is completely unchanged from the old NMOS part, other than being CMOS and able to operate at higher bus speeds. Plus it has a "stuck bit" problem that has caused several users of the device around here some grief.
While on the subject of the 6551 and other 65xx bus-compatible peripherals, all of them require that Ø2 be connected to them, this being the same Ø2 that clocks the microprocessor (MPU). The 6521, 6522 and 6551 understand the 6502 bus cycle and "know" that the rise and fall of Ø2 indicates when the data bus is valid and when it isn't. It is imperative the chip selects and RWB of these devices be valid before the rise of Ø2—it is implied that RWB of each of those devices must be directly connected to RWB on the MPU. Your glue logic that is selecting a 6521, 6522 or 6551 MUST NOT be gated by Ø2, a common practice of amateur 6502 circuit designers.
In the case of the 6522, the Ø2 clock is also the reference for the two timers and the serial shift register, which is somewhat unfortunate, since changing the Ø2 frequency changes the rate at which the timers run. As an example, if you write some code that is depending on the timer(s) to generate a jiffy IRQ at, say, 10 millisecond intervals for timekeeping purposes (a 100 Hz IRQ), you have to load the timer latches with a value that represents the number of Ø2 cycles that will elapse in 10 milliseconds. If you subsequently change the Ø2 frequency, your timing "assumptions" will be wrong and you will have to change your code to suit.
x86? We ain't got no x86. We don't NEED no stinking x86!
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Just a few questions on basics
The exceptions to that last paragraph are that the VIA's T2 can be made to count pulses on PB6 instead of Φ2, and the shift register can be made to use T2 or an external shift clock. (Just beware of the bug of mode 011, shifting in under control of an external shift clock. A flipflop is needed to get around it. See my post and diagrams in "Tip of the Day," #8, at viewtopic.php?p=2310#p2310 .)
For a design that might increase clock speeds over the coming years but want to keep using the same software, a frequency counter could be made with T1 and T2 of a VIA. T2 would count pulses on PB6 from a reference frequency that would not change over the years, and T1 would interrupt after so many Φ2 counts and the ISR would see what count PB6 had gotten to (or, since you only have to do it once, use a loop in the reset routine instead of using an interrupt), and calculate what the Φ2 frequency is and put it in a variable for any subroutine that needs to figure out what values to use to keep constant timing in spite of improving Φ2 clock rates.
For a design that might increase clock speeds over the coming years but want to keep using the same software, a frequency counter could be made with T1 and T2 of a VIA. T2 would count pulses on PB6 from a reference frequency that would not change over the years, and T1 would interrupt after so many Φ2 counts and the ISR would see what count PB6 had gotten to (or, since you only have to do it once, use a loop in the reset routine instead of using an interrupt), and calculate what the Φ2 frequency is and put it in a variable for any subroutine that needs to figure out what values to use to keep constant timing in spite of improving Φ2 clock rates.
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: Just a few questions on basics
BigDumbDinosaur wrote:
Dan Moos wrote:
I also ordered some used books:
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
6502 Assembly Language Programing by Lance Leventhal
Programming nd Interfacing the 6502: With Experiments by Marvin De Jong (I am particularly liking the sound of this one)
Programming the 6502 by Rodnay Zaks.
- floobydust
- Posts: 1394
- Joined: 05 Mar 2013
Re: Just a few questions on basics
As you ordered a new WDC 65C51 ACIA, I strongly suggest you read this thread, otherwise, it's highly unlikely you'll manage to get that part working: viewtopic.php?f=4&t=2543
Also, if you prefer not to deal with the defective Xmit feature, you can always get an old Rockwell R65C51P4 chip, which will function properly.
Just a note... my 65C02 CPU board uses 32KB RAM, 32KB EEPROM, a 74HC30, 74HC00 and 74HC138. I use Page $FE for I/O and have been running at 10MHz for a couple years without issue. Memory parts are rated at 70ns for RAM and 150ns for ROM, but apparently the Atmel 28C256 is conservatively rated. I also have the ability to write the EEPROM insitu which works fine.
Best of luck in getting your initial board working... needless to say, there's lots of expert help out here
Also, if you prefer not to deal with the defective Xmit feature, you can always get an old Rockwell R65C51P4 chip, which will function properly.
Just a note... my 65C02 CPU board uses 32KB RAM, 32KB EEPROM, a 74HC30, 74HC00 and 74HC138. I use Page $FE for I/O and have been running at 10MHz for a couple years without issue. Memory parts are rated at 70ns for RAM and 150ns for ROM, but apparently the Atmel 28C256 is conservatively rated. I also have the ability to write the EEPROM insitu which works fine.
Best of luck in getting your initial board working... needless to say, there's lots of expert help out here
Regards, KM
https://github.com/floobydust
https://github.com/floobydust
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Just a few questions on basics
Well, that is a surprise, and no mistake. When I did the calculations on that part(from the values in the datasheet), I found that it would limit me to about 4 MHz. I would call that excessively conservative, unless you've got a mislabelled 28HC256 from the same company. I'll have to try that on my own board, once I get the UART working.
Re: Just a few questions on basics
Dan Moos wrote:
I'm having difficulty knowing where to look for a good monitor/assembler. I just want to be able to look at memory, and assemble simple "prove it works" code. Basically the bare minimum.
Actually, I'm not really clear what the minimum code (if any) that a ROM needs to have for the machine to be in a "normal" state on power on.
Actually, I'm not really clear what the minimum code (if any) that a ROM needs to have for the machine to be in a "normal" state on power on.
You can read more here and I'm happy to help tailor it to fit your needs.
More info here -> http://sbc.rictor.org/sbcos.html
Daryl
Please visit my website -> https://sbc.rictor.org/
- floobydust
- Posts: 1394
- Joined: 05 Mar 2013
Re: Just a few questions on basics
DerTrueForce wrote:
Well, that is a surprise, and no mistake. When I did the calculations on that part(from the values in the datasheet), I found that it would limit me to about 4 MHz. I would call that excessively conservative, unless you've got a mislabelled 28HC256 from the same company. I'll have to try that on my own board, once I get the UART working.
I built 3 board sets (Express PCB mini-board service of 3 PCBs). The other two are limited to 4MHz as the R65C51P4 ACIA won't run any faster than 4MHz. I use the slower boards for long term testing and the fast set for development. If you up the clock on your setup, do post if you have any issues.
Regards, KM
https://github.com/floobydust
https://github.com/floobydust
Re: Just a few questions on basics
Daryl, that sounds good. I'll look it up for sure when the time comes.
I am aware of the bug in the 65c51. I will likely order the Rockwell part, but still might try some of the work arounds. We'll see. My wife has started to notice the steady trickle of parts, so...
I'm starting to connect my data bus. As I am on a breadboard, I wanted a tidy way to wire it. I happened I have tons of that colored ribbon cable, and a well stocked kit for making .1" breadboard connectors, so I'm making custom length 8 pin ribbon cables for my buses. So far, it is looking really clean, and my bus lines will have a consistent color code.
I'm running the data bus from the CPU to a central area on the breadboard. From there an individual ribbon cable will run to each chip. I will do something similar with the address bus.
My immediate goal is to get the buses complete, the clock going, and the reset circuit going.
About the reset. Any pointers for a simple, timed and debounced circuit with jelly bean parts?
I am aware of the bug in the 65c51. I will likely order the Rockwell part, but still might try some of the work arounds. We'll see. My wife has started to notice the steady trickle of parts, so...
I'm starting to connect my data bus. As I am on a breadboard, I wanted a tidy way to wire it. I happened I have tons of that colored ribbon cable, and a well stocked kit for making .1" breadboard connectors, so I'm making custom length 8 pin ribbon cables for my buses. So far, it is looking really clean, and my bus lines will have a consistent color code.
I'm running the data bus from the CPU to a central area on the breadboard. From there an individual ribbon cable will run to each chip. I will do something similar with the address bus.
My immediate goal is to get the buses complete, the clock going, and the reset circuit going.
About the reset. Any pointers for a simple, timed and debounced circuit with jelly bean parts?
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Just a few questions on basics
Dan Moos wrote:
About the reset. Any pointers for a simple, timed and debounced circuit with jelly bean parts?
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?