Hallo, ich suche eine Möglichkeit, Mikrocontrollerports auf ihre Funktion zu testen. Also Eingang/Ausgang mit möglichst allen Konfigurationen. Die meisten Controllerports haben ja heutzutage mindestens folgende Funktionen: - Eingang ohne internen Pull-Widerstand (echtes TriState) - Eingang mit internem Pull-Widerstand - Ausgang mit Push-Pull-Stufe (echtes Low/High) - Ausgang mit Open-Drain-Stufe (echtes Low/Pull-Up-Widerstand für High), kann ggf. auch als Eingang genutzt werden (wenn man aufpasst) Was ich bisher gefunden habe: 1) Selbsttest: Nichts am Port angeschlossen, die verschiedenen Ausgangskonfigurationen geben jeweils ein Low/High aus, und der Pegel am Port wird eingelesen und verglichen (man darf dann halt nicht das Ausgangslatch lesen, sondern muss wirklich das Eingangsregister lesen). Diese Variante ist am einfachsten, aber ich zweifle daran, ob das wirklich Aussagekräftig ist. 2) LED + Taster an jeweils einem Portpin: Hier im Forum gibt es bereits einige Vorschläge dazu. Man muss ein bisschen rechnen, was die Widerstände und Spannungspegel etc. angeht, aber recht einfach aufzubauen. 3) Aufteilung des Ports in 2x 4-Bit Eingang/Ausgang, was am Eingang anliegt, wird am Ausgang ausgegeben (z.B. Taster & LED). Man muss zweimal testen, da die Funktion getauscht werden muss. Wenn man auch die Konfigurationen (z.B. Push-Pull/Open-Drain) testen will, wird die Hardware ggf. etwas aufwendiger. 4) LED-Matrix mit Charlieplexing: Hier werden zumindest Ausgang Low/High sowie TriState verwendet, aber eingelesen wird nichts. Relativ einfach aufzubauen, z.B. zwei 4-Bit Matrizen halte ich noch für überschaubar. 5) Verwendung der Ports als Datenbus, z.B. ein Display oder RAM mit parallelem Datenbus anschließen. Hier wäre alles dabei, Low/High mit Push-Pull und Open-Drain sowie Eingang (ggf. mit externem Pull-Up). Braucht dann mehr als 8-Bit, aber ist ebenfalls relativ einfach aufzubauen und beinhaltet alle Konfigurationen bzw. sollte mit nahezu allen Konfigurationen funktionieren. Ich tendiere momentan zu #2, weil ich wissen möchte, wie zuverlässig das ganze ist bzw. wie sich die LED verhält wenn man den Taster dauerhaft drückt, aber vielleicht kennt jemand weitere Möglichkeiten. Ralf
Vielleicht macht Dir Tasten drücken und LEDs anschauen Spass, aber irgendwann wird es langweilig. Falls es also mehrere µCs sind, wirst Du sicher einen automatisierten Test machen wollen. Oder habe ich Deine Frage falsch verstanden? Ein "Selbsttest" klingt erstmal nach der einfachsten Lösung. Ich will meine China-Billig-µCs auch testen und hatte dabei gedacht, ich hänge einfach an jeden Ausgang einen kleinen Kondensator oder einen Widerstand und einen Kondensator in Reihe. Dann kann man auch die internen Pull-Ups prüfen, indem der µC die Zeit bis zum Pegel-Wechsel misst, nachdem er die Richtung von Out auf In umgeschaltet hat. Wäre das für Deinen Fall OK? Mit einem oder mehreren 74HC4067 oder so, kann man das ganze natürlich noch verfeinern.
:
Bearbeitet durch User
Hmmm... Mikrocontroller sind um Größenordnungen zuverlässiger als selbst gelötete Platinen. Und wenn was nicht stimmt, dann doch eher Ausfälle unter extremen Temperaturen und unsauberer Spannungsversorgung. Bisher war bei mir noch nie der MC defekt. War jedes mal EMV, abgerissene Kabel oder versteckte Fehler im Programm.
@Torsten: > Vielleicht macht Dir Tasten drücken und LEDs anschauen Spass, aber > irgendwann wird es langweilig. Falls es also mehrere µCs sind, wirst Du > sicher einen automatisierten Test machen wollen. Oder habe ich Deine > Frage falsch verstanden? Du hast recht, Variante #2 bedingt natürlich manuellen Eingriff, was man beispielsweise bei #5 nicht hat, da auch automatisch zurückgelesen werden kann. Insofern ist automatisiert natürlich geschickter, selbst wenn es nicht um Serienfertigung geht. > Ich will meine China-Billig-µCs auch testen und hatte dabei gedacht, ich > hänge einfach an jeden Ausgang einen kleinen Kondensator oder einen > Widerstand und einen Kondensator in Reihe. Mit der ersten Variante kannst du aber nur Ausgang = Low prüfen, ein High wäre ggf. ungesund für den Treiber, oder nicht? Der externe Widerstand muss schon sein, denke ich. > Dann kann man auch die internen Pull-Ups prüfen, indem der µC die Zeit > bis zum Pegel-Wechsel misst, nachdem er die Richtung von Out auf In > umgeschaltet hat. > Wäre das für Deinen Fall OK? Hmmm... Stimmt, und man kann beides testen, ohne und mit internem Pull-Up. Hört sich nicht schlecht an, ich grübel da mal drüber. > Mit einem oder mehreren 74HC4067 oder so, kann man das ganze natürlich > noch verfeinern. Du meinst um verschiedene RC-Kombinationen zu testen? @Noch einer: > Hmmm... Mikrocontroller sind um Größenordnungen zuverlässiger als selbst > gelötete Platinen. Und wenn was nicht stimmt, dann doch eher Ausfälle > unter extremen Temperaturen und unsauberer Spannungsversorgung. > Bisher war bei mir noch nie der MC defekt. War jedes mal EMV, > abgerissene Kabel oder versteckte Fehler im Programm. Das stimmt. Im ersten Schritt möchte ich damit tatsächlich auch die Programmfunktion testen können, weil der Port bzw. einzelne Portpins je nach Anwendungsfall Ein- oder Ausgang oder auch mal beides sein können. Ralf
Ralf schrieb: > Im ersten Schritt möchte ich damit tatsächlich auch die > Programmfunktion testen können OK, das ist dann aber was anderes. PS: ebay 171775947969 oder so ist teuer, spart aber vllt. Arbeit. Ralf schrieb: >> Mit einem oder mehreren 74HC4067 oder so, kann man das ganze natürlich >> noch verfeinern. > Du meinst um verschiedene RC-Kombinationen zu testen? Nein, eher um Signale auf bestimmte einzelne Ports zu geben oder von verschiedenen Ports auszulesen. Über "ungesund"^^ würde ich mir bei z.B. 10nF keine Gedanken machen.
:
Bearbeitet durch User
@Torsten: >> Im ersten Schritt möchte ich damit tatsächlich auch die >> Programmfunktion testen können >OK, das ist dann aber was anderes. Warum? Das würde doch mit dem RC-Aufbau genauso gehen. >>> Mit einem oder mehreren 74HC4067 oder so, kann man das ganze natürlich >>> noch verfeinern. >> Du meinst um verschiedene RC-Kombinationen zu testen? > Nein, eher um Signale auf bestimmte einzelne Ports zu geben oder von > verschiedenen Ports auszulesen. Aso. Ich glaub das ließe sich hier nicht sinnvoll anwenden (oder ich hab nicht genau genug drüber nachgedacht). > Über "ungesund"^^ würde ich mir bei z.B. 10nF keine Gedanken machen. Njaaaa, "Kondensator ist ungeladen ein Kurzschluss" und Push-Pull-Stufe macht mich immer nervös :) Ich kenn die Berechnungsgrundlagen nicht, um einschätzen zu können, ab wann es wirklich ungesund ist ohne zusätzlichem Widerstand, daher sehe ich es immer als ungesund an =) Ralf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.