Dipping my toe in digital electronics - Page 1
Forum section: electronics / beginners

author: jdutky
author_rank: Regular Contributor
timestamp: October 12, 2020, 05:47:44 am
content: So, because I appear to have been driven insane by the solitude of quarantine I have decided to build a little 8-bit computer from chips and bits. The first thing I'm trying to build is the clock generator, but I'm having trouble right off the bat. I've got a full can, 3 MHz crystal oscillator which seemed easy enough to set up, but when I test the output with my scope I get a square wave with a lot of ringing, even after I've attached a couple of TTL loads to it. Should the oscillator output look like this? Is there something I should be doing to the output lines to damp the ringing?

author: ataradov
author_rank: Super Contributor
timestamp: October 12, 2020, 06:41:37 am
content: This looks fine. If you are really concerned about the ringing, you can add a series resistor (33-100 Ohm) on the output.

author: Dave
author_rank: Super Contributor
timestamp: October 12, 2020, 09:48:27 am
content: I second ataradov's recommendation for a series resistor.You should also make sure that you're probing the circuit correctly. For best signal fidelity, you need to minimize the probe inductance - you need to use a short ground spring instead of the alligator clip wire.Your scope probes probably came with these springs included.You should poke the ground spring into a ground right next to the trace you're trying to probe.

author: jdutky
author_rank: Regular Contributor
timestamp: October 12, 2020, 10:12:35 am
content: I will try adding the series resistor, thanks. Sadly, this is being built on a breadboard, so my ground loops are unavoidably long (well, I should be able to shorten the ground loop when examining the direct output of the oscillator, but it gets harder when I start looking at the signals elsewhere in the circuit).This is my first foray into digital circuits, and I don't quite trust my instruments (I'm using an oscilloscope that is almost 50 years old, and some of my other tools have either been unused for a decade or more, or required some of my inexpert repair work) so I'm always wondering if what I'm seeing is real, if it is an artifact of failing instruments, or if it's just as it should be and I simply don't know it.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 12, 2020, 11:02:28 am
content: Could be anything. Poor construction, probing, termination, equipment.... Your scope should have a calibration output to at least check your 10X probe's compensation.Some time back a few of us were playing with a ring oscillator using TTL. Maybe it will provide you with some ideas.https://www.eevblog.com/forum/projects/waveforms-in-a-74ls04-ring-oscillator/msg640978/#msg640978

author: tggzzz
author_rank: Super Contributor
timestamp: October 12, 2020, 11:52:58 am
content: Quote from: jdutky on October 12, 2020, 05:47:44 amGood for you trying something that is outside your comfort zone!Start by realising that you have ananaloguecircuit with inputs/outputs which have restricted valid values.Key questions:what is the ringing frequency? (I'll bet ~100MHz)are you using decoupling capacitors?what is the construction technique you are using? If solderless breadboards then good luck to you, since they will cause you more problems than the circuit itselfwhat is your probing technique? (I'll bet there is a 6in ground lead in there)For an introduction to some construction techniques seehttps://entertaininghacks.wordpress.com/category/homebrew-pcbs/For an introduction to scope probes, see the references athttps://entertaininghacks.wordpress.com/library-2/scope-probe-reference-material/

author: rstofer
author_rank: Super Contributor
timestamp: October 12, 2020, 02:21:32 pm
content: I don't know if you have seen the Ben Eater project but it may provide inspiration.https://eater.net/8bit/

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 12, 2020, 03:02:15 pm
content: Quote from: jdutky on October 12, 2020, 10:12:35 amditto! there's the problem. breadboard and long ground loop is good recipe for ringing..

author: Electro Fan
author_rank: Super Contributor
timestamp: October 12, 2020, 04:04:07 pm
content: Might be a breadboard issue, the oscillator, or something else but to make sure the probing/grounding technique itself isn't contributing to the ringing this video is super helpful:https://www.bing.com/videos/search?q=w2aew+probe+grounding&view=detail&mid=2D6CED3B5A84FB0F4F512D6CED3B5A84FB0F4F51&FORM=VIRE

author: Benta
author_rank: Super Contributor
timestamp: October 12, 2020, 05:58:12 pm
content: Breadboards are not for this kind of a design. Use a perfboard. Much better.

author: tggzzz
author_rank: Super Contributor
timestamp: October 12, 2020, 06:09:18 pm
content: Quote from: Benta on October 12, 2020, 05:58:12 pmManhattan or dead-bug.Lots of prototyping techniques shown here:https://entertaininghacks.wordpress.com/2020/07/22/prototyping-circuits-easy-cheap-fast-reliable-techniques/

author: ledtester
author_rank: Super Contributor
timestamp: October 12, 2020, 06:11:36 pm
content: Quote from: jdutky on October 12, 2020, 05:47:44 amFrom what I've seen 1 MHz is kinda a limit for breadboards.Consider using a slower clock - even 500 KHz - at least to get things working without having to worry that the ringing will introduce hard-to-debug spurious errors.

author: tggzzz
author_rank: Super Contributor
timestamp: October 12, 2020, 06:19:39 pm
content: Quote from: ledtester on October 12, 2020, 06:11:36 pmCompletely false for digital circuits. Theonlything that matters is the transition time; the period iscompletelyirrelevant.If you look at timing specs for digital circuits, the principal ones are the setup and hold times - and they remain constant whether the clock frequency is 1MHz or 1Hz.If you look at voltage specs for digital circuits, they don't mention clock frequency. However a short transition time at any frequency will increase the chance of exceeding the voltage limits.FFI with some theory and practical experiments, seehttps://entertaininghacks.wordpress.com/2018/05/08/digital-signal-integrity-and-bandwidth-signals-risetime-is-important-period-is-irrelevant/

author: jdutky
author_rank: Regular Contributor
timestamp: October 12, 2020, 06:25:03 pm
content: Quote from: tggzzz on October 12, 2020, 11:52:58 amThanks! This is something I have always wanted to do, but never found the time for. What I'd really like to do is build a full computer from "discrete logic" but this seemed like a better first project: more likely to succeed while also exposing me to a wide range of issues and techniques.The analog nature of the circuit was evident from the first time I powered it on. I've been very conservative in applying my bench power supply to the circuit, so I started with the current limit turned all the way down and slowly brought it up until the supply went from current limited to voltage limited at +5.0V. Watching the output of the oscillator (routed through a couple inverters on a 74LS04, in a vain attempt to produce a delayed two-phase clock) on the scope made it very clear that I was not really dealing with a simple digital circuit.I have not tried to measure the frequency of the ringing, but I will have a look at that (though using the grounding spring instead of the ground clip on my scope probe revealed that a bunch of the ringing appears to be in how I'm probing the circuit. Using the ground spring produces remarkably clean square waves, which sadly I can not attach a picture of because I have no free hands when I'm not using the sprung hook and ground clip on the probe). From memory, though, I think that there are about 10 or 12 oscillations of the ringing per half square wave, which would make it something like 30-40 MHz, but my memory might easily be low by a factor of 2 or 3.I am not using any decoupling caps, but I was just thinking that I should because I found ringing noise on the power line that is clearly coming from the oscillator.I'm doing this on a solderless breadboardbut I guess I should consider moving to something else.My probing technique did indeed include a 6 inch ground lead. As I said, switching to the ground spring improved my results remarkably, but leaves me with no hands free to do other things.

author: jdutky
author_rank: Regular Contributor
timestamp: October 12, 2020, 06:29:35 pm
content: Quote from: rstofer on October 12, 2020, 02:21:32 pmThis was, in fact, my inspiration for this project.I was never a fan of the 6502. I always wanted to build something from a 6809, which is what I'm trying to do. I should probably have used the 68B09 rather than the 68B09E, but I thought it would be instructive to build the external clock circuit for the 09E, even though it would have been easier to use the chip with the internal oscillator.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 12, 2020, 06:34:33 pm
content: Quote from: jdutky on October 12, 2020, 06:25:03 pmMan, you are doing great! This is a deluxe project at the start of the intersection of analog and digital.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 12, 2020, 06:46:20 pm
content: "I am not using any decoupling caps, but I was just thinking that I should because I found ringing noise on the power line that is clearly coming from the oscillator."Might be worth a look-see at power supply ripple just to see what's there. Probably not anything that is impacting digital at this point but as long as you're in the noise and ringing neighborhood....

author: Benta
author_rank: Super Contributor
timestamp: October 12, 2020, 07:35:56 pm
content: This is the kind of perfboard I'm talking about. Ideal for this type of project. Power lines are already laid out. It's very suitable for a digital project. Space for 12 pcs. 14...16 pin DIP ICs plus interconnects and decoupling:https://www.conrad.de/de/p/tru-components-su527670-ic-platine-hartpapier-l-x-b-160-mm-x-100-mm-35-m-rastermass-2-54-mm-inhalt-1-st-1566656.htmlOr this:https://www.conrad.com/p/rademacher-vk-c-932-hp-laboratory-card-designed-for-twelve-16-pin-ics-with-connection-options-for-the-following-plugs-527370

