6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 12:24 pm

All times are UTC




Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Sep 09, 2020 1:51 am 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
I've been curious about building a 6502 system with a pair of VIA's, rather than the usual 6551 paired with VIA's. The idea is two fold: first, side step the 65C51 bug. second, the hardware forces you to try self-hosting, rather than being reliant on a host PC. As luck would have it, there was an auction for an APATCO NCS-EB50 on eBay which has this hardware configuration. So I purchased it to give it a try.

But there is a problem. The documentation included with the NCS-EB50 is thin and missing obvious information like a parts list. I assume that's because APATCO intended for the PCB to be an add-on to their NCS-2056T breadboard computer kit, rather than a standalone product. However, the NCS-2056T is perpetually out of stock, and APATCO's contact us email link is broken. So I am somewhat on my own with the PCB.

The documentation did include a memory map and a schematic, so I am using the latter to build a parts list. I've also uploaded everything to Google drive including my parts list in progress.

See: https://drive.google.com/drive/folders/ ... sp=sharing

Looking at the memory decoding logic, it looks identical to Daryl Rictor's SBC2.

But there are some things I find odd about this schematic compared to other 6502 SBC's I've seen:

* The diodes for the VIA's IRQ line are 1N5817 rather than the usual 1N4148 or 1N914. I have a bunch of the latter so I am wondering if I can substitute?

* Each IC has a pair of capacitors in parallel between Vdd and ground. I assume this is for decoupling the IC's. Normally most schematics only have a single 0.1 uF capacitor. But the VIA 1 for example has C7 0.047 uF and C11 1.0 uF.  Likewise the RAM has C3 performing a similar function, but it has a value of 0.056 uF!

* If the small capacitor is a decoupling cap, what is the purpose of the 1.0 uF?

* Resistors R3 through R13 look like pull up or pull down resistors, but the 3K value is slightly less than the 3.3K used in the SBC 2. Is this reasonable? But that raises the question why 3K versus 10K which I've seen used as pull ups in other applications?

* The data sheet claims you can use either a W65C02 or a W65C816S. But I thought the W65C816 wasn't a drop in replacement to the W65C02 due to asserting the high address lines on the data bus. Would this actually work?

* Having the choice of a TTL oscillator or crystal oscillator circuit is a bit odd.But I guess it is related to the educational aspect of the kit.


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 09, 2020 3:49 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
Martin_H wrote:
* The diodes for the VIA's IRQ line are 1N5817 rather than the usual 1N4148 or 1N914. I have a bunch of the latter so I am wondering if I can substitute?

Any small signal Schottky diode will work. The 1N914 and 1N4148 have too much forward drop to reliably pull IRQ down to a solid logic zero.

Quote:
* Each IC has a pair of capacitors in parallel between Vdd and ground. I assume this is for decoupling the IC's. Normally most schematics only have a single 0.1 uF capacitor. But the VIA 1 for example has C7 0.047 uF and C11 1.0 uF.  Likewise the RAM has C3 performing a similar function, but it has a value of 0.056 uF!

* If the small capacitor is a decoupling cap, what is the purpose of the 1.0 uF?

Usually, an arrangement such as that (theoretically) improves performance a bit by reducing voltage fluctuations at Vcc. I personally don't think the 1.0 µF capacitor is doing all that much in that regard.

Quote:
* Resistors R3 through R13 look like pull up or pull down resistors, but the 3K value is slightly less than the 3.3K used in the SBC 2. Is this reasonable? But that raises the question why 3K versus 10K which I've seen used as pull ups in other applications?

3.3K is customary for pullups. 10K will work but increases vulnerability to noise.

Quote:
* The data sheet claims you can use either a W65C02 or a W65C816S. But I thought the W65C816 wasn't a drop in replacement to the W65C02 due to asserting the high address lines on the data bus. Would this actually work?

There are some pinout differences that may trip you up. I suggest you stick with the 65C02.

Quote:
* Having the choice of a TTL oscillator or crystal oscillator circuit is a bit odd. But I guess it is related to the educational aspect of the kit.

I'd go with the oscillator, which must generate CMOS, not TTL, output. Crystal oscillators can be touchy and sometimes won't run in a stable fashion if operating conditions aren't right.

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


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 09, 2020 3:20 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
Thank you for the detailed response BDD.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 6:46 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
I have almost enough to build this board with parts lying around the house. But I only have 0.1 uF decoupling caps, which are the values I normally use. I'm tempted to use those instead of the 0.047 and 0.056 uF values they call for.

Also can you mix LS and HC logic? Most of my spares are in the LS family, but I have a 74HC30 I could put to use here.


Last edited by Martin_H on Fri Sep 11, 2020 7:02 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 7:01 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
Sounds like a small difference to me: a bigger difference might be if they are a different kind of capacitor, which could affect the frequency reponse.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 7:34 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
Martin_H wrote:
Also can you mix LS and HC logic?

The answer is mostly "yes," but with caution. LS's high output is just barely, barely high enough for HC to recognize it as a valid '1'. The best ap. note I can think of is probably Farichild's AN314, at https://web.archive.org/web/20161223134 ... AN-314.pdf . I have more in the list at the bottom of the 6502 primer's page on 74xx logic families and timing margins, at http://wilsonminesco.com/6502primer/LogicFamilies.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?


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 7:36 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
Thanks BigEd and Garth.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 7:52 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
Martin_H wrote:
I have almost enough to build this board with parts lying around the house. But I only have 0.1 uF decoupling caps, which are the values I normally use. I'm tempted to use those instead of the 0.047 and 0.056 uF values they call for.

