WDC MPU TTL Compatibility
Posted: Mon Oct 05, 2015 6:12 am
Okay, here's an interesting hardware cunundrum for y'all.
The 65C02 and 65C815 data sheets both indicate that the MPU inputs respond to CMOS levels. So you would think that driving an input from a TTL device would not work—the TTL device wouldn't be able to pull up the input to the required minimum voltage, which is VDD × 0.8 according to the 65C816 data sheet. However, the 65C02 and 65C802 were designed to be drop-in replacements for the NMOS 6502. The NMOS part was used with TTL logic, which means that in order for the 65C02 or 65C802 to work as a replacement they would have to have TTL-compatible inputs a la 74ACT or 74HCT logic. This, of course, doesn't agree with what the data sheets are saying.
More puzzlement: the data sheet for the Cypress CY7C1049D 512kb × 8 static RAM says that it generates TTL levels on its outputs. This is also true for the ISSI 128kb × 8 SRAM I use in POC V1. Garth uses the CY7C1049D in his 4 MB DIMM and Daryl Richter has successfully used that DIMM in one of his SBC units (SBC-3, I think), operating at a relatively high Ø2 rate. All three of the POC V1 units I have built work without a hitch at 12.5 MHz. In fact, at boot time a detailed checkerboard test is conducted on all addressable RAM, and the system will halt and report an error if any location fails the test. Clearly the SRAM has to be able to adequately drive the data bus in order for memory testing to succeed.
So what is going on here? I find it difficult to believe that we've been unbelievably lucky and nothing has malfunctioned because the sun, moon and stars are properly aligned. I'm more inclined to think that, once again, the WDC data sheets are in error. Opinions?
The 65C02 and 65C815 data sheets both indicate that the MPU inputs respond to CMOS levels. So you would think that driving an input from a TTL device would not work—the TTL device wouldn't be able to pull up the input to the required minimum voltage, which is VDD × 0.8 according to the 65C816 data sheet. However, the 65C02 and 65C802 were designed to be drop-in replacements for the NMOS 6502. The NMOS part was used with TTL logic, which means that in order for the 65C02 or 65C802 to work as a replacement they would have to have TTL-compatible inputs a la 74ACT or 74HCT logic. This, of course, doesn't agree with what the data sheets are saying.
More puzzlement: the data sheet for the Cypress CY7C1049D 512kb × 8 static RAM says that it generates TTL levels on its outputs. This is also true for the ISSI 128kb × 8 SRAM I use in POC V1. Garth uses the CY7C1049D in his 4 MB DIMM and Daryl Richter has successfully used that DIMM in one of his SBC units (SBC-3, I think), operating at a relatively high Ø2 rate. All three of the POC V1 units I have built work without a hitch at 12.5 MHz. In fact, at boot time a detailed checkerboard test is conducted on all addressable RAM, and the system will halt and report an error if any location fails the test. Clearly the SRAM has to be able to adequately drive the data bus in order for memory testing to succeed.
So what is going on here? I find it difficult to believe that we've been unbelievably lucky and nothing has malfunctioned because the sun, moon and stars are properly aligned. I'm more inclined to think that, once again, the WDC data sheets are in error. Opinions?