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


von Erik Baier (Gast)


Angehängte Dateien:

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

von Jochen Pernsteiner (Gast)


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

von Jochen Pernsteiner (Gast)


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

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.