ATmega88 soll mit PC kommunizieren.

Gast #1093964
Lesenswert?

Hallo!

Wie der Titel schon sagt: Der Mega88 soll mit dem PC über RS232 
kommunizieren.

Ich muss mal eine Grundlegende Frage stellen, sonst komm ich hier nie 
weiter:

Also:

Angeschlossen ist das ganze so:

Mega88 - Pin2 (PD0(RXD)) => MAX202 Pin12 (R1OUT)
Mega88 - Pin3 (Pd1(TXD)) => MAX202 Pin9  (T1IN)

Am Mega88 ist auch noch ein Quarz (1,843200 MHz) angeschlossen, und zwar 
am Pin9 (XTAL1)

Wenn ich jetzt im Datenblatt vom Mega88 lese:

a) 17. Serial Peripheral Interface – SPI
b) 18. USART0
c) 19. USART in SPI Mode
d) 20. 2-wire Serial Interface

Das verwirrt mich ein wenig... Welche der 4 ist die für mich richtige 
Methode? Ich habe zwar eine Vermutung, da ich den Publikumsjoker aber 
nicht verunsichern will, sage ich mal gar nichts. :P
Gast #1094025
Lesenswert?

> Hmm.... laut Reichelt hat der Quarz 4 Anschlüsse, aber einer davon ist
> nicht beschaltet...
>
> Anschlüsse:
> · 1 nicht beschaltet
> · 7 Masse
> · 8 Ausgang
> ·14 Speisespannung

Sicher das es ein Quarz und kein Oszilator ist? Verrat doch mal die 
genaue Bauteilbezeichnung.

> Angeschlossen ist das ganze so:
>
> Mega88 - Pin2 (PD0(RXD)) => MAX202 Pin12 (R1OUT)
> Mega88 - Pin3 (Pd1(TXD)) => MAX202 Pin9  (T1IN)

Klingt soweit Ok. R1IN kommt dann an TX vom PC und T1OUT geht an RX vom 
PC.

> Am Mega88 ist auch noch ein Quarz (1,843200 MHz) angeschlossen, und zwar
> am Pin9 (XTAL1)

So wird eine externe Taktquelle angeschlossen. Ein Quarz kommt an XTAL1 
und XTAL2. Zusätzlich braucht es noch die Lastkapazitäten. siehe 
Tutorial hier:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Quarz_statt_Quarzoszillator

> Wenn ich jetzt im Datenblatt vom Mega88 lese:
>
> a) 17. Serial Peripheral Interface – SPI
> b) 18. USART0
> c) 19. USART in SPI Mode
> d) 20. 2-wire Serial Interface
>
> Das verwirrt mich ein wenig... Welche der 4 ist die für mich richtige
> Methode?

b.) USART0

Irgendwo im Datenblatt steht sicher auch, welches Peripheriemodul an 
welchen Portpins mündet.


> Ich habe zwar eine Vermutung, da ich den Publikumsjoker aber
> nicht verunsichern will, sage ich mal gar nichts. :P

Ansonsten bleibt ja noch der 50:50 Joker ;)
Gast #1094075
Lesenswert?

Ja, richtig, es ist ein Oszillator. Bei Reichelt:
OSZI 1,843200 :: Quarzoszillator, 1,843200 MHz.

Bis vor 10 Minuten wusste ich gar nicht, dass da ein Unterschied 
besteht.
Aber wie ich erfreut lese, kann ich auch diesen Quarzoszillator 
benutzen?

Morgen sollten die restlichen Teile kommen, dann kann ich endlich die 
Schaltung aufbauen und testen ob es funktioniert. Da bin ich schonmal 
gespannt.
Gast #1095440
Lesenswert?

Hallo!

So, die Schaltung ist nun endlich aufgebaut und funktioniert nicht.

Deshalb habe ich noch ein paar Fragen:

Ich möchte ja diesen Quarzoszillator als externen Tackt benutzen. Hierzu 
habe ich im Programm (Diese Send-Bespiel, hier aus dem Tutorial) die 
Tacktfrequenz geändert in:

.equ F_CPU = 1843200

Ist das richtig?
Muss ich noch etwas einstellen, damit der externe Tackt benutzt wird?

Wenn ich im Hyper-Therminal eine Taste drücke, wird die dann automatisch 
an die Schnittstelle übertragen? Schon lange her, dass ich dieses 
Progamm das letzte mal benutzt habe.
#1095494
Lesenswert?

Erstmal ein Gesundes Neues Jahr an alle!

Im Hyperterminal und im Programm die selbe Baudrate eingestellt?
Wie hast du das Programm übertragen/programmiert?
Hat der ATmega88 einen Blockkondensator?
Und einen 10k Pullup am Reset?

Ich würde erst mal eine LED blinken lassen, wenn das Programm richtig 
startet. Dann weisst du wenigstens, ob deine Toolchain richtig 
funktioniert.

Gruss, Bernd
Gast #1095764
Lesenswert?

> Erstmal ein Gesundes Neues Jahr an alle!

Ich schließ mich mal an, wünsche allen hier ein gesundes neues Jahr.

> Ich möchte ja diesen Quarzoszillator als externen Tackt benutzen. Hierzu
> habe ich im Programm (Diese Send-Bespiel, hier aus dem Tutorial) die
> Tacktfrequenz geändert in:
>
> .equ F_CPU = 1843200
>
> Ist das richtig?

Ja, sofern du einen 1.8432MHz Takt verwendest.

> Muss ich noch etwas einstellen, damit der externe Tackt benutzt wird?

Ein neuer Atmega88 läuft mit dem internen 8MHz-RC-Oszilator und der 
DIV8-Fuse aktiviert, d.h. der Controller läuft mit ETWA 1MHz Takt.

> Wenn ich im Hyper-Therminal eine Taste drücke, wird die dann automatisch
> an die Schnittstelle übertragen? Schon lange her, dass ich dieses
> Progamm das letzte mal benutzt habe.

Ja, Hyperterminal sendet jede Taste sofort raus. Wenn Hardware-Handshake 
aktiv ist, reagiert das Programm allerdings oft etwas seltsam. Am besten 
du suchst mal nach HTerm oder benutzt Putty. Mit HyperTerminal bin ich 
nie richtig warm gewurden.

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