The 0.1 µF caps will work fine. Use X7R MLCCs if possible.

Quote:
Also can you mix LS and HC logic? Most of my spares are in the LS family, but I have a 74HC30 I could put to use here.

An HC device's outputs will have no problem driving an LS device's inputs to a solid 0 or 1. However, as Garth noted, an LS device's outputs are not guaranteed to rise to the CMOS equivalent of logic 1, which is typically 3.5 volts minimum in a 5 volt circuit. It might work...or might not. Or it might work for a while but normal device temperature rise during operation may eventually cause the unit to become unstable or go belly-up.

If you must mix logic families I suggest you use HCT devices, whose inputs operate at TTL levels and thus are compatible with LS logic. Best results are achieved when a single logic family is used throughout.

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


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 8:09 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1488
Location: Scotland
Martin_H wrote:
* The data sheet claims you can use either a W65C02 or a W65C816S. But I thought the W65C816 wasn't a drop in replacement to the W65C02 due to asserting the high address lines on the data bus. Would this actually work?


Yes. I have done it on my Ruby 6502 system when I looked at moving to the 65816... To do it correctly there ought to be a single jumper but I never bothered - the result is that the clock output on the 65C02 gets pulled to +5v via a 3.3K resistor. This is a signal input on the '816 that normally needs tying high. Having a jumper would prevent this happening, but in didn't seem to make any difference to the operation of my board when I reverted back to the 6502. I don't use that clock for anything anyway. (I'd modded the PCB rather than spin up a new one - if I were to design a new one then I'd put in a jumper). I've not checked that schematic, but maybe there is a jumper?

There is no issue with the top 8 address lines being output during the low half of the clock cycle.

Get what CPU you want, but please get it from a reliable source - e.g. Mouser. There is no reason to buy them from weird ebay sellers because they're still being manufactured and sold new.

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2020 8:23 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
drogon wrote:
There is no issue with the top 8 address lines being output during the low half of the clock cycle.

Not necessarily.

I've seen plenty of designs in which the ROM's /OE was tied to ground and only /CS used to control the ROM. In such a case, the ROM will drive the data bus during Ø2 low as soon as a valid address is present, causing major bus contention. That's one of the reasons why I recommended the use of the 'C02.

Quote:
Get what CPU you want, but please get it from a reliable source - e.g. Mouser. There is no reason to buy them from weird ebay sellers because they're still being manufactured and sold new.

Amen to that! You run a significant risk of being sold a counterfeit part if you buy on eBay. WDC lists authorized distributors of their products on their website. I highly recommend you purchase only from one of them.

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


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 12, 2020 2:17 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
@all, thanks for the feedback. I'll try the mixed HC and LC and see what happens.

The reason I have LC logic is I live near a good old fashion electronics store called You-do-it electronics, and that's what they carry. They are a bit like stepping into a 1970's Radio Shack (in a good way). I also mail order from Mouser and Digi Key as well.

@Gordon, I looked at the schematic and I didn't see a jumper to a pull up. Which CPU pin would need it?


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 12, 2020 4:18 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1488
Location: Scotland
Martin_H wrote:

@Gordon, I looked at the schematic and I didn't see a jumper to a pull up. Which CPU pin would need it?


the '816. It's the ABORT pin - pin 3.

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 12, 2020 4:42 pm 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
drogon wrote:
the '816. It's the ABORT pin - pin 3.

Thanks. Looking at the schematic, they have it pulled up with a 3K resistor and available on their expansion bus. But otherwise unused. They labeled it PHI10/ABORTB as well.


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 12, 2020 7:26 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
Martin_H wrote:
drogon wrote:
the '816. It's the ABORT pin - pin 3.

Thanks. Looking at the schematic, they have it pulled up with a 3K resistor and available on their expansion bus. But otherwise unused. They labeled it PHI10/ABORTB as well.

ABORT has an interesting history, which summed up, was Bill Mensch added that feature because the system on which the 65C816's design was simulated (a Prime 300) had a similar capability and he thought it would be a cool thing to have. Unfortunately, ABORT is poorly-documented and has tricky timing requirements if it is to be used—which means, of course, that no one has used it to date that I know of. To quote Bill Mensch when I queried him about ABORT details in May 2013:

Quote:
You are only the second person that asked me about the ABORTB operation in 25+ years. A BBC Acorn engineer was the first before when I thought they were considering a competitor to the Apple IIgs. They used this feature [in] what became their ARM processors.

I still entertain thoughts of figuring out how to use ABORT to set up a "protected mode" environment with the '816, but recent events in my life have conspired to slow down my electronics activity in general.

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


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2020 4:10 am 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
drogon wrote:
There is no issue with the top 8 address lines being output during the low half of the clock cycle.
Not necessarily. I agree with BDD's point, and will cite another.

In 6502 and 65C02 systems, write data from the CPU and read data from the system typically remain on the data bus (due to capacitance) for a long time -- essentially an extra 1/2 cycle -- after Phi2 falls. And it wouldn't be surprising if some systems will fail without a few extra ns of write data hold time -- the designer has knowingly or unknowingly created a design which depends on it.

-- Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 36 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: