mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Prolbeme mit U(S)ART PC-Mote Kommunikation


Autor: Erik Baier (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit einem Freund gerade an einem kleinen Uni-Projekt. Unser
Teilprojekt besteht darin, die Kommunikation zwischen der Atmel-Motte
und dem PC über die serielle Schnittstelle herzustellen.
Wir versuchen nun seit 3 Wochen vergeblich die Motte zum Senden von
Zeichen zu bewegen damit wir diese auf dem PC empfangen können. Wir
sind eigentlich sogar ziemlich sicher, dass unser Programm im Anhang
auch funktioniert, nur leider empfangen wir auf dem PC rein gar nix.
Wir haben uns natürlich an sämtlichen Vorlagen, Beispielcodes und
Datasheets orentiert und schon etliche Fehler entdeckt und allerlei
Variationen ausprobiert, nur leider bisher ohne Erfolg.
Wir wären wirklich froh, wenn uns jemand einen heissen Tip geben könnte
- der Prof konnte uns bisher nicht wirklich weiterhelfen und neue
Tutorials finden wir auch keine mehr...

Unsere Hard- und Software:
Atmel 128 mit Programmer (STK500 nehmen wir an - sieht allerdings total
anders aus, als auf dem Bild auf der Atmel Homepage)
Um die Motte zu programmieren: UISP unter Linux Fedora Core 2 (das
funktioniert auch 100%-ig)
Um Kommunikation zu überprüfen:
WinXP: Hyper Terminal und nen Serialport Sniffer um zu überprüfen, ob
überhaupt was läuft.

Uns ist vorerst eigentlich total egal, ob das Ding im Atmel103 oder 128
Modus läuft und ob die Kommunikation per UART oder USART funktioniert,
hauptsache wir bekommen mal ein Lebenszeichen!!!

Übrigens: Welches Programm kann man benutzen um die Motte unter Windows
zu programmieren (AVRDude haben wir nicht zum laufen gebracht)? Oder
alternativ: welches Programm unter Linux entspricht dem HyperTerminal
in Windoof? Zur Zeit switchen wir immer zwischen den beiden OS hin und
her, was ziemlich nervig ist...

Würden uns über Hilfreiche Tipps riesig freuen, mitlerweile sind wir
ziemlich ratlos und demotiviert und die Zeit läuft...

Erik

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Eurem Quellcode wird der Registername UBRR0L (bei Euch: UBRRL)
als Adresswert 0x29 definiert, ihr greift aber über die OUT-Anweisung
darauf zu.

Damit beschreibt ihr dann aber das Register OCR1BH (= 0x29).

Entweder UBRRL auf 0x09 setzen oder per STS-Anweisung darauf
zugreifen.


Jochen

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag zu oben:

Die Registerdefinitionen von UCSRA, UCSRB und UDR sind genauso falsch.
Neu definieren oder per STS,LDS zugreifen.

Diese zwei Codezeilen schauen auch nicht unbedingt Vertrauen erweckend
aus:

  ldi r17, UCSRA
  sbrs r17, UDRE

Besser so:

  sbis UCSRA, UDRE

Dann aber unbedingt UCSRA auf 0x0b setzen.



Jochen

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.