author: rstofer
author_rank: Super Contributor
timestamp: October 12, 2020, 08:02:42 pm
content: The clock for a prototype CPU needs a lot of thought. It should be capable of:Full speed clockSingle clock pulse - a debounced pushbuttonSingle instruction - deliver as many clocks as necessary for the current instruction. Basically, turn off the clock when you get back to Instruction Fetch. Full speed? Variable speed?Variable frequency clock (so you can watch the blinking lightsSome scheme for a breakpoint to change the mode back to Single Clock. Breakpoint on PC matching some address in DIP Switches, I supposeEach of these modes will be useful as you bring up the processor. Ben Eater does some of this for his clock but I'm pretty sure he doesn't include the breakpoint feature. This feature is helpful when bringing up the OS rather than just debugging hardware. Sometimes you get pretty deep into running code before things turn south.

author: rstofer
author_rank: Super Contributor
timestamp: October 12, 2020, 08:28:55 pm
content: Even production machines used to have some way to control execution. My favorite machine, the IBM1130, had a rotary selector for things like single step. See "Mode Switch" about 3/4 the way down this page:http://www.ibm1130.net/functional/Console.htmlPerhaps some modes are not appropriate. But you get the idea, having a way to control the clock is important.

author: jdutky
author_rank: Regular Contributor
timestamp: October 12, 2020, 10:32:18 pm
content: Quote from: rstofer on October 12, 2020, 08:02:42 pmThe 6809 has a HALT pin that handles most of these cases (not the breakpoint, but that could be implemented with a comparator on the address lines and some glue logic to distinguish instruction fetches from data fetches. There is a signal, LIC, that tells you when a new instruction fetch is going to start, so that you can differentiate data and instruction fetches).Quote from: rstofer on October 12, 2020, 08:28:55 pmI've been giving this some thought in terms of how to build a front panel for the 6809. I have fond memories of the front panels for a couple of different mini computers (Varians and DEC PDP-11s) and I would like to have something similar on this project, but it is more difficult if you don't have direct access to the internal registers, and if the CPU doesn't have a host of external signals indicating where it is in it's instruction cycle (as the 8086 has). I have an old 6800 demo system (the "HEP KIT Educator II Microcomputer Kit") that implements a front panel in software, but it's terribly limited compared to what you had on a nice mini, and I'm willing to blow my budget on this with extra glue logic and latches to hold addresses and data from different phases of the instruction, as well as doing what the Educator II did and update some of the front panel lamps in software on a HALT.I've also been looking for a nice, reasonably priced 3-position key-lock switch that I can use for the OFF-STEP-RUN switch, which both Varians and at least some PDP-11s had. They used to be fairly common, but I'm having some trouble finding them now. Failing that I will settle for a simple 3-position rotary switch.

author: james_s
author_rank: Super Contributor
timestamp: October 12, 2020, 11:44:32 pm
content: A fast rise time like that on a breadboard is almost guaranteed to cause some ringing. It shouldn't really matter though, and if you want to clean it up I will second the advise to add a series resistor. That will reduce the slew rate somewhat and should help damp any ringing.

author: tggzzz
author_rank: Super Contributor
timestamp: October 13, 2020, 12:58:38 am
content: Quote from: james_s on October 12, 2020, 11:44:32 pmRinging can matter if the signal integrity is sufficiently poor that the inputs incorrectly interpret the analogue voltage.Inserting a resistor has to be near the source, and if it is sufficient to reduce ringing then it will also reduce the transition amplitude. That can be a standard problem for inputs that are not at the end of the wire.A fast transition can also cause ground bounce, which is a classic cause of intermittent pattern-sensitive failure.

author: Martian Tech
author_rank: Regular Contributor
timestamp: October 13, 2020, 01:01:12 am
content: Quote from: jdutky on October 12, 2020, 06:29:35 pmFYI: There are 68B09 processors out there that are mismarked as 68B09E, so if it doesn't work as expected be sure to consider that possibility and don't immediately assume it's the breadboard...

author: jdutky
author_rank: Regular Contributor
timestamp: October 13, 2020, 01:14:51 am
content: Quote from: Martian Tech on October 13, 2020, 01:01:12 amWow. That's where I got my (alleged) 68B09E. I will give that a try straight away.I'll be kind of sad if this is the case, especially if they are not even 68B09s, both because I was hoping to run them at 2 MHz, and because I was all psyched to learn something along the way (and it sure looked like I was about learn a lot of something).

author: jdutky
author_rank: Regular Contributor
timestamp: October 13, 2020, 01:21:58 am
content: Quote from: Benta on October 12, 2020, 07:35:56 pmI'm putting a new clock circuit together on a small prototype board I happen to have a stack of. It looks like I can fit everything on the half board, and get some nice short traces for the signals. I'm going to put the capacitors on the bottom of the board bridging the power and ground pins, in order to minimize the ground loops. I'm thinking that I will connect the ground pins in a maximally connected lattice in order to try to approximate a real ground plane (I don't have any copper clad on hand, but I''ve got some on order, which I will fall back to if this doesn't work as desired).(the chips in the picture are just resistor arrays that I am using to get the positions and spacing right. I will replace them with the actual parts when I start soldering)

author: jdutky
author_rank: Regular Contributor
timestamp: October 13, 2020, 02:28:54 am
content: Well, I set the chip up like it was a 6809 (NMI, IRQ, FIRQ, HALT, RESET, and DMA/BREQ all tied to Vcc, and a crystal across pins 38 and 39 with caps to ground) and got no clock signal out of the E and Q pins, which is a relief because I actually have a couple of (presumably genuine) 68B09s on order (in case I couldn't get the external oscillator circuit to work).I did find something shocking, however: when I went to select the capacitors for the crystal circuit the datasheet specified 20 pF caps for a 6 MHz crystal. I have an unopened box of shiny new ceramic caps that I bought off Amazon (LORESO brand, 600 pieces! from 10 pF to 4.7uF in 24 steps! Only $19, free shipping! What a BARGAIN!) and the caps marked 20 pF measure as 35-36 pF (!!) and the ones marked 10 pF measure 38 pF (!!!). These are ceramic caps, not your sloppy electrolytic sort; I expect them to be within at least 50% of their marked values (maybe I'm naive; maybe the world no longer cares about such pedestrian details?).So the CPU is genuine and accurately marked, but the capacitors are garbage. Fascinating.

author: james_s
author_rank: Super Contributor
timestamp: October 13, 2020, 05:39:30 am
content: Quote from: tggzzz on October 13, 2020, 12:58:38 amWell, it's on a breadboard, it's probably not gonna be stellar. It can be made to work though, countless people have built 8 bit computers on breadboards. If we were discussing a production design my advice would be different but in this case I'd try it and see if it works, and play around with techniques to try to reduce the ringing.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 13, 2020, 06:15:11 am
content: Quote from: jdutky on October 13, 2020, 02:28:54 amWatch at about 16 min (admittedly electrolytic rather than ceramic as you point out but maybe tolerances aren’t what they used to be), also maybe scan the comments on capacitor tolerancesLooks like the moral of the story is when in doubt, measure - so it’s a good thing we like to measure

author: tggzzz
author_rank: Super Contributor
timestamp: October 13, 2020, 08:20:06 am
content: Quote from: james_s on October 13, 2020, 05:39:30 am"not be stellar" is a euphemism for "crap"."can be made to work" implies it is error-prone and requires experience.The OP is a beginner."see if it works" is a euphemism for "haven't spotted the failure yet".

author: rstofer
author_rank: Super Contributor
timestamp: October 13, 2020, 04:25:12 pm
content: I think it has been covered but the rule is: One 0.1ufd ceramic capacitor per IC mounted as close as possible to Vcc and Gnd at the IC. It used to be possible to buy wire-wrap sockets with the capacitor already fitted to the socket. No chance of violating the rule.It isn't possible to get up close and personal with the capacitor when using a breadboard. Get it as close as you can. Inductance in the leads won't help! Keep the path short.I always add 100 ufd at the far end of a board, away from the power entrance and possibly another at the entrance.

author: james_s
author_rank: Super Contributor
timestamp: October 14, 2020, 05:30:53 am
content: Quote from: tggzzz on October 13, 2020, 08:20:06 amIt's a solderless breadboard, it's not going to be great, so what? I think I've had this same pedantic argument with you in the past, you think solderless breadboards are crap, I get the point, so what? That doesn't stop many thousands of people from building stuff that works. An excellent way of getting experience is to experiment, make errors and learn from them. This is not some kind of safety critical system where a crash will kill somebody or cause serious hardship. It's an experimental 8 bit computer put together as a learning exercise, no sane person is going to expect absolute perfection.

author: tggzzz
author_rank: Super Contributor
timestamp: October 14, 2020, 07:12:04 am
content: Quote from: james_s on October 14, 2020, 05:30:53 amYou would do well to note solderless breadboards enable:many thousands of people building stuff that failsbeginners being put off electronics due to frustration with flaky circuits that don't work due to inevitable stray LCRHence the points aren't pedantic, for the simple reason that I have seen those consequences too often.

author: rstofer
author_rank: Super Contributor
timestamp: October 14, 2020, 08:35:06 am
content: There are solder type prototype boards with a pattern that matches the solderless variety. As each module is completed and tested, it can be ported to a solder type board.http://www.chipquik.com/datasheets/SBB830.pdfI think I prefer wire-wrap for this kind of thing. I have a cut-strip-wrap gun that makes fast work of the process. There's no reason not to use wire-wrap sockets with these boards. Solder in the discrete components and wire-wrap all of the signals.

author: jdutky
author_rank: Regular Contributor
timestamp: October 14, 2020, 08:47:56 am
content: So I've made some progress on the clock generator circuit, first we have the circuit that I'm actually trying to build (from the MC68B09E datasheet), and the breadboard I've put together to implement it (the chips are, clockwise from upper left: 74LS74 dual D-type flip-flops, 74LS04 hex inverters, 74LS76 dual JK flip-flops, and a 74S51 standing in for the 74LS10 3-input NAND while I'm waiting on a purchase to arrive. On the right hand side you can see my improved probe discipline to sample the output Q and E signals. So long as I don't make any sudden moves, or breath, the probes will sit nicely in the breadboard sockets and let me take pictures. The tactile switch in the upper right allows me to trigger the MRDY input). Next we have several pictures of the oscilloscope display showing 1) the clock sampled at the oscillator's output, 2) the clock sampled where at the 74LS76 clock inputs, and 3) the Q and E output signals.Clearly something is terribly wrong, I suspect that it is a problem with how I have wired the circuit together, but I'm not entirely sure of that. The factors that suggest that I have mis-wired the circuit are that the Q high time is much longer than the low time, and the fact that I repeatedly mis-wired the connections around JK flip-flops several times.The scope settings are 200ns/div horizontal and 5V/div vertical. The oscillator is 3.088 MHz, though I'm planning to use an 8 MHz oscillator in the final version (I'm waiting on a purchase to arrive).UPDATE: looking at it now, and at the two samples of the clock signal, I'll bet I could clean up the clock signals just by taking them all directly from the output of the oscillator, rather than doing a running line like that, but I don't think that the clock signal is the problem here because while it gets a little worse, it doesn't get bad enough to be confusing the logic gates. I think I've clearly got something wired wrong and am inducing an unstable state in the JK flip-flops. I dimly recall (from college courses) that this was a problem even with ideal logic circuits run in simple simulations.UPDATE the 2nd: upon further reflection, it occurs to me that I have made this more complicated than it needs to be: I only need the "optional" portion of the circuit if I am going to support other bus masters in the system. I can omit the optional portion, lose two ICs (the two on the left) and get a circuit that is probably simple enough to debug at my current skill leve

author: tggzzz
author_rank: Super Contributor
timestamp: October 14, 2020, 09:12:41 am
content: Quote from: rstofer on October 14, 2020, 08:35:06 amSolves the intermittent R problem, does little for the parasitic L&C problem.Easier and cheaper to simply use rats nest (if you like the "solderless breadboard look"!) or manhattan techiques, e.g.or proprietary "BusBoard" boards with a full backplane but no through-hole plating, so you can select which pads are/aren't ground, e.g.QuoteBeen there, done that, still got lots of wire and a manual wrapper, and a few (expensive!) socketsThe decoupling caps are a pain (unless the flat Rogers caps or built into the board) and you have to be disciplined enough to create a decent ground grid.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: October 14, 2020, 10:15:55 am
content: I prefer to use "enameled" wire for prototyping, very much like the board shown in:https://en.wikipedia.org/wiki/Wiring_pencilAnd I combine that with (high quality) sockets for all DIP IC's, because the chance to damage a chip is relatively big with prototyping and it's a real *&^%$#@! to loosen all the wires and put them back if a chip has to be replaced.If you insist on using a breadboard, then at least devise some way of taking the crystal off the board.I've had boards lock up because a digital pin next to the crystal was switching, and the capacitive coupling through the breadboard was enough to upset the oscillator to lock up the CPU. Using such a square canned crystal oscillator is a much better way.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 14, 2020, 10:23:08 am
content: Quote from: jdutky on October 14, 2020, 08:47:56 amLook at the datasheet for the 7451 and then look at how you have it wired. I did not check anything else.Everything will need to be correct for it to work. The white protoboard should be fine for what you are doing.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 14, 2020, 10:59:08 am
content: Quote from: jdutky on October 14, 2020, 08:47:56 amThis clock generator circuit is very cool and inspirational - has me motivated to try something similar. Between your good progress and the split differences comments on the tradeoffs in construction techniques in this thread I’m learning some good stuff. Based on how far and fast you have moved out on this project I’m betting dollars to donuts you get it running. Thanks for sharing your cool project and for spawning the very educational discussion in this thread.fwiw, I’m excited about this project because it has just right balance between challenging complexity and for me, barely but possibly understandable insight to what I’m pretty sure is foundational logic and related circuitry for 8 bit computer building, along with other basic analog and digital circuit theory and practice learning opportunities in general, and/also if I can get though all that I’m eager to try moving/porting in steps from breadboarding to manhattan and to do some wire wrapping. I find manhattan to be fun and when done well kind of artistically/aesthetically beautiful - it provides a very pretty view of form and function, and for some reason I find wire wrapping almost therapeutic. So this project looks like a an excellent mountain to try climbing and exploring. It has a bunch of stuff I’d like to learn and this thread is clearing just enough paths that I’m inclined to give it a try. And if this gets anywhere the whole Ben Eater-type 8 bit computer building project might be feasible. This thread is a gateway to a lot of possibilities.

author: jdutky
author_rank: Regular Contributor
timestamp: October 14, 2020, 11:15:27 am
content: Oh! I was looking at the arrangement for the 74LS51, not the 74S51! That is certainly a rookie mistake.But, I went ahead and removed the 74LS74 and 74S51 from the circuit (they are marked as "optional" in the datasheet; you only need them if you are going to stretch cycles for slow memory, or maybe for other bus masters?) and the smaller circuit is much more within my current grasp. This looks much better, though still not quite perfect (I'm probing the base oscillator and one of the Q or E outputs).

author: Electro Fan
author_rank: Super Contributor
timestamp: October 14, 2020, 11:19:09 am
content: Quote from: joeqsmith on October 14, 2020, 10:23:08 amWow, Joe - looks like you inserted the diagram on top of jdutky’s breadboard?Very clever, nice, and helpful.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 14, 2020, 11:37:21 am
content: If you don't care too much about the ringing and just want to see the states, you could go back to the hook and long ground lead. If you want to use the short ground leads like you show, you may want to consider finding some sort of support for the probes. The tips are not typically very robust and are easy to snap off.

author: tggzzz
author_rank: Super Contributor
timestamp: October 14, 2020, 12:58:11 pm
content: Quote from: Doctorandus_P on October 14, 2020, 10:15:55 amValid points.I've never really liked the wiring pencils, but that is a matter of personal preference.

author: jdutky
author_rank: Regular Contributor
timestamp: October 15, 2020, 05:49:12 am
content: Quote from: joeqsmith on October 14, 2020, 11:37:21 amIve been draping the probe cables over nearby things on the bench (e.g. a multimeter that was sitting next to the breadboard) in order to take their weight off the probe tip, not to protect the probe tip (thanks for the warning) but because the probe will simply pop out of the breadboard if there is even the slightest tension from the cable. I read the article by Paulo Renato about making your own low-Z probe, and that looks like it might be useful here.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 15, 2020, 11:48:43 am
content: Working at low frequencies and using a breadboard, you may find resistive probes not making much of a difference.IMO, with your seemingly interest in the signal shape and with the NanoVNAs being so inexpensive, I would highly recommend you get one and start learning some of the basics. This simple device could help you understand that wires are not just wire and resistors are not just resistors. These concepts may become important depending how far you decide to take this new hobby of yours. You may also want to download the free Micro-Cap simulator. This simulator would allow you to play with high speed designs without having to buy the equipment or build anything. You could also share your circuits with others who could then maybe help you out.A few probe links. This is my Harbor Freight probe holder with vintage Tektronix high Z probe:https://www.eevblog.com/forum/testgear/hi-z-probe-for-50-ohm-spectrum-analyzer/msg3241778/#msg3241778Some links to homemade low impedance probes:https://www.eevblog.com/forum/testgear/fifty-ohm-probes/https://www.eevblog.com/forum/projects/lo-z-probe/I'm sure there are many others. Try the advanced search option.

author: tggzzz
author_rank: Super Contributor
timestamp: October 15, 2020, 12:22:11 pm
content: Quote from: joeqsmith on October 15, 2020, 11:48:43 amIndeed, but the OP is working at hundreds of MHz, due to the signal's rise/fall time.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 15, 2020, 01:57:33 pm
content: Quote from: tggzzz on October 15, 2020, 12:22:11 pmI doubt they care about emissions and the fundamental is so low timing shouldn't pose any problems.Back in the days of the 6800, my school required each student to design and construct a similar computer on whiteboard. We were doing this with an analog scopes, 10X probes and burning EPROMs. I have no doubt that the OP can pull this off if they stick with it. But still to your point, it's good to start learning some of the basics as well which is why I mentioned the NanoVNA.

author: tggzzz
author_rank: Super Contributor
timestamp: October 15, 2020, 03:45:58 pm
content: Quote from: joeqsmith on October 15, 2020, 01:57:33 pmSigh.Emissions are probably irrelevant to the OP, and are certainly irrelevant to waveforms on a breadboard.If you miss hold times due to unacceptable signal integrity then it doesn't matter whether the clock is 1GHz or 1Hz.If a clock waveform is unacceptable due to transmission line effects then it doesn't matter whether the clock is 1GHz or 1Hz.If ground bounce causes problems (in a clock or signal) then it doesn't matter whether the clock is 1GHz or 1Hz.All that matters is the rise/fall time- because that is the core parameter for all those problems.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 15, 2020, 04:05:57 pm
content: Not that we would run at a Hz but even at 3MHz, the time we have to settle is very long. Normally, it won't pose a problem.

author: tggzzz
author_rank: Super Contributor
timestamp: October 15, 2020, 04:40:24 pm
content: Quote from: joeqsmith on October 15, 2020, 04:05:57 pmSettling time is irrelevant.I suggest you do some basic research on these topicsground bounce, cause and effecthold timesignal propagation in a transition lineclock signals that don't have a clean and fast risetimeeffect of signal and clock voltages that are >Vcc and <0

author: rstofer
author_rank: Super Contributor
timestamp: October 15, 2020, 04:43:47 pm
content: Quote from: jdutky on October 13, 2020, 02:28:54 amWhen you buy the "big bag of ...", you are getting "floor sweepings". These are devices that are so far out of spec that they simply can't sell them as real parts. A lot of people swear by these grab bags but I'm of the opinion that I would rather have compliant parts from a reputable source - like DigiKey or Mouser.Decent 0.1 ufd ceramic 10% capacitors tend to cost about $0.25 each. You will most commonly see -20% +80% but they can be as good as 1%10%:https://www.digikey.com/en/products/detail/murata-electronics/RDER71H104K0S1H03A/47723075% are a lot more expensive but you only need a couple:https://www.digikey.com/en/products/detail/tdk-corporation/FG26C0G1H104JNT06/5812001For general decoupling, -20% +80% is typical:https://www.digikey.com/en/products/detail/vishay-beyschlag-draloric-bc-components/K104Z15Y5VE5TL2/286602Note that the -20% +80% isn't a lot cheaper than the +-10%I never buy parts in grab bags and I don't buy from China either. I have enough complications without using floor sweepings.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 15, 2020, 05:06:33 pm
content: Quote from: tggzzz on October 15, 2020, 04:40:24 pmI've dabbled.Considering the OP is using very old technology, not that you couldn't run into problems but it was far less likely.

author: tggzzz
author_rank: Super Contributor
timestamp: October 15, 2020, 06:34:53 pm
content: Quote from: joeqsmith on October 15, 2020, 05:06:33 pmHold time violations screw you in any technology.Voltage outages can be worse in old technology: search for SCR latchup.Some old technologies require a non-standard and especially clean and clock. The MC6800 springs to mind, but I'm sure there are others.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 15, 2020, 10:09:51 pm
content: Quote from: tggzzz on October 15, 2020, 06:34:53 pmI can recall one time where I had to solve someones timing violation back in those days. I don't know what a voltage outage would be. Loss of one of the power rails? If so, I don't see the problem. I have never had a problem with latchup.The parts OP is working with are 5V technology, combined with the slow slew rates and low clock rates, the margins are huge and easy to work with. Even on a breadboard.I've used some of the Motorola parts. These old 8-bit ones where the workhorses of the time.

author: tggzzz
author_rank: Super Contributor
timestamp: October 15, 2020, 11:07:45 pm
content: Quote from: joeqsmith on October 15, 2020, 10:09:51 pmSo, you "have dabbled". Clearly you don't know what SCR latchup is - and you can't even be bothered to look it up. No wonder you don't see any difficulties.I've never had a problem walking into the road without looking.QuotePlease remove the adjectives and replace them with engineering terms, i.e. numbers.Do a back of the envelope calculation to get a feel for the voltages that will be present in a well implemented board and on a board solderless breadboard construction. It isn't difficult - I learned the physics at school when I was 16.QuoteShrug. Some common families were infamous for SCR latchup. But you wouldn't know that because you choose not to look.

author: jdutky
author_rank: Regular Contributor
timestamp: October 16, 2020, 12:33:02 am
content: Quote from: rstofer on October 15, 2020, 04:43:47 pmI have also found a significant difference in the capacitance measured by my two multi-meters that have a capacitor mode. Truth is an elusive beast.If I want to get good quality capacitors and resistors, are there better sources than Digi-Key or Mouser? I've been buying cheap stuff off Amazon and JameCo because I'm just noodling around and don't want to spend too much for that, but I also plan to do some restoration work (on a bunch of my father's and grandfather's old test equipment) and some building of useful stuff, both of which I would like to have quality components for.

author: jdutky
author_rank: Regular Contributor
timestamp: October 16, 2020, 02:54:33 am
content: I"m going to call this success, even though I'm not sure that the high and low times should be that asymmetric. I need to give the datasheet a good close read for the timing parameters (the diagram looks very symmetrical, but I glossed over the actual values). I tried (and succeeded and failed, in that order) to build a Colpitts oscillator (because I have a bunch of inverters lying around that this circuit isn't using, so why not?), and I found a source for the MC6875 which (presuming the chips aren't counterfeit) makes all of this merely an academic exercise.Anyhow, here's the finished circuit and the scope traces (again, I omitted the MRDY section of the circuit, so those chips are a 74LS04 hex inverter on top, and a 74LS76 dual JK flip-flop on the bottom). Now I should be able to hook up the CPU, feed it hard-wired NOPs, and watch the address lines count up (the upper bits, at least. Maybe I should run it a really low clock speed for my first pass, though I expect you might still be able to see the counting if only as LED brightness on different address lines).UPDATE: No, I take it back, this is NOT success. The datasheet clearly shows that the clock signals are symmetric and that they overlap high and low periods, just that Q transitions lead the corresponding E transitions by 100 ns. I've got to put this circuit on paper, understand EXACTLY what it's supposed to be doing, and figure out where I've gone wrong.

author: tggzzz
author_rank: Super Contributor
timestamp: October 16, 2020, 07:53:45 am
content: Quote from: jdutky on October 16, 2020, 02:54:33 amIt is good to see somebody thatverifiesandthinks. Too many people do neither

author: joeqsmith
author_rank: Super Contributor
timestamp: October 16, 2020, 10:57:24 am
content: Quote from: tggzzz on October 15, 2020, 11:07:45 pmStrange post. While it may be clear to you what I do and do not know, it seems rather delusional.Quote from: tggzzz on October 15, 2020, 11:07:45 pmThis information is easy to come by. You or anyone else could look it up if you are interested.Quote from: tggzzz on October 15, 2020, 11:07:45 pmAll I stated was that I have never had a problem with it which is true.Do you find it hard to believe that students were required to build such a project and show it working as part of their education? Maybe using an old analog scope with 10X probes to pull it off is what you can't grasp. Maybe you can't believe it was done on a breadboard. All I can offer is that was common.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 16, 2020, 11:04:06 am
content: Quote from: jdutky on October 16, 2020, 02:54:33 amIf you want help, I suggest posting a schematic of each circuit you are constructing. It would make tracing it out or finding design problems easier. Also, being able to see the part numbers on the ICs may help.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 04:26:52 am
content: Quote from: tggzzz on October 16, 2020, 07:53:45 amI've done enough of neither to learn that some of at least one or the other alleviates a great deal of frustration.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 05:19:40 am
content: Quote from: joeqsmith on October 16, 2020, 11:04:06 amThe circuit I'm trying to construct is this one from page 4-309 of the MC68B09E datasheet found on the JameCo site (https://download.siliconexpert.com/pdfs/2009/11/4/3/43/0/461/jamco_/manual/320590mot.pdf), but there is a more common version of the MC6809E datasheet (https://colorcomputerarchive.com/repo/Documents/Datasheets/MC6809E%20HMOS%208%20Bit%20Microprocessor%20(Motorola).pdf) that has a very slightly different version of of the circuit on page 12. The specifications for the clock signal are found on page 4-300 (JameCo)/3 (others). I have attacked screen shots of the relevant portions of both datasheets below (first JameCo, then the other common one). The main difference between the two circuits appears to be the substitution of a 74LS04 inverter in place of the transistor driving one of the output signals in the lower right, but I have not exhaustively compared the two figures, so I may have missed something subtle.There is not much I can do to make the printing on the chips more visible, but I have found that viewing the chip at a shallow angle can make the printing easier to see. I will try to get pictures of the circuit that reveal the printing on the chips and attach them to a subsequent comment.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 05:46:33 am
content: Here are the images of the current circuit, and low angle close-ups of the chips that reveal the part numbers. I had to modify the circuit in order to photograph it: I removed the bypass capacitor that straddles the lower chip (the 74LS75A) across pins 5 and 13.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 06:01:56 am
content: I have been worrying that some of these chips might be counterfeits, but I specifically tested both chips out of circuit and they both appear to behave as their designated parts (a set of inverters and a pair of JK flip-flops). The 74LS76A differs from the 74LS76 in that the LS is triggered on the negative (falling) clock edge, and the regular 74LS76 is triggered on the positive (rising) clock edge. There is some verbiage about when signals on the J and K inputs need to be valid compared to the trigger edge, bu I can't see how that would change the specific behavior of this circuit (other than to shift the entire output signal by 90 degrees from the input clock, which I don't think should matter for the shape and timing of the generated clock signals).

author: tggzzz
author_rank: Super Contributor
timestamp: October 17, 2020, 08:44:27 am
content: Quote from: joeqsmith on October 16, 2020, 10:57:24 amIn isolation - because you deliberately snipped the context - it does look strange. But reinsert the context and it makes sense. Now, whydidyou remove the context? Here is the context:Quote from: joeqsmith on October 15, 2020, 10:09:51 pmQuoteThen I suggest you state your presumptions and do the calculation. It looks like you would be surprised by the result.I have done that several times elsewhere on this forum.QuoteAnd as useful/useless as my comment about walking into the road without looking - which is also true.QuoteMaybe you can't believe problems with solderless breadboards are common, for sound theoretical and practical reasons.

author: tggzzz
author_rank: Super Contributor
timestamp: October 17, 2020, 09:12:12 am
content: Quote from: jdutky on October 17, 2020, 05:19:40 amLook at the "DC Electrical Characteristics" table on p2, and the "Clock Inputs E Q" on p9.The E input is not TTL compatible, and will requireverycareful attention to signal integrity.The MC6875 was a clock driver for the 6800, which had similar clock voltage constraints.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 09:06:29 pm
content: Quote from: tggzzz on October 17, 2020, 09:12:12 amAh, so that's why we have a pull-up to +5V on the E-to-processor output signal, to raise the output high level to something higher than "normal TTL" high. I had been wondering about that detail, as no other outputs had pull-up resistors. I would appear that a close reading of the datasheets is not merely beneficial, but absolutely necessary.Looking at the schematic I have for the 6800-based HEP-KIT Educator II (A 6800-based microcomputer education kit from the late 70s which partly incited my desire to build a 6809-based computer) I see that they also have a pair of flip-flops ("dual mono-stable multi-vibrator") and a couple of 74L04s (half the chips in the HEP-KIT are generic parts, and the other half, e.g. the MPU, RAM and ROM, are custom labeled parts almost impossible to look up on the web today. If my father had not annotated the manual with the actual part numbers I would be completely lost). The flip-flops are arranged similarly to what is shown in the 68090E datasheets, are annotated to produce input for the two-phase clock inputs to the CPU, and (both) have pull-ups to +5V.I'm currently setting up a test harness to verify that the 74LS76A behaves entirely the way that I expect it does. I'm not too concerned that the chip is counterfeit, but I'm still a little concerned that something else about the 76A versus the 76 is causing a subtle problem.

author: tggzzz
author_rank: Super Contributor
timestamp: October 17, 2020, 09:31:53 pm
content: When reading data sheets, it is necessary understand what they aren't saying and/or omit to say.Personally I would use a modern CMOS device to drive the E&Q. The CMOS devices available when the 6809 was first introduced weren't fast enough.

author: jdutky
author_rank: Regular Contributor
timestamp: October 17, 2020, 10:13:05 pm
content: Quote from: tggzzz on October 17, 2020, 09:31:53 pmOkay, that brings up a topic I've been hesitating to broach: what's the deal with the different CMOS families?I want to start working with CMOS chips, but was waiting until I got my "sea legs" with TTL, which I understand to be more forgiving and easier to handle. There are an entire series of CMOS devices (4000/14000 series devices) as well as CMOS versions of the 74-series (74Cxx, 74HCxx, and 74HCTxx). From reading the datasheets at least the HCT versions seem to be completely compatible with other TTL parts, but I don't trust my inferences from random statement random datasheets.All of my printed reference material, along with a fair bit of my inventory, is at least 20 years out of date, if not twice that, so I have no idea what is still relevant.Will I be able to work with CMOS devices easily? Can they be mixed with TTL devices? What do the different family indicators mean?I'm just a ball of questions and ignorance whose only saving grace is some minimal insight into his condition.

author: tggzzz
author_rank: Super Contributor
timestamp: October 17, 2020, 10:41:40 pm
content: Quote from: jdutky on October 17, 2020, 10:13:05 pmThat's too long for a full answer. Fundamentals: all have outputs that are compatible with TTL input levels. "4000"=original wide voltage and slow, "H"= fast(er), "C"=CMOS version of TTL function, "T"=inputs that are compatible with TTL output levels.Full answers are easy to find on the web and in application notes, or see TAoE 3

author: joeqsmith
author_rank: Super Contributor
timestamp: October 17, 2020, 10:49:03 pm
content: Quote from: tggzzz on October 17, 2020, 08:44:27 amI can believe that any circuit built using any technique can be prone to problems. It depends a lot on the skills of the people doing the work.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 17, 2020, 10:51:55 pm
content: Quote from: jdutky on October 17, 2020, 10:13:05 pmMight be too basic but maybe something in here useful:https://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/

author: joeqsmith
author_rank: Super Contributor
timestamp: October 17, 2020, 10:54:20 pm
content: Quote from: jdutky on October 17, 2020, 05:19:40 amI was thinking you could just mark up the layout on paper (showing the chip placement) and take a picture of it.Is this something like what you are attempting to make? It appears this was the only post they made before moving onto another project.Or maybe something like this?We used 3M boards back then. I really have no experience with modern boards. Watching the video now and it seems like it may provide you with some insight.

author: tggzzz
author_rank: Super Contributor
timestamp: October 17, 2020, 11:21:55 pm
content: Quote from: joeqsmith on October 17, 2020, 10:49:03 pmThat statement gives no useful information, let alone information that can guide someone, e.g. beginner such as the OP.If you want useful information that guides people away from known problems then, in this case, do the calculations you have said are 'easy to come by".

author: rstofer
author_rank: Super Contributor
timestamp: October 18, 2020, 01:53:53 am
content: Quote from: jdutky on October 17, 2020, 10:13:05 pmRead this... Then read it again! Notice that combinational logic isn't available for every family, even within simple CMOS families.https://www.ti.com/lit/sg/sdyu001ab/sdyu001ab.pdfSome logic families are for low voltage (less than 5V) the CD4xxx CMOS family will generally, an usually, run at higher than 5V. Some are faster than others.Personally, I would stay with 74LSxxx even though it consumes a LOT more power. This is based on my limit of about 100 chips for a wire-wrap project. The total power would still be reasonable.Actually, I have pretty much given up on discrete logic and prefer to use FPGAs. I don't, but if I wanted to, I could code the HDL to match the specs of any logic device (timing would vary but that's easily handled) and then instantiate the project as interconnected logic gates. I wouldn't recommend that approach but it would certainly work.Even in the FPGA world, I still need to deal with the fact that the outside world may not run at 1.8V or 3.3V and level translators may be required.

author: jdutky
author_rank: Regular Contributor
timestamp: October 18, 2020, 03:20:42 am
content: Quote from: joeqsmith on October 17, 2020, 10:54:20 pmThat's EXACTLY what I'm trying to make, both the simple CPU running from hardwired NOPs, and then something with memory and a front panel after that. Beyond that, I have made no plans. As the fellow in the first video says: it's no fun unless you can see blinking lights.

author: jdutky
author_rank: Regular Contributor
timestamp: October 18, 2020, 03:37:54 am
content: Quote from: rstofer on October 18, 2020, 01:53:53 amI have (many, many years ago) studied VHDL and Verilog with the intention of doing this sort of project in an FPGA, but now, under the strictures of the pandemic, I feel like I want the authentic experience of discrete logic in dual inline packages. I'm doing this entirely for my own entertainment and edification, so efficiency of any sort is of no concern.But I do take your point. I'm willing to meet you half way and implement all my glue logic in PALs/GALs, as soon as I figure out program the damn things (I have a "TL866 II plus" that I bought to burn EPROMs, which says it will do PALs, GALs and CPLDs, but I've also read on-line that there are vendor specific dependencies, as well as limits on what PALs/GALs/CPLDs are still in production. But that is yet another topic I have not wanted to broach yet).

author: jdutky
author_rank: Regular Contributor
timestamp: October 18, 2020, 03:49:26 am
content: Quote from: Electro Fan on October 17, 2020, 10:51:55 pmThat is almost EXACTLY as basic as I need it to be, thank you.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 18, 2020, 02:11:02 pm
content: rstofer, thanks for finding/posting this:https://www.ti.com/lit/sg/sdyu001ab/sdyu001ab.pdfThis is an excellent overview/summary of logic device families.EDIT/PS:It’s “funny” how the study of electricity is so broad and deep and essentially infinite that you can easily conclude it’s hopeless (especially without formal education and training) to ever get things assembled into a reasonably full and clear view - and it can seem doubly challenging if you want to glue together a view of both analog and digital. But sometimes just when you think you will have to be resigned to thinking there is too much complexity (too many parts - both conceptually made by the laws of nature and described by humans as physics and math, as well as seemingly random part numbers as assigned by human commerce) .... and then one day we trip across a post, a link, a document and all of a sudden, at least temporarily stuff seems to fall into a place of understandable order. It does’t mean you can understand much less apply and harness all of it, but at least the outline of something (in this case IC logic device numbers) that looked random and infinite starts to look possibly ordered and maybe even nearly finite. Even though experience indicates exceptions and expansion will be coming back into view almost immediately, it’s nice to occasionally/momentarily enjoy the new vista.For anyone who thinks the numbering system and purposes of logic devices / ICs are darn near impossible to grasp, save these two links as favorites. And if anyone finds more such summary info on ICs, please post.https://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/https://www.ti.com/lit/sg/sdyu001ab/sdyu001ab.pdfThanks to jdutky and rstofer and everyone who catalyzed this thread.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 18, 2020, 05:32:45 pm
content: Quote from: jdutky on October 18, 2020, 03:37:54 amFor the discrete logic, I would suggest going one step further and stay with the exact parts called out on the schematic you're trying to replicate.You may find that some of the older programmable logic will cost you more than an FPGA. Tools may pose a problem. I used to use PALASM but there was some point where I could not get it to run with Windows and I changed to CUPL (nightmare). Eventually I moved to the Lattice tools. A few years ago I tried to make a small computer that had a GAL. I tried running the Lattice ispExpert 7.1 under Windows 10 and it worked.I just tried running PALASM under a DOSBOX with Windows 10 and that seems to work. Considering that it's 30 years old now, that's impressive. So, looks like the tools won't pose much of a problem. If you can't find PALASM, let me know.***Using a modern FPGAs your resources would be enough that you could roll your own 68xx. I was playing around making my own hybrid sort of 6811ish in an FPGA many years ago. Todays parts would make short work of it, not to mention there are evaluation boards that would allow you to focus the code rather than the hardware. Not suggesting you go this route as you seem to have your heart set on a discrete approach.Hardware starts about 8mins in.You can see it running here with some very old LabView and DOS programs.Times have sure changed.

author: jdutky
author_rank: Regular Contributor
timestamp: October 19, 2020, 01:57:03 am
content: Quote from: joeqsmith on October 18, 2020, 05:32:45 pmNot going to lie; those wire wrapped boards are things of beauty! What he's done with those FPGAs is pretty damn impressive, but I guess I'm looking to recreate a slightly different era with my hobby. I'm a software engineer in my day job, and writing more code that I then run through a compiler and drop on a couple of chips doesn't really interest me that much. The feel of a hot soldering iron and smell of burning resin, however, is a cherished and comforting childhood memory.I'm starting out with an 8-bit micro because it feels like the right balance between functionality and difficulty for my skill level. Once I get more experience, however, what I really want to build is a 16-bit mini, something like a cross between an enhanced 6502 and a hobbled PDP-11 (I'm actually taking a bunch of the architectural ideas from the Varian 6xx and V7x series computers, with which I have a family history). If I had any experience with wire-wrapping I would probably be doing it that way, but I've only ever worked with either solderless breadboards or soldered techniques (regular PCBs, point-to-point, and matrix breadboards).I'm planning to build something around the 74181/2/3 ALU/carry gen/fast adder (which I have a small stash of), and then just throw a bunch of SRAM and PROMs at it for memory, sequencing, and the more complex glue logic. First, however, I need to get comfortable with the tools and technology.Seriously, though, that wire wrapping is amazing work, especially the tiny coax he used for the clock distribution. Wow.

author: jdutky
author_rank: Regular Contributor
timestamp: October 19, 2020, 06:08:43 am
content: I found that I had some 74LS76Ns (rather than the 74LS76AN that I had used previously) and replaced the 74LS75AN with that. I also compared both versions of the example clock circuit in the two versions of the datasheet that I have (the one with the transistor on the Q output is from what I will call the Thompson datasheet, and the one with the inverter on the Q output I will call the JameCo datasheet, based on where I got the two versions from), and re-derived my breadboard layout from the verified circuit schematic. Sadly, nothing significant about the output has changed.Below, in order, are my schematic copied from the datasheets (omitting the optional MRDY sub-circuit and the Q output pull up circuits because I'm trying to concentrate on getting the right output from the JK flip-flops), then my breadboard realization of the circuit, followed by a low angle image showing how I'm probing the circuit, and finally the scope outputs comparing each of the Q, Ecpu, and Esysoutputs to the oscillator clock.My expectation is that the high and low times for the Q and E outputs should be symmetrical, but there is a 1:2 ratio (low:high for Q and Ecpu, and high:low for Esys). Is there something I should be doing with the circuit to prime the flip-flop values on power up (e.g. should I put pull-up/pull-down resistors on the Q/~Q pins, or something)?This is frustrating, but I feel like I'm really close to getting this to work.The scope configuration is:channel 1 (oscillator) is the upper tracechannel 2 (circuit output) is the lower trace2 V/div vertical, both channels200 ns/div horizontaltrigger on the falling edge of channel 1 (oscillator output)both channels and trigger are DC coupled(I know that the scope output seems to show that the oscillator is running at about 3.125 MHz, while the oscillator can reads 3.088 MHz, which is off by about 1.2%. I don't know whether or not that is within the tolerance of the oscillator specs, but this scope was last calibrated in 1979, so I would not be surprised if the horizontal timebase had drifted a little bit)(also, I now realize realize that my probe of the oscillator output is using entirely the wrong ground line, which is causing a bunch of ringing in the scope traces. In my defense, I'm an idiot)(also in my defense, I'm becoming comfortable with the idea that, so long as I'm building, and probing, these circuits on a solderless breadboard I am just going to have this kind of noise in my measurements. If it weren't so much work to modify soldered breadboards I would ditch the solderless ones altogether)

author: joeqsmith
author_rank: Super Contributor
timestamp: October 20, 2020, 12:27:13 am
content: I rechecked your schematic and wiring and it appears correct.Just for fun I built up your last circuit using the worse possible probing, no by-pass, no bulk, no termination. 5V supply. Shown running the same circuit at 16MHz and then at 50MHz. I have a few different brands of the 7476 that I tried and all have roughly the same performance. At least it should give you some idea that what you have shown could work.Maybe you want to consider some better parts or maybe change over to solder as it seems this is really what you want to do anyway.

author: tggzzz
author_rank: Super Contributor
timestamp: October 20, 2020, 07:30:51 am
content: Quote from: jdutky on October 19, 2020, 01:57:03 amThere is a half-way house: bit slice designs like the AMD 2900 series. They are like a 74181 plus surrounding gunk in one chip, address sequencers in another, and so on. They were used to implement things like Data General Nova 4, PDP-11/23, PDP-11/34, Atari's vector graphics arcade machines, AT&T 3B20D Processor, VAX-11/730 and DECsystem-2020. It looks like they are still available (see octopart), but it would probably be easier to re-implement them in a PAL/FPGA.Even if you don't use them, understanding the concepts may shape your strategy.The classic book is "Bit-slice Microprocessor Design" by Mick and Brick.

author: tggzzz
author_rank: Super Contributor
timestamp: October 20, 2020, 07:36:34 am
content: Quote from: jdutky on October 19, 2020, 06:08:43 amEasy mistake to make. Easy to avoid if there is a full ground plane.QuoteIt isn't much work (especially if you include the timenotspent debugging), if you use the construction techniques used by the masters. See "dead bug" and "manhattan" inhttps://entertaininghacks.wordpress.com/2020/07/22/prototyping-circuits-easy-cheap-fast-reliable-techniques/#more-931 hey, as a softie you ought to be well aware of that phenemon!

author: joeqsmith
author_rank: Super Contributor
timestamp: October 20, 2020, 12:09:29 pm
content: To give you some additional ideas, keeping the clock at 50MHz, I added an 80 ohm terminator to the end of the clock and added a single 0.1uF to the supply of the FF. The cap didn't bring much to the party. The 80 ohm is really loading the clock and I'm surprise the circuit still runs.While playing with PALASM, I brought up another old digital simulator and put your last circuit in it. I would expect that free MicroCap simulator has mixed mode and a 74xx library. You may want to have a look at it.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 20, 2020, 06:21:47 pm
content: Quote from: tggzzz on October 20, 2020, 07:36:34 amTo to confirm/clarify/understand.... is this saying that probing the oscillator directly (on, or near?, an oscillator pin), rather than probing the ground plane provides a different result - because the probe loads/couples the pin differently than it would the ground plane? Thx

author: tggzzz
author_rank: Super Contributor
timestamp: October 20, 2020, 07:26:29 pm
content: Quote from: Electro Fan on October 20, 2020, 06:21:47 pm"Loads" isn't the right concept. The problem is interconnecting wires (including the ground lead) which have ~1nH/mm inductance. And we know what happens with an inductor and capacitorSee, for example,https://entertaininghacks.wordpress.com/2015/04/23/scope-probe-accessory-improves-signal-fidelity/andhttps://entertaininghacks.wordpress.com/2016/09/17/scope-probe-accessory-higher-frequency-results/#more-823Having a solid uninterrupted ground plane is good for the circuit and makes it easy to have a very short lead (~10mm) probe ground.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 20, 2020, 11:33:39 pm
content: Quote from: tggzzz on October 20, 2020, 07:26:29 pmOk, ThxFound this - might be part of what I'm trying to better understand; might be helpful to others.https://assets.testequity.com/te1/Documents/pdf/probes-affect-measurement-an.pdf

author: jdutky
author_rank: Regular Contributor
timestamp: October 20, 2020, 11:37:35 pm
content: Yes, I'm aware of the AMD 2900 parts. I have been looking for AM2900 parts, but, so far, have only found the lookahead carry generator (which I was planning to use in place of the 74182, but then I found some 74182's online). If I can find a source for the AM2901 (the ALU) then I would like to build something using that.The question of sequencing logic is going to be tough: I'm pretty much resigned to using some kind of programable logic, rather than building something historically accurate. I'd like to use a PAL or GAL, but it seems easiest just to use an EEPROM and a counter. I haven't gotten to that stage of the design, though, so I'm really not sure what will be necessary.Honestly, building a 16-bit mini is more about the blinkenlights and flippenswitches (mit grubenfingers) than anything else. Sadly, I don't have either an ASR-33 or a Tek 4010 to use as a console, and the only paper tape reader that I have has deteriorated to point that is probably non-repairable (it had cork wrapping on the feed spindle, and the cork has literally turned to dust). There is a lot about recreating the minicomputer experience that I'm simply going to have to forego.

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 12:11:23 am
content: Quote from: joeqsmith on October 20, 2020, 12:27:13 amI've ordered 74LS76 parts from several different sources, and it looks like I only ever get TI parts. I'll see what I can get from one of the bigger name distributors, but when I've checked on Digi-Key and Mouser it looks like they don't want to supply DIP parts anymore.I do have other JK flip flops, however, and I think I might have solved my problems using a 74LS112 (about which I will post separately, because it's a bit involved), but I think I might also have found the bug in my 74LS76 circuit.In order to debug the circuit I disconnected the "wrap around" connections from the the outputs of the second JKFF to the inputs of the first, and tied the inputs of the first JKFF high (so that it just toggles and halves the input clock). This yielded a couple of interesting results:First, Q and ~Q of both JK flip flops do not appear to be inverted versions of each other! I see in manually clocked testing that one output (Q) changes state on the falling edge of the clock, while the other output (~Q) changes state on the rising edge. This puts ~Q out of phase with Q by 90 degrees. This is not what I expect the JK flip flop to be doing.The real problem, though, appears to be a large transient in the ~Q output of the second flip flop. Attached are my notes on the modified test circuit showing all four outputs in relation to the clock, and a picture of the scope trace for ~Q2 and the clock.I had thought that these transients might be the result of my poor probe technique, but they remain even when I use the ground springs and carefully probe as close as possible to the chip's ground pin, or that they were some kind of crosstalk in my antique scope (there IS crosstalk in the scope, but it is only visible when I've got the inputs set to less than 5 mV/div. I am well above that range when working with TTL signals). The large transient coincides exactly with the deformation of the Q and ~Q outputs of the second flip flop in the full circuit (where the duty cycle ends up being 2:1 rather than 1:1). The transient is more than large enough to cause the flip flop to incorrectly change state.I don't know how I'm going to fix that transient, but the current circuit has no bypass caps, so I will start there. Damping the signals with a termination resistor sounds like it's worth a try as well. That said, I don't feel as if I understand the origin of this transient in any real way. Is it coming from the breadboard, or is it something happening internal to the 74LS76? Since there are multiple transients, all aligned to the edges of the clock signal, I am tempted to think that this is due to inadequate bypassing, and the power rail inside the chip sagging on each clock transition, but I'm largely talking out my ass on this.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 21, 2020, 12:55:56 am
content: Part of learning is overcoming problems. Just stick with it.I'm not sure if this helps or not. I built up a second circuit using a D rather than the J-K. I have a lot more 7474s. I ran the clock in series. Added a couple more 0.1s for the second part.The CH0/1 are looking at the 7474 and the CH2/3 are looking at the original. Still using the long 6" ground wires, $9 probes with a few inches of wire to probe the board.The first set is a MM74C74N by NSC with a 4MHz clock. /4 so 1MHz being displayed. These parts are slow and very forgiving.The second set is a DM74LS74 by NSC with a 4MHz clock.For some fun, the last part is a 74F74 by Signetics using a 16MHz clock. I've used these parts over 100MHz but would need to build something better to demonstrate them. On the breadboard, it's 4X faster than the 6809 you plan to use.If you wanted to try the more common D, just route Q1 to D2, Q2' to D1.

author: Martian Tech
author_rank: Regular Contributor
timestamp: October 21, 2020, 02:07:50 am
content: Quote from: jdutky on October 20, 2020, 11:37:35 pmLook for a TI Silent 700 model 703. They're reasonably priced relative to most vintage terminals, and you can still get the thermal paper they use.Model 703 runs at 300 bps (though there is a 1200bps version as well) and has an RS-232 port. Avoid the Model 707, as that has a built-in modem as its only interface.

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 02:28:09 am
content: Quote from: joeqsmith on October 21, 2020, 12:55:56 amLOL, I'm not sure it helps either, but it's interesting to see your results.Also, I had not realized that the wire wrapped board was your work. I already said it, but I just wanted to make sure the compliment was correctly delivered: that was some really beautiful work!I've had a look at DigiKey, Mouser, and Arrrow, and either they won't supply DIPs in hobbyist quantities, or they only stock TI parts (for the 74LS76). JameCo only seems to stock TI parts. Amazon is a circus. I didn't find anything on Adafruit or Element14. There used to be bricks-and-mortar places I could go locally (Maryland) for this sort of thing, but most, if not all of them closed up a decade ago. Are there other modern distributors that are willing to supply hobbyists?

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 02:38:58 am
content: Quote from: Martian Tech on October 21, 2020, 02:07:50 amI'll have a look for one of those, though the noise is a big part of the charm of an ASR-33. I did see a Wyse terminal which, while lacking all the charm of Tek 4010, did offer a reasonable emulation mode. The price, however, was not at all reasonable (almost $500 on eBay). I'm pretty much resigned, however, to just hooking up to my project via a serial line and terminal emulator on a modern PC, when I'm not plugging away at the front panel.For the 6809 project, however, I have a slightly better plan: I just ordered two old Sony Watchman handheld TVs, and plan to try modifying them ala the TV Typewriter. For the 6809 this seems like the perfect display device, especially if I can get my hands on an MC6850 (or similar) to generate the video signal. If you bypass the receiver stage you can get pretty good resolution out of a black-and-white TV.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 21, 2020, 03:35:06 am
content: Quote from: jdutky on October 21, 2020, 02:28:09 amYeah, I have done a fair amount of wire wrapping in the past. That particular board was really just a small part of the project. I wrote a ucode compiler to create the instructions, designed the hybrid 6811, had to write diagnostic code to test the hardware. Write some applications for it. Make a PC interface to run it. Windows drivers. It was a lot of fun.I looked at Digikey to see if I could get some new stock. This is why I was suggesting you may want to change the design to something more common.I tried a quick sloppy construction using surface mount caps, shed the long leads from my $9 probes and left it unterminated. The board has both power and ground strips. Clocking the 74F74 at 60MHz.

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 04:27:53 am
content: Quote from: joeqsmith on October 21, 2020, 03:35:06 amWow, I had no realized that you could use SMD components on regular perf board like that, but it's obvious once you see it done. I haven't tried my hand at soldering SMDs yet, and my hands aren't getting any steadier with age. I am getting ready to make a couple of custom keyboards, however, and I will probably need to tackle SMDs for one of those (or just use one of the hobbyist MCUs on a daughter card, which seems a lot easier, and probably wouldn't compromise my space or power constraints in any noticeable way).I tried adding bypass caps to my cut down 74LS76 circuit, to see if I could eliminate the transient that seems to be screwing things up. I put a regular 20 pF bypass cap on the oscillator and that seemed to clean up the clock signal quite nicely. For the 74LS76, however, I tried several progressively larger caps with no significant change to the transient spike. I ended up putting a 1 uF electrolytic across the power and ground pins. Most of the output signal came out wonderfully clean, but the transients are still there, and the troublemaker is completely unchanged.I also tried increasing the voltage and current limits, but the circuit stubbornly draws a consistent 10 mW at 5V, and the spike just scales up when I increase the voltage from the supply. I haven't tried adding termination resistors, yet.Here is a scope trace of the output and clock with absurdly large bypass caps.

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 04:50:04 am
content: Still trying to figure out why the 74LS76 circuit doesn't work as expected, I was told to try some parts from other manufacturers (the part I have in hand is a TI SN74LS76N) but I don't have, nor can I seem to get, this chip from other manufacturers (at least, not in hobbyist quantities at hobbyist prices). Instead, I went back to the chip I started with before my order of 74LS76s arrived: a 74LS112 dual JK flip flop, negative edge triggered. I originally used it because it sounded like an ideal replacement for the LS76. It's not a drop-in replacement, but it wasn't hard to modify the circuit for the different pin layout.Since I had already tried this chip and it had not worked it was no big surprise that it didn't work this time either, but I figured that I would debug the circuit by paring it down bit-by-bit. I had done some manual testing of the LS76 and had a better idea of how the JKFFs should operate outside of the feedback arrangement used in the target circuit, so the first thing I tried was removing the feedback links from FF2's outputs to FF1's inputs, tying the inputs high and turning the first flip flop into a toggle on the input clock that then outputs a half speed clock on its outputs.That worked, and I was seeing nice, clean signals from the outputs on both flip flops. On a whim I decided to reconnect the feedback, but to reverse the feedback connections (instead of J1:~Q2 and K1:Q2 I connected J1:Q2 and K1:~Q2) and the circuit started outputting what looked suspiciously like the clock/2 staggered signals I was looking for!Attached is the 74LS112 circuit schematic and wiring diagram, an image of the circuit itself (this chip, from Mitsubishi, has nice, clear printing on the case), as well as the scope traces for Q, E-cpu, and E-sys. If I can't figure out ow to fix the 74LS76 circuit I think that I can use the 74LS112 instead (I see now that I probably can't use the MC6875 to generate the clock signals for the 68B09E because the two phases produced by the MC6875 don't overlap as the 68B09E requires).

author: rstofer
author_rank: Super Contributor
timestamp: October 21, 2020, 06:27:42 am
content: If you have a 74LS00 Quad NAND Gate, you can replace the oscillator with a debounced pushbutton. Then you can walk the flops through the 4 states one step at a time.Document page 10..11 "Hardware Debouncers"https://my.eng.utah.edu/~cs5780/debouncing.pdfThose open triangle symbols are the Vcc rail for the pull-up resistors.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 21, 2020, 01:00:19 pm
content: I didn't spend a lot of time with it but your schematic does not appear to match your wiring diagram. The circuit you show wired up has the inversion and I suspect it would provide the 90 degree shift /4.I will typically use SMT with my experiments. They are easier to work with, take up less space and typically will have lower parasitics. As you start working at higher speeds, there's no getting around it. Even that old wire-wrap board has some surface mounted parts. The Pericom clock driver and the two FPGAs that hold the design are all surface mount. I used some Aries adapters to get to the PGA which I could then wire wrap to. For the time, running the FPGAs at 100Mhz would have been common but not on a wire wrap board (for good reason). Like I wrote, I do like to dabble in the art.Again, for what you are doing, I think your fine with TH and the breadboard. Many years ago I was on a project where we had used some 3M breadboards, each with 4 boards. I think we had 8 if these large boards fully populated. The system had multiple CPUs on it along with some analog. We managed to get it all working before we switched to surface mount and PCBs. Things ran at a snails pace back then.Those old gates made for good filters. Today's parts are crazy fast. 3 years ago I picked up a cheap Digilent eval board with a small Xilinx part on it. Link shows some of my experiments with it where it looks I clocked it at 700MHz. Just looking 15 years back to what we have today is amazing. Back then, I was running some very expensive parts at over 400MHz.https://www.eevblog.com/forum/microcontrollers/typical-speed-of-fpgas/msg1279898/#msg1279898

author: Martian Tech
author_rank: Regular Contributor
timestamp: October 21, 2020, 04:22:40 pm
content: Quote from: jdutky on October 21, 2020, 02:38:58 amI think you mean 6845 - the 6850 is a serial controller. You can find 6845s here:https://www.electronicsurplus.com/search/6845They do also have 6850s available, should you need those. I've had good luck with parts from this vendor.Another option on the video is to use the techniques from Don Lancaster's Cheap Video Cookbook:https://www.tinaja.com/ebooks/cvcb1.pdfbut you lose some of your address space with that...

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 04:31:52 pm
content: Quote from: rstofer on October 21, 2020, 06:27:42 amYes, I did that (but I used a 74LS14 instead of the 74LS00), and saw that the Q and ~Q outputs changed on different parts of the clock signal (Q on the falling edge and ~Q on the rising edge), which is not what I expected.I don't think that's the issue with my circuit, but I'm not willing to rule anything out at this moment.

author: jdutky
author_rank: Regular Contributor
timestamp: October 21, 2020, 05:28:58 pm
content: Quote from: joeqsmith on October 21, 2020, 01:00:19 pmDamn it, you are right. That means that I'm just reproducing the circuit from the datasheet, only upside down (or backwards?).I've been looking at doing this with two D FFs (74LS74), as that looks easier to understand (to me), and adding a 74LS14 afterwards to clean up the outputs.The problem with just building the circuits given in a datasheet is that you (that is "I') don't actually understand how the circuit works when you are most likely to have made a mistake implementing it and need to be able to debug it. I feel like I'm slowly understanding how this circuit is supposed to work.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 21, 2020, 06:48:20 pm
content: Quote from: jdutky on October 21, 2020, 05:28:58 pmWhile the simulation may help you along with a good book the most important thing is not to get discouraged and just keep plugging away at it.Consider splitting the circuit in half using a single DFF. If you tie Q to D and say it all resets to 0 so Q starts out 0. So you clock a 0 into D and Q goes to 0 which feeds back to D. We clock in another 0. On and on it goes, doing nothing.If we instead use Q' as the feedback to D, Q' resets to a 1. The first cycle, we clock a 1 into D which will cause Q' to go to a 0. The next cycle, we clock a 0 into D and Q' returns to a 1. So the circuit toggles or changes state every clock, basically dividing the clock by 2.Your 6809 need 4 states to get that 90deg. So you need to divide by 2 again. You could take the Q from that first D and use it to clock a second D that uses the same Q' feedback. Two dividers in series is a divide by 4. Maybe then use one clock to drive both D FFs and use one feedback path like I show from the second FF's Q' to the first FF's D. Get through that and ask yourself, why would you use one method over the other....

author: RJSV
author_rank: Super Contributor
timestamp: October 21, 2020, 08:50:27 pm
content: rstofer mentioned that Ben Eater has posted some great stuff, for signal level. I especially interested in the state machine / micro-processor responsible for control.

author: rstofer
author_rank: Super Contributor
timestamp: October 21, 2020, 09:48:01 pm
content: Quote from: RJHayward on October 21, 2020, 08:50:27 pmState machines are everything! Ben Ester is doing a form of microcode in Video 1. I didn't watch the rest of the series.https://eater.net/8bit/controlMicrocode is an organized way of implementing a state machine. Each microcode state makes decisions on the next state as well as outputting control signals that will be in effect when the next clock comes along. Things like "Load Accumulator" are output from a bit in the microcode and enable the accumulator flops to get loaded from the bus on the next clock.Microcoding was introduced on the IBM 360 and the 8" floppy was invented by IBM to boot load the microcode. This approach allowed sophisticated users to alter the microcode to create different instructions. Not that IBM approved of this practice.The other way to build the control is with some form of Hardware Description Language (HDL) for an FPGA or ASIC. The HDL will read like computer code and be relatively clear in what happens at each state. Microcode is a lot more difficult to decipher unless the author documented each step. Imagine a microcode word of 100 bits wide (or more). It is broken up into fields and each field is assigned a default value for the states where it isn't relevant but, in the end, you, as the programmer, have to manipulate all 100 bits times as many words as are required for the entire processor. There is a tool known as a 'meta assembler' that is used to create the bit pattern from a source 'language'. Cool stuff!If you really want to know this stuff there are two approaches: First, follow along with Ben Eater's approach and discrete chips or get with the FPGA program right out of the gate. Trust me, changing a line of code is a lot easier than rewiring a breadboard.Curl up with this document (LC3 Appendix C) and see how a machine is designed. At least one approach. There is a hardware diagram, a state machine diagram and a list of signals to create. These signals control the various pieces of hardware. On the last page, there is a form for creating the microcode as this machine, as given, is microcoded. Mine is written in VHDL. Just because I like microcode, I may eventually recreate it. It would be a much smaller project because all of the decision making is done by the microcode creator. It would be a fun project!http://people.cs.georgetown.edu/~squier/Teaching/HardwareFundamentals/LC3-trunk/docs/LC3-uArch-PPappendC.pdf

author: tggzzz
author_rank: Super Contributor
timestamp: October 21, 2020, 10:06:59 pm
content: Microcode was invented in 1951.Alsohava a look ath the Research Machines Orion 1,which used the 2900 series and where the microcode was under user control.

author: jdutky
author_rank: Regular Contributor
timestamp: October 22, 2020, 01:18:39 am
content: Quote from: joeqsmith on October 21, 2020, 06:48:20 pmThis is exactly what I was thinking, and that you could tap off the Q or ~Q of different flip flops to get wave forms with the right phase and polarity. I realize that this is what the circuit given in the datasheet is doing, but it just seems clearer to have one flip flop per phase. It's certainly cheaper to do it all in one DIP, but as I have said before, expense (within reason) is not a driving concern.My paper simulation built a clock circuit with 4 DFFs in series, all clocked by the same input, with the ~Q of one FF fed to the D of the next, then wrapped from the last DFF back to the first. I envision this as a bucket line passing the rising edge down the line on each pulse (falling edges, so div by 2). At each DFF you can tap off Q or ~Q to get a clock signal at a particular phase. Then it became obvious that I only really needed two FFs to do the whole job, one for a 90 degree div by 2 clock, and the other for a 180 degree div by 2 clock with two polarities.I can fit this easily into a 74x74, but if I did it in a 74LS175 (quad D FF) then the clock signal going to each FF is internal to the package, which might reduce some of my pain points on the bread board build. I just happen to have a couple of 74LS175 lying around.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 22, 2020, 01:36:20 am
content: Quote from: jdutky on October 22, 2020, 01:18:39 amFor what you want to do, I think the two DFF in a single DIP is all you need, just like I show in those previous circuits. If you can get it working with the parts you have on hand, all the better.

author: jdutky
author_rank: Regular Contributor
timestamp: October 25, 2020, 08:12:19 pm
content: I took a few days off, read a bunch of stuff, redrew the clock generator circuit from yet another version of the datasheet (the Hitachi datasheet for the HD6809E), and rebuilt the circuit on a different breadboard. Well, either my old circuit was flawed, or the old breadboard was faulty (or both. It's entirely possible that both are true), but the new circuit on the new breadboard works perfectly!I went directly from there to hooking up the 68B09E, hard-wiring a NOP (hex 12) on the data bus, wiring some LEDs to the upper address lines, and connecting a nicely debounced push-button to the RESET pin, I have managed to get the CPU to run its first program! (as evidenced by the uppermost three address line visibly flashing)I'm so excited that it's just silly. Thanks to everyone (especially joeqsmith) for your advice and encouragement. This is such a great community, and I'm having so much fun.attached are my notes with the redrawn schematic and circuit plan, the full circuit (with inverter and CPU), and the scope trace of the improved clock output (I think that's the Ecpuoutput, but it might be Q). Next stop, hooking up RAM, ROM, and a peripheral interface adapter (or two) for some switches and lights.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 25, 2020, 09:22:25 pm
content: Perseverance seems likes becoming more rare. Good job sticking with it. Congratulations getting something running. Time to add some ROM and RAM...

author: jdutky
author_rank: Regular Contributor
timestamp: October 25, 2020, 11:56:23 pm
content: Quote from: joeqsmith on October 25, 2020, 09:22:25 pmThat's the plan (I wanted to use a 68B50 ACIA, but the 85C30 is so much more capable, and easier to obtain).Also, time for flippenswitches and blinkenlights.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 26, 2020, 01:40:13 am
content: I had a friend with a Radio Shack color computer. He bought the modem for it. From what I remember, they did not use a UART but rather bit banged the port in tight loop. Considering that most modems were 300 BAUD back then, they decided to save some cost.

author: jdutky
author_rank: Regular Contributor
timestamp: October 26, 2020, 03:06:33 am
content: Quote from: joeqsmith on October 26, 2020, 01:40:13 amA tight look sounds absurdly wasteful, but I recall other, far more expensive and resource rich systems of the same period doing similar things. It boggles the mind. You've got several thousand instructions per bit at 300 baud, would it have broken the bank to have a 600 Hz interrupt and sample the serial line in the interrupt handler?I'm reading through The Cheap Video Cookbook getting ideas for how to drive a video display, and it also seems absurdly wasteful. I've also got a PDF of Son of Cheap Video, which seems much less wasteful. Still, I have the kinds of resources that people only dreamt of in the early 80s: I'll probably just throw an entire 8KB SRAM at any video system I build, and have the CPU copy data in during the vertical blanking interval.I really enjoyed Ben Eater's World's Worst Video Card lesson

author: tggzzz
author_rank: Super Contributor
timestamp: October 26, 2020, 08:43:13 am
content: Quote from: jdutky on October 25, 2020, 11:56:23 pmWhen mixing processor families, be very careful that setup and hold times are observed. That can be non-trivial given the different "styles" of interface control signal.I discovered such a problem in somebody else's design, but since that was <1985, I've forgotten the details.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 26, 2020, 12:26:51 pm
content: Quote from: jdutky on October 26, 2020, 03:06:33 amI used to have all the technical manuals for the Radio Shack color computer and they had a warning about using PEEK and POKE in certain areas. It seems they did not fully decode the bus and you could end up with contention, which they claimed could damage the computer.

author: Martian Tech
author_rank: Regular Contributor
timestamp: October 26, 2020, 11:19:57 pm
content: Quote from: tggzzz on October 26, 2020, 08:43:13 amTrue dat. I interfaces an 8253 to a 6809 just because I had an old 8253 in a ceramic package and thought it would be cool to use it instead of trying to track down a 6840. Ended up having to add a 74LS31 to get it to work...

author: joeqsmith
author_rank: Super Contributor
timestamp: October 27, 2020, 02:20:11 am
content: Not sure if this would be of any interest to the OP.https://jbevren.wordpress.com/2018/09/22/designing-a-6809-sbc/

author: jdutky
author_rank: Regular Contributor
timestamp: October 30, 2020, 04:00:41 am
content: Now that I have a working clock generator I think I'm ready to put together a simple SBC with the 6809. I've got a handful of parts that I expect to put together as a basic computer:The 68B09E CPUOne 6264 8Kx8 SRAMOne 28C64 8Kx8 EEPROMOne 68B21 PIAOne 74LS76 dual JK FF (clock gen)One 74LS04 hex inverter (clock gen+misc)One 74LS138 3-8 DMUX (chip selection)One 8.0MHz full-can crystal oscillatorseveral switches and LEDs as basic UIassorted capacitors, resistors, and diodes for bypass, current limit, and debouncesomething to give me +5V and Ground on the boardone 30mm x 50mm prototype boardI'm looking over the pinouts for the SRAM, EEPROM, CPU, and PIA and I am a bit mystified by something: I had expected to wire the clock up to every major chip on the board, especially the memory chips, but neither the SRAM nor the EEPROM appear to have a clock input. Only the CPU and PIA have clearly labeled clock pins (Q and E on the CPU, and E on the PIA). How does this work? Do the memory chips just not care about the system clock?I'm guessing that I will wire the R/W line from the ~OE and ~WE lines of the SRAM, with one of them getting the R/W signal inverted (it's a good thing I have that 74LS04 in the mix), then wire one of the outputs from the DMUX to one of the CS lines (and the other can be tied high or low as appropriate) and that will be enough to make the chip active when the CPU does reads and writes in it's assigned address range and make it sample the address and data busses at the right times. This, of course, is just a guess based on what I think I've understood from the datasheets and various things on the interwebs.Not that I don't value the thrill of learning by trial and error, but am I understanding how this will work, or am I about to experience a pitfall for novices?

author: Electro Fan
author_rank: Super Contributor
timestamp: October 30, 2020, 05:27:22 am
content: It is fascinating to see a guy know about half of what it takes to build a computer a semiconductor, logic gate, and pin at a time - which is very impressive, while watching him figure out the other half as he goes - which is equally or more impressive. jdutky you are an excellent role model.

author: jdutky
author_rank: Regular Contributor
timestamp: October 30, 2020, 05:41:19 am
content: Quote from: Electro Fan on October 30, 2020, 05:27:22 amI was going to be an EE, way back in college, but then I bailed for CS, so it's almost literally true that know exactly half of what I need to know for this: everything up to the end of sophomore year, in fact.

author: Electro Fan
author_rank: Super Contributor
timestamp: October 30, 2020, 10:44:21 am
content: Quote from: jdutky on October 30, 2020, 05:41:19 amIt might have been your sophomore year but I have a hunch that not everyone was paying attention and assimilating the material as well as you. You really are inspirational in your ability to synthesize the glue logic of CS on top of EE.

author: jdutky
author_rank: Regular Contributor
timestamp: October 30, 2020, 12:02:07 pm
content: Quote from: Electro Fan on October 30, 2020, 10:44:21 amOh, I assure you that I was quite the bobblehead in my college years, though I was doing well enough in my physics and engineering classes to score in the top 10-15% (so, yes, there were people who were paying much less attention than I was, but I was never #1 in the class. Someone once said that if you're the smartest person in the room then you're in the wrong room, and I was never in the wrong room). In the intervening decades, however, I have made some progress in both determination and perspicacity. The pandemic, however, has given me copious extra time to pursue interests outside of my professional career, and electronics was always something that fascinated me, so it's easy to concentrate on.When I was in college, still thinking I was going to be an engineer, I took a Fortran programming class. In the class with me was an older engineer who was taking the class for professional development, and he had the rockiest start to the semester that I have ever seen. It turns out that it took him almost a month to figure out that each instruction in the program happened in strict sequential order, rather than all-at-once (as in an electrical circuit). The way his high degree of technical training utterly betrayed him in a relatively elementary course made a huge impression on me, not as a source of mirth or derision, but as a cautionary tale to never let what you know get in the way of what what you want to know.