Help with reading NAND chips on a breadboard

For discussing the 65xx hardware itself or electronics projects.
User avatar
BigDumbDinosaur
Posts: 9426
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Help with reading NAND chips on a breadboard

Post by BigDumbDinosaur »

GlennSmith wrote:
barnacle wrote:
But note even so that the 541 can only supply a _total_ of 100mA, so best keep your current under 10mA per leg - 1mA is enough for most current LEDs.
Also remember that, like their TTL predecessors, most of the 74xx family can sink more current than they can source.

In that respect, 74AC logic is symmetric.

I usually run LEDs at around 5 mA.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
Yuri
Posts: 371
Joined: 28 Feb 2023
Location: Texas

Re: Help with reading NAND chips on a breadboard

Post by Yuri »

barnacle wrote:
Well somebody had to ask :mrgreen:

In that case, and assuming that the wiring is actually as you have in the diagram, I would remove the LED block and measure the voltages at the pins _without_ any load. You may well find that the output there is exactly as expected, but that the chip is unable to drive into the low impedance of a LED. In which case, to drive the LEDs, you'll need buffers of some sort.

Neil

edit: you mention your LED pack has internal resistors, but are you sure? Do you have a datasheet for the part you can provide (a link to) here? Or a manufacturer and part number?
This was going to be my next suggestion, perhaps putting in a 74xx245 to drive the LEDs from (at least for testing purposes)

Really the LEDs probably should be sent through some transistors that can handle a larger load than most ICs can provide.
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Help with reading NAND chips on a breadboard

Post by GARTHWILSON »

I think all LEDs being made today will be visible in normal room light with only 400µA; but if the LEDs are blue or violet, the high-state output voltage of the memory IC may not be high enough to get them to conduct.  I might have to do some experiments to be sure.  The easier thing to do of course is just probe the data pins with a voltmeter.  If that doesn't find the expected data, I will be watching for an unrelated discovery of the cause of the problem.
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?
WCMiller
Posts: 33
Joined: 28 Oct 2023
Location: Missouri

Re: Help with reading NAND chips on a breadboard

Post by WCMiller »

Ok, first of all THANK YOU all for the responses; I'm so appreciative of the help y'all are giving me. Second, on reflection maybe this should be moved to the "Newbies" board, especially with some of the questions I'm going to be asking. I'll leave that up to the moderators. Now, to address people individually:

@people mentioning resistors on the LEDs: Y'all were absolutely right, I'd made an assumption based on the fact that they hadn't burnt out immediately when I connected power to them (as individual LEDs had done). I dug up the datasheet and, plain as day, said to add resistors to limit the current. I must have just gotten lucky with my power supply not giving much amperage. Lesson learned, I've put 1K resistors in, and thank you!

@barnacle: Good idea. I disconnected things and used my multimeter to check the voltage on several pins. As a sanity check, I probed the +5V and GND pins and saw, as I would expect, a 5 volt difference between them. When I checked between GND and D0 (which should be a "1" due to the contents of the chip at address 0x00000), I saw no voltage between them, which probably means the issue is there. I'm not sure how to go about debugging this.

@BigDumbDinosaur: Good advice. I think there's an error farther up the circuit than the ROM not being able to drive the LEDs. At present, I don't have any buffer chips (I will get some), but I was wondering if using inverters gates would work in the meantime?

@John West: Thank you for the advice. I don't think that that is an issue, as the power supply and chip are both on the left side of the midpoint (and I'm registering 5V and 0 on the power and ground pins). Additionally, the LEDs are working, and they're on the opposite side of the midpoint from the power supply

Now for some of the questions that might warrant moving this to the Newbies section.

Does anyone know of a good "Foundations of (Breadboard) Electronics" tutorial/video/interpretive dance that I could study? I'm mainly going off of what I've picked up via osmosis, and I think that my ambitions are vastly exceeding my present know-how. A good tutorial on Ki-Cad would also be appreciated, as I seem to struggle with the program; even making the simple schematic I posted here was a pain.

