BASIC-UART-externer Oszillator

OP #2923416
Lesenswert?

Hallo Zusammen,

ich empfange über UART nur Müll mit einer Frequenz von 1Hz wohlgemerkt. 
Ist das Programm so richtig, wenn der externe Quarzoszillator 4,9125 MHz 
hat? Fuses habe ich über AVRStudio für 
SUT_CKSEL=EXTHIFXTALRES_16KCK_64ms eingestellt.
1
$regfile = "M32def.dat"                                     'es handelt sich um einen ATmega8
2
$crystal = 4915200                                          'der eingebauter RC-Oszillator läuft mit 4,9152 Mhz
3
$hwstack = 100                                              'im Speicher werden für den Hardware-Stack 100 Byte reserviert
4
$swstack = 100                                              'im Speicher werden für den Software-Stack 100 Byte reserviert
5
$framesize = 100                                            'im Speicher werden für den Frame 100 Byte reserviert
6
$baud = 9600
7

8
Do
9
Print "Hallo Welt!"
10
Wait 1
11
Loop
12

13
End                                                         'Ende des Programms

Das ganze Funktioniert noch nicht. Vielleicht stimmt auch was an der 
Platine nicht ...

Gruß

Caligula
OP #2924474
Lesenswert?

Hallo,

dieser Fuse SUT_CKSEL ist auf EXTHIFXTALRES_16KCK_64ms eingestellt. Ist 
das richtig?

Mein PC hat keine serielle Schnittstelle, deswegen verwende ich einen 
RS232-USB-Adapter. Da kann man wohl dann eher nichts falsch anschließen.

Ausgegeben wird mit einer Frequenz von 1Hz nicht "Hallo Welt", sondern 
etwas Müll eben.

Einstellungen im Terminal: 9600bd

Gruß

Max
#2924634
Lesenswert?

Max S. schrieb:
> Mein PC hat keine serielle Schnittstelle, deswegen verwende ich einen
> RS232-USB-Adapter. Da kann man wohl dann eher nichts falsch anschließen.
Auch da kann man RX und TX vertauschen

Max S. schrieb:
> Ausgegeben wird mit einer Frequenz von 1Hz nicht "Hallo Welt", sondern
> etwas Müll eben.
Das klingt nach falschem Clock. Vermutlich hast du noch die CKDIV8 Fuse 
gesetzt?! (dann wird der Clock, egal ob intern oder extern, nochmal 
durch 8 geteilt)
OP #2924841
Lesenswert?

OCDEN = [ ]
JTAGEN = [X]
SPIEN = [X]
CKOPT = [ ]
EESAVE = [ ]
BOOTSZ = 2048W_3800
BOOTRST = [ ]
BODLEVEL = 2V7
BODEN = [ ]
SUT_CKSEL = EXTHIFXTALRES_1KCK_64MS

HIGH = 0x99 (valid)
LOW = 0xCF (valid)

Das sind meine Fuses wie in AVRStudio komplett angezeigt. CKDIV8 wo 
finde ich das?
Gast #2924877
Lesenswert?

Hi

>Das sind meine Fuses wie in AVRStudio komplett angezeigt. CKDIV8 wo
>finde ich das?

Hat dein ATMega32 nicht. Aller dings würde ich 4,9152 MHz eher unter
EXTMEDFXTALRES_16KCK_64MS einordnen.

MfG Spess
#2925108
Lesenswert?

Max S. schrieb:
> MAX232 ist dazwischen und GND ist auch ordnungsgemäß verbunden.

Das lässt sich schnell testen.
Nimm den µC aus dem Sockel. Mach eien Steckbrücke im Sockel zwischen dem 
Rx und dem Tx Pin. Am PC dann Hyperterminal aufgemacht, konfiguriert und 
auf der Tastatur tippen. Das Getippte muss angezeigt werden.
Gegentest: Steckbrücke abziehen und das Getippte darf nicht mehr 
erscheinen.

Wenn das klappt, dann ist die USB-Verbdindung, der UC/RS232 Umsetzer, 
der MAX232 und dessen Verbingung hin zum Sockel soweit erst mal in 
Ordnung.
#2925270
Lesenswert?

Max S. schrieb:
> Mein PC hat keine serielle Schnittstelle, deswegen verwende ich einen
> RS232-USB-Adapter. Da kann man wohl dann eher nichts falsch anschließen.
Du hast nicht zufällig einen RS232 USB Adapter mit TTL Pegel (dann 
darfst du natürlich keinen Max am µC verwenden), also sowas in der Art: 
http://www.ebay.de/itm/USB-2-0-to-TTL-UART-6PIN-Module-Serial-Converter-CP2102-STC-PRGMR-Dupond-cable-/251159448719?pt=Elektromechanische_Bauelemente&hash=item3a7a450c8f

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