Forum: Mikrocontroller und Digitale Elektronik Wie kann ich am Besten einen Fehler finden?


von Stefanie (Gast)


Lesenswert?

Hallo,
wie kann ich hardwaremäßig am Besten einen Fehler finden?

Ich habe einen ATmega128 und einen NIC und ein JTAG ICE mk2.
Der NIC reagiert auf mein funktionsfähiges Programm nicht so wie er soll 
:-(

Bringt es was wenn ich mit Hilfe des AVRStudio an jeder Leitung zum NIC 
eine "1" rausschicken? Wenn ja, soll ich gleichzeitig mit dem Messgerät 
auf dem Board messen ob an dem Ausgang am NIC wirklich eine 1 ist, oder 
kann ich so was kaputt machen?

Wie geht man da am Besten vor?

Wenn ich nur mit dem Meßgerät messe, weiß ich ja nicht, ob es nicht am 
ATmega liegen könnte.

Gruß, Stefanie

von rene (Gast)


Lesenswert?

Stefanie,
die uebliche Vorgehensweise ist nachzumessen was den sein soll. Ein 
Oszilloskop sollte man schon haben, sonst wirds etwas schwierig.

Dann sollte man sich einen Pin am Controller freilassen, den man zum 
Fehlerfinden benuetzt. Dort kann man eine LED oder so anschliessen 
und/oder Pulse rauslassen. Die Pulse auf das Oszilloskop.
Wenn unklar ist ob ein code ausgefuehrt wird, kann man vor dem code die 
LED anzuenden, und nachher wieder abloeschen, oder anzuenden und stehen 
bleiben. Wenn man nun diesen LED trick vom Anfang des Programmes her 
einfuehrt kann man testen, was vom code denn ausgefuehrt wird und was 
nicht.
Am Besten man entwickelt das Programm mit gleichzeitiger Fehlersuche.
Es ist durchaus nicht ungewoehnlich, dass man einige Zeit am 
Fehlersuchen ist. Sprich Stunden, Tage, je nach komplexitaet.
Ab einer gewissen komplexitaet lohnt es sich auch, den Controller ueber 
die Serielle Schnittstelle mit dem PC kommunizieren zu lassen, dann kann 
man Werte zur Laufzeit auslesen, allenfalls veraendern.

rene

von Peter D. (peda)


Lesenswert?

Was ist der NIC ?

http://de.wikipedia.org/wiki/Network_Information_Center


Um etwas dazu sagen, sollte man schon genauer beschreiben, worum es 
überhaupt geht. Mit ner "1" wird man wohl nicht weit kommen.

Für Hardwareprobleme aller Art ist mindestens der Schaltplan ein Muß.

Woher willst Du überhaupt wissen, daß das Programm funktionsfähig sei ?

Das weiß man doch immer erst hinterher, wenn alles funktioniert.



Peter

von Jörn P. (jonnyp)


Lesenswert?

NIC? Network interface adapter? Meine Glaskugel ist zur Reparatur, die 
hat von den vielen undefinierten Abkürzungen einen Sprung bekommen.

von Stefanie (Gast)


Lesenswert?

Sorry, wenn ich mich so undeutlich ausgedrückt habe.
Ich habe einen RTL8019 als NIC.
Auf genau der gleichen Hardware lief schon mein Programm -> Code ist 
funktionsfähig

Dann wurde der NIC nicht mehr erkannt und nun habe ich ihn ausgetauscht. 
Leider funktioniert die Hardware jetzt trotzdem nicht und ich wollte 
wissen, wie ich am besten Testen kann, woran es liegt.

von Jörn P. (jonnyp)


Lesenswert?

Knacks.

von Peter D. (peda)


Lesenswert?

Meistens haben ja Ethernet-Controller irgendwelche Adressen, die sich 
wie RAM verhalten.

Also schreibe Dir ein Testprogramm, welches dort verschiedene Daten 
einschreibt und wieder zurück liest, z.B. über die UART.

Damit kannst Du dann sehen, ob der Chip überhaupt angesprochen wird bzw. 
kannst diese Zugriffe mit nem Oszi verfolgen.


Das ist ja ein riesen SMD-Flatschen, da würde ich erstmal mit ner Lupe 
und nen Durchgansprüfer alle Lötstellen prüfen.


Peter

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.