Does anyone know a good, detailed discussion of the pros/cons of different 74xx Logic families (and especially subfamilies) and the rules for mixing them? I get the difference between TTL and CMOS logic levels, and I kind of get the impression that you can combine families with the same logic level, but I'm not 100% sure. Also, is there something "wrong" with The 74Fxx family? It looks intriguing in its speed, but I don't seem to see anyone using it. Is there some major pitfall with using it that I'm not aware of?
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Help with reading NAND chips on a breadboard

Post by barnacle »

You might look at a couple of datasheets from TI: https://www.ti.com/lit/pdf/ssztc76 and https://www.ti.com/lit/sg/scyt129g/scyt129g.pdf

However, they will probably make your head hurt... generally, at the sort of speeds and with the available parts - e.g. parallel RAM and (E)EPROM - you're better off sticking with 3v3 or 5v as an operating Vcc; work from there and see what your options are: HC, HCT, AHC, etc generally can replace 74, 74LS, 74F for _most_ purposes. As always, horses for courses; you need to select your logic family based on what it needs to talk to and what your operating voltages are. It can be an interative processes... and remember that your chosen family may not be available in your chosen package...

Regarding your test circuit:
- Ensure that you have power to your chip - ground to pin 16, 5v to pin 32. Remember that a DIP package starts with pin one at the top left and goes anticlockwise until you get to Vcc. According to the datasheet, pin one is marked with either a notch in the top edge, or a dot at pin one.
- Tie the following lines to ground: A0-A16, CE#, and OE#
- Tie the following lines to Vcc: WE#
- Ensure that pin 1 and pin 30 are _not_ connected to anywhere
That's it. If that part is healthy, and your power is healthy and smooth, and your connections are all good, you'll get the contents of address zero on the data pins.

Neil

Edit: one point regarding families: the modern CMOS families use orders of magnitude less power than their TTL/LS ancestors. Microamps instead of tens or hundreds of milliamps.
John West
Posts: 383
Joined: 03 Sep 2002

Re: Help with reading NAND chips on a breadboard

Post by John West »

WCMiller wrote:
Does anyone know a good, detailed discussion of the pros/cons of different 74xx Logic families (and especially subfamilies) and the rules for mixing them? I get the difference between TTL and CMOS logic levels, and I kind of get the impression that you can combine families with the same logic level, but I'm not 100% sure. Also, is there something "wrong" with The 74Fxx family? It looks intriguing in its speed, but I don't seem to see anyone using it. Is there some major pitfall with using it that I'm not aware of?
The Art of Electronics (Horowitz and Hill) was the standard text in the 1990s. It covers everything you need to know about every electronics technology that existed up to the point of publication. The third edition was published in 2015, so I imagine it's as up to date as us hobbyists need.

