Forum: Mikrocontroller und Digitale Elektronik Testen von Mikrocontrollerports


von Ralf (Gast)


Lesenswert?

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

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

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
von Noch einer (Gast)


Lesenswert?

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.

von Ralf (Gast)


Lesenswert?

@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

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

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
von Ralf (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.