mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega32 UART Interrupt probleme


Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich habe zweit controller über den UART miteinander verbunden was
teilweise Funktioniert aber mein ATmega32 Stürtzt ab.

Der Sender AT90S2313 PIN Txd ist driekt mit dem ATmega32 PIN RxD über
eine Drahtbrücke verbunden .... geht das so direkt oder muß ich da noch
andere Bauteile zwischen schalten???

Beide Controller hängen an der gleichen Spannungsquelle.

Wenn die Verdrahtung richtig ist kannst ja nur am Programm liegen.

Zur Uart kommunikation habe ich ein Beispiel von Roboternetz.de
genommen und es auch mit dem Beispiel von ATMEL selber probiert.
Doch nach wenigen gesendeten bytes verhält sich mein Controller wie in
einem Artikel auf roboternetz.de beschrieben wenn ein Interrupt
ausgelöst ist aber keine ISR vorhanden ist er fängt bei NULL an.
Trotz default Interrupt routine passiert das.

Die Daten die Ankommen sind richtig.

Die Fusebits sethen auf externen Quarz der bei 16Mhz liegt.

Ich habe einen vermutet das der Stack überläuft aber nachdem ich da
Programm auf ein minimum reduziert habe ist es immer noch da mein
Problem vielleicht habe ich ja was ganz einfaches übersehen.

Es wäre nett wenn mir jemand helfen kann

Gruß
Dirk ;o)

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei solchen Direktverbindungen sollte man grundsätzlich
Strombegrenzungswiderstände dazwischenschalten, damit bei einer
Fehlkonfiguration (kann immer mal passieren, z.B. versehentlich beide
Pins als Ausgang geschaltet und gegeneinander arbeiten lassen) nicht
gleich die Hardware in die Fritten geht.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit welcher Frequenz läuft eigentlich der 2313? Möglicherweise eine
Nicht-Übereinstimmung bei den Baudraten?

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dein Programm in Verdacht hast, müsstest du
es mal herzeigen.

Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der At90S2313 läuft mit 4 Mhz beide controller mit 9600 N 1

Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe das Programm gerade nicht dabei (bin im Büro)

Die UART kommunikation ist von Roboternetz.de RN-Wissen zu finden unter
Hautthema Praxis unter U wie UART mit avr-gcc davon die variante mit dem
Interrupt.

Wenn ich mir die Software vom Ct-Bot anschaue ist mein Programm eher
ein Progrämchen.

Habe im .lss oder wars die .map nachgesehen und komme auf 257Byte für
Variablen vielleicht das gleiche noch mal für Text. der RAM sollte mehr
als reichen vor allem da das Programm vorher in einem AT90S8515 ohne
UART lief.

Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@johnny.m  Wie sieht die Schaltung den aus so ein 10K Ohm wiederstand
gegen Masse oder +5V oder in reihe.

Hast Du irgendwo ein Beispiel was ich mir anschauen kann ich finde
immer nur UART verbindungen über RS232 und die einzige Schaltung wo
zweit controller miteinander verbunden waren finde ich nicht mehr.

Die Drahtbrücke soll übrigens gegen IR Sender beim AT90S2313 und
Empfänger TSOp17xx beim ATmega32 ausgetauscht werden habe dies nur noch
nicht gemacht weil ich die Resets erst klären wollte bevor ich wieder
den Lötkolben schwinge.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach nen Widerstand zwischen die beiden Pins (also in Reihe, wenn Du
es so willst), damit kein Strom fließen kann, der größer ist als das
was die Portpins dürfen (z.B. so 470Ohm -> max. 10mA). Dann biste auf
der sicheren Seite.

Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@johnny.m Danke für deine Hilfe werde es heute Abend mal ausprobieren
oder gleich die IR schnittstelle einbauen.

Autor: Dirk Nolte (didey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Moin
hat gestern nicht mehr geklappt mit dem Programm.
Habe es aber geschaft es im AVR-Studio Simulator laufen zu lassen und
konnte den Stack beobachten der sich nur um wenige Bytes verschiebt
auch läuft es hier stabil.

Habe einpaar Text Strings im Programm auskommentiert und siehe da es
läuft stabiler im Kontroller das heißt er stürtzt jetzt nur noch alle
minte mal ab.

Nur komisch das der Speicher im Simulator so leer aussieht auch mit den
Text Strings.

Wie mach ich das hier mit dem Programm vielleicht kann ja mal jemand
reinschauen. Soll ich jede Datei einzelt hochladen oder als zip???

Gruß
Dirk ;o)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manche machen zwei/mehrere Posts, andere packen die Dateien ins zip...

Autor: Dirk Nolte (didey)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hier sind die Quellen währe schön wenn sich das mal jemand anschauen
kann und mir einen Tipp geben. Ob es an der Sofware liegt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.