The 74 series come in two major flavours: TTL and CMOS. TTL was the original, with bipolar transistors: original (no letter), H, L, S, LS, AS, ALS, and F (and probably some more I'm forgetting). They're all 5V only, and have the same input thresholds (below 0.8V for '0', above 2V for '1') and output voltages ('0' can be as high as 0.4V, '1' can be as low as 2.4V). The different families are various trade-offs between speed and power. They all draw power even when idle, and generally higher speed means higher power. Outputs are limited in the current they can provide, and inputs draw current, so there are limits to how many inputs one output can drive.

They've been pretty much completely replaced with CMOS, which uses MOSFETs. These are the families with a 'C' in their name: C, HC, AC, HCT, ACT, and some without C like LV. There's a huge range. The T in some families means the input thresholds are compatible with the old TTL chips. If you're mixing technologies, you'd want to use them. If you're using CMOS for everything, it's better to use the non-T version. These have input and output voltages symmetric around half the supply voltage, and generally run on a wider voltage range. If you want to run on 3.3V, you must use CMOS. Again, there's a trade-off between speed and power, but with CMOS power consumption is extremely low when idle.

The problem with mixing TTL and CMOS is that TTL '1' outputs aren't guaranteed to be a high enough voltage to be recognised by CMOS. The 'T' families have tweaked input thresholds to handle the difference. TTL inputs draw current, and want a quite low voltage for a '0'. CMOS families with weaker outputs might have trouble with that. The newer ones are pretty strong though.

TTL is a little friendlier to beginners. If you don't connect an input, it floats high. CMOS has a fit. If you haven't sprinkled enough capacitors on the power supply, TTL will forgive you. CMOS will fail in baffling ways. But CMOS has a nice strong drive for both high and low outputs, and the lower power makes power supply and distribution a lot easier to get right.

There are two reasons you wouldn't just use the fastest family you can find: faster means more power, and faster means the outputs change more quickly. There isn't really any such thing as digital electronics, but if you're running slow enough with slow enough transitions, you can pretend the analogue stuff isn't there. With a family like AC you can't: every wire is a transmission line, and you will get reflections and cross-talk and ground bounce. They need a lot more care in layout. I'm not experienced enough with breadboards to tell whether they're up to the job.

I usually stick with HC unless there's a specific need for something else. My designs aren't aiming for the highest speed, and HC is pretty forgiving of almost everything.
User avatar
Yuri
Posts: 371
Joined: 28 Feb 2023
Location: Texas

Re: Help with reading NAND chips on a breadboard

Post by Yuri »

John West wrote:
WCMiller wrote:
Does anyone know a good, detailed discussion of the pros/cons of different 74xx Logic families (and especially subfamilies) and the rules for mixing them? I get the difference between TTL and CMOS logic levels, and I kind of get the impression that you can combine families with the same logic level, but I'm not 100% sure. Also, is there something "wrong" with The 74Fxx family? It looks intriguing in its speed, but I don't seem to see anyone using it. Is there some major pitfall with using it that I'm not aware of?
The Art of Electronics (Horowitz and Hill) was the standard text in the 1990s. It covers everything you need to know about every electronics technology that existed up to the point of publication. The third edition was published in 2015, so I imagine it's as up to date as us hobbyists need.
See also this handy PDF available from TI:
https://www.ti.com/lit/sg/sdyu001ab/sdyu001ab.pdf
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Help with reading NAND chips on a breadboard

Post by GARTHWILSON »

WCMiller, many of your questions, and possibly problems, are addressed in the 6502 primer.

Something I am reminded of is that we may forget that newbies can have something as simple as the pin-numbering convention wrong.  We had one of these some time back but I apparently am not remembering adequate search terms to find it.  Looking at the top of the IC, with the rows going vertically and the notch or pin-1 dot at the top, or a beveled edge on the left, you start with the top-left corner for pin 1, and go around counterclockwise, this way:
DIPpinNumbering.gif
DIPpinNumbering.gif (11.04 KiB) Viewed 1277 times

I'll put it in the 6502 primer.
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?
User avatar
gilhad
Posts: 86
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: Help with reading NAND chips on a breadboard

Post by gilhad »

@WCMiller: For learning with KiCad I would use some AI - ( for example chatGPT is for free) - it shamelessly lies and does not know what it talks about, but in learning KiCad it should not be dangerous :)
Do not trust it even single word, but with KiCad you can simply try it (if it looks safe) and it may work or not. Regardless you may learn something.

It would be more than happy to elaborate about and and each question and will have all the patience in world to came with more and more texts for any prompt. And as it was trained on public stuff, there is good chance, that for common/newbie level it would choose a lot of words, which may direct your eyes where you will find something usefull.

I do not trust it even single word, but I use it all the time. And it lies me more often than not, but still it is of use to me anyway :)
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Help with reading NAND chips on a breadboard

Post by barnacle »

I would (regrettably, and oh so politely) argue against gilhad's point of view regarding AI: I would not trust it as far as I could throw the server is runs in, _and_ the power station it takes to feed it.

For Kicad, it's worth remembering that we are currently on version 9; that means there's a lot of posts and videos out there showing how to use it (and which have been used to train AS systems) but most of them are not for the current version. Things change, particularly between versions 4 and 5, and 6 and 7, so it's easy to be led up the garden path. I don't recall any significant UI changes between 7, 8, and 9 (though I note that the instructions for Alarm Siren's excellent component symbols for 6502 family parts no longer work, so something's obviously changed).

