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
> 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?
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.
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. :/
???
1. und 2. Software UART?
Du meinst die USARTS die in Hardware vorhanden sind nehm ich mal an?
Im Anhang maln Baudratenberechner, alles um 0% geht in Ordnung.
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?
Vieleicht bringst du mal Fakten.
Boudrate?
Was für eine externe Taktquelle?
Taktfrequenz?
Eingestellte Vorteiler?
Initialisierungscode der Schnittstelle
...
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?
Herbert schrieb:> jedoch übermittelt sinnlose Zeichen.
Immer andere oder immer die selben
Wie sieht es mit der CLKDIV Fuse aus?
> wenn ich die zweite Software UART verwende
Welche Zweite? Und welches ist die Erste?
> Ja ich meinte die SUARTS in der Hardware.
Was denn jetzt? Soft-UART oder Hardware?
Zeig mal dein Programm...
Herbert schrieb:> Ja ich meinte die SUARTS in der Hardware.
Das versteht sich wirklich sehr schwer.
Soft Uarts in der Hardware ? Hmmm ?
Irgendwie konfus.
Allerdings gibt es ja verschiedene Varianten des M644.
Der 644PV hat ja tatsächlich 2 Hardware Uarts.
K.
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.
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 =)
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
Hi
>In Bascom gibt es eine Option, wo man die Fuseeinstellungen im>Programmcode
Und im AVR-Studio kann man ein Elf-File erstellen das Flash, EEPROM,
Fusebits und Security-Bits enthält.
MfG Spess
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.