Hallo zusammen,
nach ein paar Wochen Abstinenz im Computer-Basteln habe ich in der letzten Woche mir einen zweiten Junior 2 auf der aktuellen PCB-Version gebaut, diesmal mit kleinen SMD-Tastern. Nach dem ersten Einschalten leuchtete zwar wie erwartet das Display und zeigte plausible Hex-Werte an, jedoch nahm der Junior 2 keinerlei Tastenbefehle entgegen. 
Spoiler: Wie sich herausstellte, lag der Fehler im Platinendesign! Ich bin damit wohl der erste, bzw. der einzige, der SMD-Taster verwendet hat. Ansonsten wären hier bestimmt schon mehr Fehlermeldungen. Aber der Reihe nach...
Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.
Fehlersuche war also angesagt...
Die beiden Tasten, die zum 556 gehen, funktionierten. Die NMI-Taste ließ die CPU (ohne initialisierten NMI-Vektor) abstürzen und beendete das Multiplexen des Displays, die RST-Taste holte den Rechner wieder ins Leben zurück und das Display sah wieder normal aus. Weitere Tasten funktionierten jedoch zu keinem Zeitpunkt.
Als ersten Schritt habe ich erstmal alle ICs von meinem ersten Junior 2 eingesetzt, in der Hoffnung, dass ein Chip auf der neuen Platine vielleicht fehlerhaft sei. Mit den neuen Chips eingeschaltet: Gleiches Resultat, keine Tasteneingaben möglich...
Hmmm, erstmal rausbekommen, auf welcher Seite des RIOT denn der Fehler liegt. Ist es die Display- und Tastaturmatrix mit dem 74145 und dem ULN2003 oder arbeitet der CPU-Teil vielleicht nicht korrekt? Vielleicht arbeitet das RAM auch fehlerhaft und erzeugt dieses Fehlerbild...
Um einen Fehler im CPU-Teil auszuschließen, habe ich eine halbfertige Version meines XLink-Adapters angeschlossen und den Junior 2 wieder gestartet. Und mit dem Adapter war ein Beschreiben und Lesen des JC2-Speichers problemlos möglich. Ich konnte auch die gerade im Display angezeigte RAM-Adresse mit neuen Werten befüllen und das Ändern des RAM-Inhalts im Display verfolgen. Für mich war also klar: Der CPU-Teil ist in Ordnung und ich verlagerte die Suche auf die Port-Seite des RIOT in den Tastatur-Teil.
Ich habe daraufhin die Leitungen der Tastaturmatrix ohmsch durchgeklingelt und festgestellt, dass die Taste 5 dauerhaft Durchgang hat. Oha, sollte eine fehlerhafte SMD-Taste den Fehler verursachen? Also fix die Taste ausgelötet und nochmal im ausgebauten Zustand durchgemessen: Diesmal alles okay, Taste arbeitet einwandfrei. Nanu? Den Junior 2 ohne die Taste 5 eingeschaltet und getestet: Auch hier war jetzt alles okay soweit...
Aber wieso hatte die Taste dann im eingelöteten Zustand Durchgang? Ein Blick auf die Platine bringt Klarheit:
Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.
Dazu zuerst ein paar Hinweise zum Aufbau der SMD-Taster: Diese haben vier Anschlüsse, von denen jeweils zwei immer miteinander verbunden sind. Im Bild wären das jeweils die beiden Anschlüsse auf der rechten und linken Seite. Ein Tastendruck verbindet nun diese beiden Seiten miteinander.
Wenn man sich die Platine nun genau anschaut, dann geht die Leiterbahn von rechts oben kommend zwar auf den Anschluss links unten, aber auch der Anschluss rechts oben wird durchfahren und verbindet die Anschlüsse rechts oben mit links unten!
Wird jetzt ein Taster eingelötet, dann besteht folgende Verbindung: Linke Seite, Anschluss links unten, über die Leiterbahn auf den Anschluss rechts oben, von dort intern im Taster auf den Anschluss rechts unten. Damit sieht es dann für den Junior 2 so aus, als wenn die Taste dauernd gedrückt wäre...
Wieso geht die Leiterbahn überhaupt durch das Pad oben rechts? Wurden nicht alle Pads des Taster-Footprints mit Namen versehen? Wurde kein Design Rule Check gemacht, welcher die Abstände bemängelt hätte?
Wie kommt man nun am schnellsten raus aus der Misere?
Ich habe einfach den Anschluss oben rechts vom Taster abgeschnitten und den neuen Taster (ich bin beim Auslöten nicht zimperlich gewesen...) mit nur drei Anschlüssen befestigt.
Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.
Nicht schön, aber funktionell...
In einer überarbeiteten Version der Platine sollte mindestens bei dieser Leiterbahn auf ausreichend Abstand geachtet werden. Nein, bei jeder Leiterbahn sollte auf ausreichend Abstand geachtet werden. Aber dafür ist der DRC im Layout-Programm da, den man gerne mit etwas größeren Werten (so ab 0,4 mm aufwärts) versehen kann und darf...
Ansonsten sind diese Tasten eine ganz nette Alternative, wie ich finde.
Randnotiz: Im Hintergrund des ersten Bildes kann man auch die LED-Anzeigen sehen. Reichelt hat mir diesmal für den Typ 'SC 52-11 RT' zwei unterschiedliche Typen mit unterschiedlichen Helligkeiten geliefert. Normalerweise wird der Typ "SC52-11SRWA" geliefert, diesmal waren im Beutel aber ein paar "SC52-11SURKWA" (und ich habe es bei Einlöten nicht gemerkt). Die noch eingelötete SURKWA-Anzeige ist so dermaßen verdammt hell, ideal wenn man Filterscheiben verwenden will. Die kommt zwar hier auf dieser Platine wieder raus, aber ich glaube das wird mein neuer Vorzugstyp... 
Gruß
Thomas