BigDumbDinosaur wrote:
Skidlz wrote:
Thanks for the input. I've updated and attached my schematic.
I spotted a few other things that may bear consideration:
- Replace the 74LS138 with a 74AC138 or 74HC138. You're trying to use TTL logic in a system that appears to be all CMOS. Also, the 'LS138 is slow hardware.
Yes, LSTTL may have trouble pulling up high enough for some CMOS to see the level as a solid "1". I've used LSTTL when it was all I had and I wanted to keep going before I'd be able to get a CMOS logic part, but I don't like to (although I always seemed to get away with it). Use CMOS if you can.
Quote:
2. You are qualifying CS2 on the SRAM with the Ø2 output of the microprocessor (MPU). That's incorrect design, as chip selects should not be slaved to the system clock. As you've already attached the SRAM's /CS1 input to the '138 decoder, CS2 can be tied to Vcc.
Fortunately he knew not to run phase 2 to the '138; so although his way is not the fastest-access way to do it (which is ok at 4MHz), it works with #5 to keep things safe as the RAM cannot be written when phase 2 is low.
Quote:
3. The use of the MPU's Ø1 and Ø2 outputs for anything is deprecated. All timing should be slaved off the clock generator and the Ø1 and Ø2 outputs should be a no-connect. They are present only to support operation in a system that originally had an NMOS MPU.
It's ok, particularly as he's using Rockwell parts, not WDC. He's doing it the Rockwell way.
Quote:
4. The MPU's SOB input should be tied to Vcc through a pullup resistor. You may find that input useful some day in adding a high-speed I/O function. I wished the 65C816 had it.
Not a bad idea. I have never used it and never will, but it doesn't cost a thing to leave the possibility. The '816 has the interrupt-on-WAIt which is much nicer.
Quote:
5. As designed, your circuit is vulnerable to corruption of RAM contents because you aren't qualifying the SRAM's /WE input with Ø2. With the 65C02, the data bus is never valid when Ø2 is low. 65xx I/O hardware (e.g., the 65C22) knows that, but non-65xx devices don't.
It is effectively qualified by only letting it be active at all when phase 2 is up.
Quote:
6. Similarly, you have tied the SRAM's /OE input to the /CS1 input. For maximum stability, /OE should be asserted only when both Ø2 and RWB are high. During Ø2 low the MPU does the bus and control line setups. It's possible that false selects may occur at that time and cause momentary data bus contention.
7. As you have it right now, you are creating the ambiguous condition of the SRAM's /OE and /WE being simultaneously low when writing to the device. Unless the device's data sheet says that /OE is a "don't care" when /WE is asserted, such operation is undefined and may cause the device to malfunction.
I just double-checked. The data sheet does say the OE\ is a don't-care pin when WE\ is low.
Quote:
8. Your TIA-232 transceiver part identifier says MAX3232CPE. That probably should be MAX232CPE, eh?
Maxim has lots of line driver/receiver ICs, and the 3232 is one of them. The data sheet is at
http://datasheets.maximintegrated.com/e ... AX3241.pdf. But Skidlz, you have the capacitor at pin 6 drawn backwards. Make sure you install it correctly. (The curved side is negative, and the charge pump will put pin 6 well below ground.)
Quote:
9. Speaking of the MAX232, the correct value for the four charge pump capacitors is 1.0µf, not 0.1µf.
The 3232 data sheet does say to use .1's. Without looking at the details, I expect the oscillator frequency is a lot higher. SMT MLCCs have very low ESR, which works out better than electrolytics or probably even tantalums; but just a few years ago MLCC's in more than a fraction of a uF were very expensive or non-existent. Apparently the tantalum industry saw the usefulness and took advantage and jacked their prices way up; so the MLCC makers figured out they could make a suitable MLCC replacement for a whole lot less, and they pulled the rug out from under the tantalum industry. I know someone who "invested" in thousands of tantalums in values that were soon replaced by MLCCs, and then the tantalums' demand dropped like a rock. Now he's stuck with them.
floobydust's considerations are good too, but #1 & 2 don't apply to the Rockwell parts you're using. If you think you might someday want to use WDC's parts, it would be good to take these into consideration and plan ahead.