Electronics > Beginners

Breadboard 65c02 computer reliability/stability (er, lack thereof)

<< < (5/5)

soldar:

--- Quote from: AndyC_772 on March 03, 2019, 07:58:21 am --- This is very, very like an A-level project I did at school - getting on for 30 years ago!
--- End quote ---
Around 1979, 40 years ago, using the 6502 I designed and built an access control system.  I still have it.

Maybe I am wrong but I would not dream of using breadboard because I do not consider the connections reliable enough. I used wire-wrap sockets and solder connections. After everything was working fine I designed and built the double-sided PCB.

IMHO using breadboard for this type of project is asking for trouble.

sci4me:
How plausible is it that tying the BE (bus enable) pin directly to VCC instead of to VCC through a resistor could cause these stability problems? I got a suggestion elsewhere to use say a 3k3 resistor instead of tying it directly, and, so far the computer has been 100% stable! Is this actually solving my problem or am I just getting really lucky right now? (I've even been able to up the clock rate significantly with no problems whatsoever... so far...

EDIT: I don't understand why but this was absolutely the problem. I've been programming it and using it and it's been nearly 100% stable since. The only instability was when I move it around, probably shuffling some connections. Took almost no time to get it back to normal.

iMo:

--- Quote from: sci4me on March 05, 2019, 11:02:48 pm ---How plausible is it that tying the BE (bus enable) pin directly to VCC instead of to VCC through a resistor could cause these stability problems? I got a suggestion elsewhere to use say a 3k3 resistor instead of tying it directly, and, so far the computer has been 100% stable! Is this actually solving my problem or am I just getting really lucky right now? (I've even been able to up the clock rate significantly with no problems whatsoever... so far...

EDIT: I don't understand why but this was absolutely the problem. I've been programming it and using it and it's been nearly 100% stable since. The only instability was when I move it around, probably shuffling some connections. Took almost no time to get it back to normal.

--- End quote ---
While looking at your wiring - your BE(36) wire to +5V goes to a different +5V rail segment as the MCU's Vdd goes.

Your decoupling is not optimal - your elyt capacitors are placed on the top horizontal rail. From that rail the vertical segments are fed. Thus your capacitors shall be rather placed on the vertical power rails (because of the jumpers between the horizontal and vertical power rail bars which introduce some resistance/inductance and the vertical bars are much longer).

You still miss 100nF ceramics placed everywhere (the XXuF alu elyts have none effectiveness when talking fast edges/spikes/glitches).
 
It could be, because of wrong decoupling, that there are glitches between the vertical power rail bars. It may induce an instability to the BE then (as the MCU's Vdd is connected to a different vertical power rail than the MCU's BE pin is connected). The 3k3 resistor may reduce/filter the glitch, therefore it looks "more stable".

Try to connect the BE pin directly with pin 8 (Vdd) of the MCU - my guess is it will work fine without the 3k3 resistor then.

Also you may place a 100ohm resistor in series with clock signal to suppress ringing.
Long time back I saw in some old NMOS 6502/680x datasheets they recommend to put 8x100ohm in series with the data lines (the resistors wired close to the MCU). It may not be applicable to the modern CMOS versions.

The 8x10k pullups on the data bus and address bus may help too.

Improve your Vcc/Gnd wiring and decoupling and all will work fine. As I wrote above, people did 20x bigger stuff on such a solderless breadboard at much higher clock speeds and it worked..

sci4me:

--- Quote from: imo on March 06, 2019, 09:16:27 am ---
--- Quote from: sci4me on March 05, 2019, 11:02:48 pm ---How plausible is it that tying the BE (bus enable) pin directly to VCC instead of to VCC through a resistor could cause these stability problems? I got a suggestion elsewhere to use say a 3k3 resistor instead of tying it directly, and, so far the computer has been 100% stable! Is this actually solving my problem or am I just getting really lucky right now? (I've even been able to up the clock rate significantly with no problems whatsoever... so far...

EDIT: I don't understand why but this was absolutely the problem. I've been programming it and using it and it's been nearly 100% stable since. The only instability was when I move it around, probably shuffling some connections. Took almost no time to get it back to normal.

--- End quote ---
While looking at your wiring - your BE(36) wire to +5V goes to a different +5V rail segment as the MCU's Vdd goes.

Your decoupling is not optimal - your elyt capacitors are placed on the top horizontal rail. From that rail the vertical segments are fed. Thus your capacitors shall be rather placed on the vertical power rails (because of the jumpers between the horizontal and vertical power rail bars which introduce some resistance/inductance and the vertical bars are much longer).

You still miss 100nF ceramics placed everywhere (the XXuF alu elyts have none effectiveness when talking fast edges/spikes/glitches).
 
It could be, because of wrong decoupling, that there are glitches between the vertical power rail bars. It may induce an instability to the BE then (as the MCU's Vdd is connected to a different vertical power rail than the MCU's BE pin is connected). The 3k3 resistor may reduce/filter the glitch, therefore it looks "more stable".

Try to connect the BE pin directly with pin 8 (Vdd) of the MCU - my guess is it will work fine without the 3k3 resistor then.

Also you may place a 100ohm resistor in series with clock signal to suppress ringing.
Long time back I saw in some old NMOS 6502/680x datasheets they recommend to put 8x100ohm in series with the data lines (the resistors wired close to the MCU). It may not be applicable to the modern CMOS versions.

The 8x10k pullups on the data bus and address bus may help too.

Improve your Vcc/Gnd wiring and decoupling and all will work fine. As I wrote above, people did 20x bigger stuff on such a solderless breadboard at much higher clock speeds and it worked..

--- End quote ---

That was my next question: is using electrolytic capacitors not going to help me? I didn't think so. Probably should have swapped those out earlier! But now that I've placed that resistor, it's working even without doing that. Well, I'll do so anyway!

Navigation

[0] Message Index

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod