Wie kann ich am Besten einen Fehler finden?

Gast #472218
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
Gast #472298
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
#472318
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
Gast #472410
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.
#472888
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.