PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Uart zwischen Arduino und Atmega8



Unregistriert
06.06.2016, 13:33
Hi,

der Aufbau ist folgendermaßen:
Arduino Nano (atmega328) und ein Atmega8
Masse verbunden, Rx auf Tx und Tx auf Rx
Usb nicht verbunden
Baud: 9600

Gibt es einen Grund das alles funktioniert also Arduino -> Atmega8, PC <-> Arduino und PC <-> Atmega8, aber Atmega8 -> Arduino geht nicht?
Die Rx Led auf dem Ardunio blink zwar auf aber es wird nichts empfangen.(PC mit usb zu UART wandler (5V Level))

Vielen Dank für die Hilfe

wkrug
07.06.2016, 05:27
Wie schaut die Taktversorgung aus? Quarz, interner Takt, oder was verwendest Du ? Der interne Takt kann manchmal das Problem sein!
Hast du schon mal RX und TX des Arduino geschliffen? Funktioniert das ?
Hast du schon mal RX und TX des ATMEGA 8 geschliffen? Funktioniert das ?
Passen auch die restlichen Einstellungen wie die Anzahl der Stoppbits und die Parity Einstellung ?

Du könntest ja auch mal auf die TX des ATMEGA 8 die RX des PC Interfaces und! die RX des ARDUINO legen - Kommen dann Daten ?

Unregistriert
07.06.2016, 12:52
Letztes habe ich bereits getan also tx vom atmega8 -> Rx am PC und Tx Pc auf Rx ardunino. Wenn ich am pc sage er soll einfach alles vom Rx auf Tx weiterleiten geht alles und die daten, die man am PC sehen kann sind natürlich dann auch richtig.

Ceos
07.06.2016, 12:58
Das hört sich für mich nach einer falschen StoppBit Konfiguration an, PC Schnittstellen sind nicht so kleinlich wenn man sagt "1 Stoppbit" aber dann mit 2en sendet

könntest du die initialisierung für dein mega mal mit uns teilen ? :)

Unregistriert
07.06.2016, 13:16
Programmiert in Bascom:

Einfach die Baudrate gesetzt, fertig.
Nach Dokumentation ist standardmäßig ein Stopbit gesetzt.

Ceos
07.06.2016, 13:23
Um die Frage von wkrug aufzufassen
Wie schaut die Taktversorgung aus? Quarz, interner Takt, oder was verwendest Du ? und wie hast du die fuse gesetzt? Was für einen Quarz benutzt du? hast du die exakte Frequenz bei $crystal auch angegeben?=

Unregistriert
07.06.2016, 13:35
Takt:
intern 8 Mhz + 64

$crystal = 8000000

Fuses: Teilung durch 8 deaktiviert

Sisor
07.06.2016, 18:06
Vorschlag zum Test, ob es sich um ein Timing-Problem handelt:
Auf dem Atmega8 statt einer Baudrate von 9600 mal mit 9700 bzw. 9500 experimentieren.

wkrug
07.06.2016, 18:14
Takt:
intern 8 Mhz + 64
Wenn sonst alles passt könnte beim Interntakt genau das Problem liegen.

War auch mal ein Thema im Computerclub 3.

Versuch mal den Vorschlag mit den ( eigentlich ) zu hohen / zu niedrigen Baudraten, oder klemm mal einen Quarz(-oszillator) an den ATMEGA mit entsprechenden Fuses.

Mein Vorschlag PC und ARDUINO parallel zu schalten zielte eigentlich darauf ab, Probleme in der Beschaltung zu erkennen.
Das es mit dem PC alleine funktionierte hab ich schon kapiert.

Möglich wär auch noch ein Oszilloskop mal anzuschließen und die Frames zu begutachten.
Das dürfte allerdings nur mit einem Speicheroszi gut funktionieren.

nikolaus10
08.06.2016, 08:19
Geht auch mit einem normalen Oszi,
musst nur dauern UUUUU senden....

73

wkrug
10.06.2016, 17:57
ERLEDIGT - Ist ja schön, aber wo lag dann das Problem?