jacgoudsmit / L-Star

Minimal 6502/Propeller Computer based on Propeddle
MIT License
52 stars 14 forks source link

No level shifters in design #7

Closed BrianHoldsworth closed 6 years ago

BrianHoldsworth commented 6 years ago

Well, I suppose this is not an "Issue" because your design obviously works fine without level shifters between the 5V 6502 and the 3.3V propeller. The only reason I am bringing it up is because I tried researching this on the Parallax forum and there was a strong consensus that level shifting was needed to use the Propeller with TTL parts like the 6502.

As a point of "community knowledge sharing", perhaps the rationale for your design without level-shifters can be added to the docs or part of a not-yet-seeded GitHub Wiki? Also any idea if the L-Star also works with an NMOS 6502 and its slightly different logic levels?

jacgoudsmit commented 6 years ago

L-Star uses a Western Design Center 65C02 and runs it at 3.3V, not 5V. This is within the specifications of the WDC datasheet.

In fact, the only reason there is 5V on board is for the PS/2 keyboard and for future expansion boards (I've been thinking of changing the power supply circuit to put the 5V and 3.3V regulators in parallel instead of in series to allow more current for the 5V rail, but that's a possible future enhancement). If an expansion board will have 5V-only hardware, it may also need level shifters. I'm sure I will bring up the subject in the documentation for such expansion board!

The Propeller is not 5V tolerant according to the datasheet. I think I read on the Propeller forums that the Propeller has over-voltage protection (Zener) diodes on all I/O pins, but they're not designed to sink enough current. However, interfacing with 5V is possible: Chris Savage who used to work at Parallax, had an article on his website (I can't find it right now) saying you would need resistors of 2700 ohms between a 5V circuit and input pins on the Propeller, to protect the Propeller. When a Propeller pin is used as output, it's compatible with TTL, at least with TTL-HC.

L-Star was based on my earlier Propeddle project (elsewhere in my Github). On Propeddle, I made it possible to use either a regular 6502 (at 5V) or the WDC 65C02 (at 3.3V or 5V). I used 2700 ohm resistors in that circuit which could be shorted out when running on 3.3V. When using a 5V 6502, the resistors worked to protect the Propeller from the 5V from the 6502 and didn't seem to cause any problems when the Propeller was pulling the data bus high or low.

In conclusion:

Thanks!

BrianHoldsworth commented 6 years ago

Thanks for the detailed response and for sharing your knowledge on this topic. I completely missed that you were running the 65C02 at 3.3V, or that even being a possible solution.