Forum: Mikrocontroller und Digitale Elektronik UART Problem (Atmega 32)


von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich möchte zum testen meines Atmels einfach nur etwas am PC
ausgeben. Anstatt der gewünschten ausgabe wir aber immer nur ein Ç
ausgegeben. Kann jemand sagen was ich falsch mache? Die Einstellungen
am PC (Baudrate, Frameformat hab ich schon mehrmals überprüft).

Danke!

von Niels (Gast)


Lesenswert?

Hi,

Benutzt Du den internen RC Oszillator ?

Der ist wohl für serielle Datenkommunikation zu ungenau. Benutzt mal
nen Quarz.

Gruß Niels

von Chris (Gast)


Lesenswert?

Wie kann auf den externen umschalten?

von Niels (Gast)


Lesenswert?

Hi,

Fuse Bits programmieren.....

Gruß Niels

von Jochen (Gast)


Lesenswert?

"Benutzt Du den internen RC Oszillator ?

Der ist wohl für serielle Datenkommunikation zu ungenau. Benutzt mal
nen Quarz."

Nein, das ist so nicht richtig. Die serielle Schnittstelle ist ziemlich
tolerant, was Abweichungen angeht.
Check lieber mal die Verkabelung und die Einstellungen in der
Software.

Bei mir funktioniert das immer mit dem internen RC.

von Peter Dannegger (Gast)


Lesenswert?

"Bei mir funktioniert das immer mit dem internen RC."


Schön für Dich.

Aber eben kein Beweis, daß es bei jedem anderen auf der Welt auch geht
!


Peter

von Michael Schlagmueller (Gast)


Lesenswert?

also der Internet RC längt völlig
ich hätte auch drauf getippt dass der Grundtakt nicht stimmt von deinem
µController.
Oder du hast die Teiler falsch programmiert....

Haste ein Oszi greifbar ? Dann könntest du es nachschauen

von Thorsten (Gast)


Lesenswert?

Naja, sooo tolerant ist die Schnittstelle auch nicht, mehr als 1-2%
sollte da nichts abweichen. Wenn du ein Oszilloskop hast, messe einfach
mal die Bitdauer.

Gruß
Thorsten

P.S.: Bei mir ging bisher der intern Oszillator (8 MHz) auch immer bis
38400 Baud problemlos, die Bitdauerabweichung war aber auch immer <2%.

von Chris (Gast)


Lesenswert?

Oszi hab ich leide keins.
 Aber Wie muss ich die Fuse Bits einstellen damit der Quarz richtig
genutzt wird? möchte einen 8 Mhz Quarz benutzen aber aus dem Datenblatt
werde ich nicht so richtig schlau?!

Danke!

von Niels (Gast)


Lesenswert?

Hi,

Also ich habe mit dem internen RC Ozillator auch Probleme gehabt. Und
ich meine sogar ich hatte auch diese komischen Cs.

Umschalten auf externen Osc hat geholfen.

Mag sein das damals die Baudrate/eingestellte Clock nicht gut gewählt
war. Aber ich habe auch schon gelesen, dass extern die bessere Wahl
ist.
(Vgl. Temperatur-/Langzeitstabilität)

Gruß Niels

von crazy horse (Gast)


Lesenswert?

UART-Kommunikation mit RC ist Murks, auch wenn es da und dort
funktioniert. Solange das Teilchen auf dem temperierten Schreibtisch
bei gleichbleibenden 22° liegt, mag das gut gehen - in der harten
Wirklichkeit nicht. Verstehe nicht, warum man nicht den
20Cent-Resonator spendieren soll.

von Chris (Gast)


Lesenswert?

Hallo!
Möchte ja gern den externen benutzen, weiss aber leider nicht wie ich
das anstellen soll. Ich glaub das geht über die Fuse Bits ( ja ich bin
Anfänger ) oder? Hab das schon versucht und jetzt erkennt Ponyprog den
Atmega gar nicht mehr. Kann mir jemand sagen wie ich die F-Bits richtig
setzen muss damit das beim zweiten Atmega nicht auch passiert?
Danke

von Tobias (Gast)


Lesenswert?

Nicht umsonst gibt es ja das OSCCAL Register, mit dem man den internen
Oscillator kalibrieren kann. Auf der Amtel Seite gibt es dazu eine
Application Note dazu.

meine testroutine schreibe ich mit Winavr

#define test  <hier den Wert einsetzen>
DDRA = 0xff;
OSCCAL = test;

while(1)
{
PORTA ~= PORTA;
}
dafür brauch er genau 10 Takte also Frequenz an den Ports messen
multiplizieren mit 10 und dann hat man die Frequenz des internen
Oscillators. Bei zu starken abweichungen die Variable,Konstante,
#define Makro oder was auch immer verändern, neu programmieren
Frequenz messen vergleichen, und nach spätestens 10 durchläufen
hat man die gewünschte Frequenz. Damit habe ich bisher jede RS232 zum
laufen gebracht. Den Quartz kann man sich schenken, wenn man nicht
gerade den Atmega mit über 8Mhz betreiben will.

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.