Hallo liebes µC.net-Team,
ich habe einige Probleme mit meinem ATmega8 und der Kommunikation über
RS232.
Ich habe den ATmega8 mit einem MAX232 mit meinem Computer verbunden und
versuche nun einige Befehle zu übertragen. Die Hauptaufgabe des ATmegas
ist, eine LED einzuschalten und danach ADC Daten zu übermitteln.
Als ich aber Putty gestartet habe, um dort die Befehle einzugeben, waren
in der Konsole nur Hieroglyphen zu sehen. Also ich konnte keinen reinen
Text eingeben, sondern nur irgendwelche Sonderzeichen.
Die Schaltung an sich habe ich schon überprüft und keine Fehler
gefunden. Auch die Einstellungen in Putty stimmen.
Hier ist mein BASCOM-Code:
1
$regfile = "m8def.dat"
2
$crystal = 1000000
3
$baud = 9600
4
5
Config Portd.2 = Output
6
7
Led Alias Portd.2
8
9
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Moin,
Ich kann zwar nichts mit dem Bascom anfangen, aber hatte das gleiche
Prob..
Bei mir lag es an der Baudrate. Habe bei mir ins Register für die Baud
9600 reingeschrieben. Da musste aber 25 rein. Diese repräsentiert dabei
die 9600.
Desweiteren würde ich mir den Frame Aufbau anschauen. Anzahl Stop Bits
Parity usw
MfG
Sebastian
also mit 1MHz Takt hat die UART im Nomalmodus schon 7% Abweichung -> das
ist viel zu viel. Wenn du in der UART-Config irgenwie den U2X Modus
(Double-Speed) aktivieren kannst - kenne mich mit BASCOM nicht aus.
Schau einfach mal ins Datenblatt, da ist auch eine Tabelle drin!
Sascha
OK,
danke erstmal für die Antworten. Ich habe jetzt die Frequenz($crystal)
und die BAUD-Rate angepasst. Dennoch besteht das Problem noch immer mit
dem Unterschied, dass ich jetzt nur ca. 5-7 Zeichen eingeben kann und
danach nichts mehr.
Dome schrieb:> OK,> danke erstmal für die Antworten. Ich habe jetzt die Frequenz($crystal)> und die BAUD-Rate angepasst.
das klingt so als ob du nicht wüsstest mit welcher Frequenz der AVR
läuft?
Hast du einen Quarz angeschlossen? Fuses richtig eingestellt.
Sascha
Also einen externen Quarz habe ich (noch) nicht angeschlossen. (Hätte da
noch einen 20 MHz und einen 16 MHz)
Da ich gerade erst angefangen habe, mich mit Microcontrollern zu
beschäftigen, benutze ich Bascom. Bascom müsste theoretisch die Fuses
automatisch setzen.
Im Moment bin ich eigentlich auch ein wenig überfragt, denn das Problem
scheint eher mit der Verbindung mit dem PC zusammenzuhängen als mit dem
Mega8.
Dome schrieb:> Also einen externen Quarz habe ich (noch) nicht angeschlossen.
Quarz anschliessen!
Mit dem internen Oszillator wird das nichts.
Gruß
Jobst
Jobst M. schrieb:> Quarz anschliessen!> Mit dem internen Oszillator wird das nichts.
Danke für die Antwort.
Also funktioniert das nur mit ext. Quarz, oder?
So, danke für die hilfreichen Antworten.
Ich werde dann mal versuchen einen Quarz anzuschließen. Da hätte ich
jedoch noch eine Frage: Irgendwo habe ich gelesen, dass man max. 18MHz
nehmen kann, sodass der 20MHz weg fällt und ich den 16MHz nehmen muss.
Reicht dieser denn überhaupt aus bzw. hat er eine passende Frequenz?
Dome schrieb:> So, danke für die hilfreichen Antworten.> Ich werde dann mal versuchen einen Quarz anzuschließen. Da hätte ich> jedoch noch eine Frage: Irgendwo habe ich gelesen, dass man max. 18MHz> nehmen kann, sodass der 20MHz weg fällt und ich den 16MHz nehmen muss.> Reicht dieser denn überhaupt aus bzw. hat er eine passende Frequenz?
Welchen Mega8 hast du denn?
Ich verwende den atmega8-Pu und der verträgt bis zu 16Mhz. Am besten
lädst du dir das Datenblatt mal runter. Dort kannst du unter USART auch
ein paar Baud-examples anschauen. Desweiteren würde ich die Empfehlen
das Uart Tutorial durchzulesen.
16 MHz reichen dicke aus.
Bin auch gerade dabei mein Uart inbetrieb zunehmen. Würde dir gern
Helfen nur wie schon gesagt kann ich kein Bascom
MfG
Sebastian
Da muss ich mir noch mal einen dieser Quarze zulegen.
Ich habe es jetzt auch ohne ext. Quarz hinbekommen. Ich musste einfach
nur die richtige Baud-Rate wählen (bei 1MHz internen Oszi. $baud =
2400).
Bevor ich aber Geld für einen Quarz ausgebe, den ich hinterher nicht
gebrauchen kann, würde ich gern eure Meinung hören. Welche Frequenz
empfehlt ihr? Ich würde mir ja einen 3.6864 Mhz Quarz kaufen, da er laut
dieser(http://www.wormfood.net/avrbaudcalc.php) Tabelle viele (/alle
aufgelisteten) Baud-Raten fehlerfrei unterstützt.
Dome schrieb:> Bevor ich aber Geld für einen Quarz ausgebe, den ich hinterher nicht> gebrauchen kann
Wenn man Deine Texte liest, bekommt man den Eindruck, als wenn es sich
bei einem Quarz um eine riesen Investition handelt. So ein Ding kostet
(bei Reichelt z.B.) 18ct!
Nimm 14.7456MHz (= 4 x 3.6864MHz) - damit sind ebenso alle Baudraten
möglich und der Prozessor rennt etwas schneller.
Es ist nie verkehrt verschiedene Frequenzen auf Vorrat zu haben - wenn
man damit bastelt ...
Ich verwende am Atmega 48, 168 und 644 gerne 18,432MHz und an 8051ern
24,576MHz - sofern ich die UART benutze.
Gruß
Jobst
Dome schrieb:> Bevor ich aber Geld für einen Quarz ausgebe, den ich hinterher nicht> gebrauchen kann, würde ich gern eure Meinung hören. Welche Frequenz> empfehlt ihr?
das hängt ganz von deinen Bedürfnissen ab - höhere Frequenz -> höherer
Stromverbrauch. Wenn sich dein µC sowiso nur in irgendwelchen
Warteschleifen langweilt und nichts zeitkritisches zu tun ist braucht
auch die Frequenz nicht unnötig hoch sein.
> Ich würde mir ja einen 3.6864 Mhz Quarz kaufen, da er laut> dieser(http://www.wormfood.net/avrbaudcalc.php) Tabelle viele (/alle> aufgelisteten) Baud-Raten fehlerfrei unterstützt.
eine passable Größe - hab ich auch schon oft verbaut.
Die Baudratentabelle findest du auch im Datenblatt des M8.
Sascha
Jobst M. schrieb:> Wenn man Deine Texte liest, bekommt man den Eindruck, als wenn es sich> bei einem Quarz um eine riesen Investition handelt. So ein Ding kostet> (bei Reichelt z.B.) 18ct!
Dann kommt aber noch Porto dazu und dann lohnt es sich nicht NUR einen
Quarz zu bestellen.
Sascha Weber schrieb:> eine passable Größe - hab ich auch schon oft verbaut.> Die Baudratentabelle findest du auch im Datenblatt des M8.>> Sascha
Danke für die Antwort.
Dome schrieb:> Jobst M. schrieb:>> Wenn man Deine Texte liest, bekommt man den Eindruck, als wenn es sich>> bei einem Quarz um eine riesen Investition handelt. So ein Ding kostet>> (bei Reichelt z.B.) 18ct!>> Dann kommt aber noch Porto dazu und dann lohnt es sich nicht NUR einen> Quarz zu bestellen.
Wegen EINEM Quarz macht man auch keine Bestellung.
Kauf gleich ein paar verschiedene. Dazu ein paar verschiedenfarbige LED
samt Vorwiderständen (braucht man imer mal), dazu ein paar Taster
(braucht man auch immer wieder mal), Draht ist auch nie verkehrt und was
sonst halt noch so anfällt. Ein paar Standardbauteile vorrätig zu haben,
hat beim Basteln noch ni geschadet. Da sind offenbar Störungen auf einer
Baugruppe? OK, dann gleich mal ein paar 100nF Blockkondensatoren
verteilen.
Hi,
das mit den Baudratenquarzen stimmt so im wesentlichen, dennoch geht es
auch wunderbar mit dem 16 Mhz Quarz (dann sparst du die 18 cent ;-))
Hab nämlich gerade eine Schaltung mit TWI und RS232 aufgebaut, da TWI
zwar nicht ganz so zeitkritisch ist, aber mit 100.000 oder 400.000 Hz
läuft, ist mein 8 Mhz Quarz besser geeignet, mit dem sind übrigens
19.200 Baud auch noch problemlos möglich.
Lies mal nach auf Seite 156 im Atmega8-Datenblatt, bei 16 Mhz-Quarz sind
etliche Baudraten mit 0,2% Abweichung möglich!