Prolbeme mit U(S)ART PC-Mote Kommunikation

Gast #141838
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
Angehängte Dateien:
Gast
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
Gast
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.