Neil
WCMiller
Posts: 33
Joined: 28 Oct 2023
Location: Missouri

Re: Help with reading NAND chips on a breadboard

Post by WCMiller »

barnacle wrote:
Regarding your test circuit:
- Ensure that you have power to your chip - ground to pin 16, 5v to pin 32. Remember that a DIP package starts with pin one at the top left and goes anticlockwise until you get to Vcc. According to the datasheet, pin one is marked with either a notch in the top edge, or a dot at pin one.
Done
barnacle wrote:
- Tie the following lines to ground: A0-A16, CE#, and OE#
Done
barnacle wrote:
- Tie the following lines to Vcc: WE#
Done
barnacle wrote:
- Ensure that pin 1 and pin 30 are _not_ connected to anywhere
Pin 1 is NC, but why pin 30? That's address line A17 on the SST39SF020A. It's currently tied to ground.
barnacle wrote:
That's it. If that part is healthy, and your power is healthy and smooth, and your connections are all good, you'll get the contents of address zero on the data pins.
That would suggest that it's something wrong with the chip, but I can read the contents off of it through the programming software:
writer.jpg
I've also included an updated schematic of the current state of the circuit:
Schematic4.jpg
Right now, the two LEDs that are hooked up to the ROM via inverters are lit up, suggesting that the output on the pins is "00", but the 0x19 at 0x00000 would suggest it should be "01". One thing I've noticed is that if I move either the #OE or #CE wire from Ground to +5V, the two lights go off, suggesting that the chip has gone into a high impedance state, which is what would be expected. It remains there until I plug the wire back into ground, so the chip is doing something at least.
WCMiller
Posts: 33
Joined: 28 Oct 2023
Location: Missouri

Re: Help with reading NAND chips on a breadboard

Post by WCMiller »

Also, if I'm understanding things correctly, the ONLY real practical differences between say, different TTL-level 74xx families would be speed and power consumption (and attendant side effects, like signal reflection at higher speeds or more heat with more power consumption)? While TTL vs CMOS for example would have differences in power supply levels, static resistance, operating temps, etc?
User avatar
BigDumbDinosaur
Posts: 9426
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Help with reading NAND chips on a breadboard

Post by BigDumbDinosaur »

WCMiller wrote:
While TTL vs CMOS for example would have differences in power supply levels, static resistance, operating temps, etc?

The main concern is differing and partially-incompatible logic levels.  TTL low output is okay with CMOS input, but TTL high is not, unless you use a 74xCT device.  TTL is only guaranteed to drive up to 2.4 volts.  A CMOS logic 1 is considered to be VCC × 0.7 volts minimum, which in a 5 volt system would be 3.5 volts.  The theoretical maximum high output of a TTL device is ~3.4 volts, and that quickly degrades under load.  Can you see the problem?
x86?  We ain't got no x86.  We don't NEED no stinking x86!
WCMiller
Posts: 33
Joined: 28 Oct 2023
Location: Missouri

Re: Help with reading NAND chips on a breadboard

Post by WCMiller »

Oh, to be clear I meant deciding between using (all) CMOS or TTL. Mixing them would be well beyond my ken.
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Help with reading NAND chips on a breadboard

Post by barnacle »

WCMiller wrote:
barnacle wrote:
- Ensure that pin 1 and pin 30 are _not_ connected to anywhere
Pin 1 is NC, but why pin 30? That's address line A17 on the SST39SF020A. It's currently tied to ground.
My mistake, I thought you were using the *F010A. You are correct to ground it.

The fact that the output is disabled when CE# or OE# is raised suggest the chip is working. Which raises questions about the programmer... how did you achieve that string of $19 and $09 shown in your programmer software? Is it possible that that's the contents of a software buffer prior to programming, or indeed reading, the F020A, and not the actual contents of the F020A at all? Can you program something different into the part at the low addresses (something distinctive like $55 or $AA) and then try and read again?

I'm not familiar with either the programmer or its software, but if the F010A is new and unprogrammed I would expect it to be full of either zeros or ones.

Neil
Post Reply