Hi Tautech, nice to see you here, didn't think a dish washer would get much interest to be honest !
But trust me, I don't care what machine these board are used in ! All I see are a couple nice board and I am having a lot of fun trying to reverse engineering them and trouble-shooting them ! It is just as addictive as crack is for some people.... only it better for your health, gets the neurons working, instead of frying them ! LOL
Sorry...
So, non the lines are not terminated as far as I can see ! All there is, is a 19K resistor IN SERIES with the lines, right by the header. I assume they are there to limit damage to the board / IC inputs, in case of a massive noise surge from some motor or what not. I see that every where.. though usually they are lower values, like in the hundreds of ohms, not kilo ohms.
Anyway, as I said I think I am on to something, pretty sure I nailed it !
A couple days ago I actually burnt the midnight oil, and reverse engineered the entire front panel board, to the tiniest detail. It's all spread over several sheets worth of notes.. but it's all there. Maybe if I feel courageous, I might draw the schematic for it !
So I know at last, exactly how it all works. This sure made trouble-shooting easier than on the first day...
To describe it briefly :
the MCU has 16 I/O pins. It sends data line to the main board just like the main board does : no fuss, the output pin of the MCU goes straight to the cable header ! OK, they added a 100ohm resistor in series, but that's about it...
There are x3 8 bits shift registers, daisy chained, so a total of 24 outputs, that drive all the LEDs on the board : 5 "discrete" LEDs, a couple colour/RGB LED, which are wired in parallel, and then the pair of 3 digit LED displays.
The MCU refreshed theses registers every 4ms or so, and it takes about 0.35ms to clock all 24 bits/LEDs out.
The LED displays are organized this way : each display has its own register which drives its 7 segments and decimal point. Then there are 3 transistors, driven by dedicated individual I/O pins on the MCU. each transistor drives a "column" of digits : first tranny, switches the left -most digit of the upper and lower display, second tranny, switches the middle digits, third tranny the right-most digits of each display.
As for the push-buttons (which work fine, none are stuck), only 4 of them so there is no value in multiplexing them. They are just wired straight to the MCU, one I/O pin for each button.
Then there is the communication with the main board : a little analog circuitry. An LM 2903 dual comparator chip. One comparator processes the Data line, other one the Clock line of course. Circuitry is symmetrical, as you can see from the pictures below. So this makes trouble-shooting easier : I can compare the two and see if there are any differences.
Now, here are the good news : I think I foudn the problem, and it is NOT the MCU ! YEAH, the only potential show-stopper has been ruled out !!!
MCU is just fine : It constantly drives the serial clock and data of the LED shift registers, and also drives the 3 transistors needed for the 7 segment displays.
However, it does NOT send ANY data out to the main board ! But I think I know why... I think it might just be normal behavior from its part, because.. it is NOT receiving the clock from the main board ! Data, it receives fine, but no clock !
So that must be it... if the front panel board is unresponsive and displaying nothing but the 6 decimal points of the LED displays, must be its way of saying "hey, I am alive but I can't establish communication with the main board, help !!! "
So my hope is that if I can get the clock to get to the MCU, it will all by magic resurrect !
Well, that's the plan at this point any way !
So this brings us back to the analog part of the board, this dual comparator.
To begin with, what do the clock and data signal look like, at the headr pin, after they traveled 6 meters of cable ?? Believe it or not... they look perfect ! OK, my bench is much more comfy than a dish washer, that's for sure, but still...
The signals are still perfect : a full/healthy 5V in amplitude, fast edges, no ringing, undershoot nor overshoot... really they look just as nice as when they left the main board !
Then tehy go through a 10K resistor, in series with the lines. Then they travel a few centimeters on the PCB, and eventually arrive to the comparator circuitry.
I just drew the schematic for this circuitry, so you can better understand. Did that in a hurry with Digikeys on-line schematic capture tool, first time I use this kind of on-line tool.. quite practical and intuitive, did it in no time. Will not hesitate using this tool again, next time I need to draw/show a small bit of circuitry.
I drew only one comparator, since the circuitry is strictly identical for both the Clock and Data signals.
As you can see, the comparator has zero hysteresis, which I found odd but hey, what do I know right !
The threshold is set once and for good, at 50% of Vcc, by a simple voltage divider, made up of two 8,6K resistors.
There are some losses in the cable, so Vcc is 4,95V at the main board, 4,90 at the front panel board. So divide that by two, and the threshold on the inverting input of the comparator, measures at 2,45 Volts. So since the incident signal voltage levels are ground and 5V... that makes for a noise immunity of nearly 2.5V for both logic levels... right ? Quite comfortable isn't it... might explain partly why they managed to get this thing to work reliably. The (supposed.. but highly plausible...) error correction mechanism implemented in software at the protocol level, probably does the rest... and the two combined, make up for a reliable link between the two boards.
Anyway, so the problem is that the comparator responsible for shaping the Clock signal, outputs a solid... zero volt, flat line, not a glitch... as boring to look at on the scope, as can be !
Solder joints look nice, but still, I probed right at the IC pins to rule out any potention joint problem : the incoming signal does get to the non-inverting input, and the 2,45 V threshold voltage does also make it to the inverting input. As for the mandatory pull-up resistor at the ouput/open drain, no problems there either.
So, that comparator has everything it needs to work... but doesn't.
Think I found the problem... the amplitude of the incoming clock signal, measured at the comparator INPUT (not at the header), is lower than 5V.... MUCH lower.
When you look at the Data line, handled by the other comparator in that same chip, amplitude it down too, but still on the high side of things : 4,2 Volts.
However on the Clock line, it is down to.... 2,30 Volts !!! Yes, that's 0.15V LOWER than the threshold ! So of course the comparator never switched its output !
Now we need to figure out WHY is there such a massive voltage drop... so we can figure out how to fix it...
Could it be a defective comparator ? Maybe the non-inverting input is leaking badly and pulling the voltage down ?
Or maybe it is due to some fault in the external circuitry ?...
As you can see on the schematic, there is a feedback resistor in there...
When I probed the board all over the place, I measured all the resistor to figure out their value. I didn't read them by eye, because the packages are so tiny (about 2mm long by one mm wide.. what size is that, 0402 ?? Not too clued on SMD package size I must admit... )
At that time, I measured the feedback resistor as being 33K for the Data line, and 16K for the Clock line... though I couldn't figure out why it would need to be different than the other one.. but well, at the time I was not thinking, I was just busy doing brute force reverse engineering.. thinking was to come later....
So this resistor was my first suspect. I just looked at it again, and oh...
Although I don't have microscope, or anything other than my naked eyes (for now at least, hopefully that will chance fairly soon...) for reading the markings on this tiny resistors... I do however have a macro mode on my camera and I took a pic of this area ot the board. Now I can see !
that being said... looks like the 8.6K resistors of the voltage divider, as well as teh 1K pull-up, are labeled in a cryptic way, they read " 01B " and " 01C " respectively... eh ?!!
So even if had a micro-scope to see them, I still would have needed to measure them anyway ! LOL
Why did they not used teh standard 3 digit coding like they did for the 33K resistors ?! Does nay one know how to read this strange code, and the reason behind it ?? I am really very curious to know !
Anyway, as you can see for yourself, this 16K resistor... is supposed to be 33K just like its neighbor ! I prefer that, makes more sense ! So, is the resistor bad ? When I measured it, there was like a " capacitive " effect to it : at first the DMM would register like 11K, then it would slowly climb up to 16+ K or so, and stabilize there. Of course there is a small MLCC cap on the non-inverting input, as you can see... so could it be causing this issue ? On the Data line, the 33K resistor registers properly at 33K spot on, and does so instantly, there is zero capacitive effect : you put the probes on the resistor terminals, and instantly bang, the DMM reads 33K, no delay.
So if we have this capacitive effect on the Clock comparator, is it due to a defective comparator input ? to a defective input capacitor ? Or is the resistor itself causing this weird behavior ? That's what I need to figure out now !
I know for a fact that resistors CAN display such a behavior... at least the old. vintage carbon composition resistors.. but I don't know about modern SMD resistors.
Don't have much gear, but I do have at least, that shitty Atten 858D hot air station that's so popular... should be up to the job here I think, as the packages are so small, and it's only a two layer board wit low thermal mass.
I could just remove that resistor and measure it on its own to see it the symptom persist.. if not, then we know the problem comes from the comparator or capacitor, or.. yeah there is also a diode in there, forgot to mention it !
It's in reverse but who knows, maybe it's leaking badly and causing the significant voltage drop we are seeing...
So I still have a little bit of work to fix this issue, but at least now I know that there is hope for this board : the MCU is not dead !
OK, 2 AM here, time to get some sleep, and back to the bench tomorrow for the final act, can't wait !