Software - UART "witziges" Phänomen

Gast #2642773
Lesenswert?

Guten Abend,

ich hab die SUART eines ATmega644 Programmiert. Nun das beängstigende: 
ATmega644 (Modell 1) funktioniert in Schaltung, d.h. der gewünschte Text 
wird ordnungsgemäß übermittelt. ATmega644 (Modell 2) mit selben Programm 
geflasht, jedoch übermittelt sinnlose Zeichen. Bei Modell 3 wieder das 
Selbe.

Warum funktioniert es bei dem ersten und bei den anderen nicht? Habe den 
gleichen ATmega644 (genau 644 20PU) genommen und jeweils mit selben 
Programm geflasht. Komisch, woran kann das liegen? O.o

MfG Herbert
Gast #2642782
Lesenswert?

> sinnlose Zeichen
Ein starkes Indiz für knapp danebenliegende Baudrate!

Möglicherweise Abweichungen in der Taktquelle, insbesondere bei internem 
Ozillator.

Hast du mal die Bit-Zeiten mit dem Oszi ausgemessen, um auf die reale 
Baudrate zu kommen? Oder alternativ die Pulsdauer einer Blink-LED an den 
verschiedenen AVR Exemplaren verglichen?
Gast #2642787
Lesenswert?

Fuses sind richtig gesetzt. Verwende einen externen Taktgeber.

Krapao schrieb:
> Hast du mal die Bit-Zeiten mit dem Oszi ausgemessen, um auf die reale
> Baudrate zu kommen? Oder alternativ die Pulsdauer einer Blink-LED an den
> verschiedenen AVR Exemplaren verglichen?

Habe ich noch nicht probiert. Aber danke für den Tipp.
Gast #2642789
Lesenswert?

versteh nicht woran es liegen kann O.o
vl. hilft das ja weiter: wenn ich die zweite Software UART verwende, 
dann liefert jeder Mikrocontroller das richtige Ergbnis. Nur hald bei 
der ersten Schnittstelle nicht. :/
Gast #2643627
Lesenswert?

Ja ich meinte die SUARTS in der Hardware.
Die Baudrate müsste richtig eingestellt sein, sonst würde ja auch die 
SUART an PD4 das falsche Ergebnis liefern. Diese funktioniert jedoch 
immer, nur die auf PD5 weist nur das richtige Ergebnis auf, wenn ich den 
ersten Mikrocontroller verwende.

Dass es an der Hardware liegt, sprich am MAX232 und deren Beschaltung 
schließe ich aus, da es ja mit dem ersten Mikrocontroller funktioniert.

Hat noch jemand eine Idee?
#2643643
Lesenswert?

Herbert schrieb:
> Ja ich meinte die SUARTS in der Hardware.
> Die Baudrate müsste richtig eingestellt sein, sonst würde ja auch die
> SUART an PD4 das falsche Ergebnis liefern. Diese funktioniert jedoch
> immer, nur die auf PD5 weist nur das richtige Ergebnis auf, wenn ich den
> ersten Mikrocontroller verwende.

Weder PD4, noch PD5, sind TXD oder RXD Pins für irgendeinen der 
Hardware-UARTs.
Bleibt also immer noch die Frage: was genau meinst du überhaupt?
Gast #2643674
Lesenswert?

Sorry, für die Unklarheiten, verwende den ATmega644 20PU. Verwende die 
Beiden Ports PD4 (OC1B) und PD5 OC1A für eine Software - UART.

Weiteres verwende ich einen externen Quarz: 3,6864 MHz. Als Baudrate 
nehme ich 9600.
Gast #2643797
Lesenswert?

Funktioniert nun, die Fuses waren falsch gesetzt. Hätte gedacht, dass 
diese Einstellung bleibt und bei jedem programmiern automatisch gesetzt 
werden, aber anscheinend muss man für jeden Mikrocontrolle die Fuses 
manuell setzen. Danke für die zahlreichen Antworten.

Super Forum =)
#2643825
Lesenswert?

Das war doch klar , oder ?
Da wir alle nur mit Wasser kochen wurde mir das Ergebnis bei deinem 
vorletzten Post schon klar.

In Bascom gibt es eine Option, wo man die Fuseeinstellungen im 
Programmcode
hinterlegen kann. Dann wird es beim Flashen gleich mit erledigt.

ob es das bei deiner programmiersprache auch gibt weiss ich nicht.

Klaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren