Forum: Mikrocontroller und Digitale Elektronik ATmega88 LinBus Master/Slave


von D. Z. (Firma: Privat) (domi)


Angehängte Dateien:

Lesenswert?

Hallo,

auf einer Leiterplatte will ich über zwei ATmega 88 (ATA 
6612)Mikrocontroller eine Kommunikation über die LinBus Leitung 
herstellen. Der programmierte Mikrocontroller, der als Master fungiert, 
sendet den kompletten Nachrichtenframe (Synch Break(13Bit Low,2Bit 
High), Synch-Feld,... , Check-Summe) richtig vom TXD an den RXD des 
Slaves.

Bei dem Slave möchte ich nun mit dem Pin Change Interrupt ( PCINT2, 
reagiert auf jede Flanke) die 13 Low Bits vom Synch-Break erkennen um 
die USART-Schnittstelle einzuschalten und die 4 Bytes einzulesen.

Bautrate 9600; Interner Oszilatatorfrequenz 8 MHz

Leider bekomme ich immer unregelmägige Interrups, verteilt auf die 
Flanken des kompletten Frame.

Wo könnte das Problem

von Otto (Gast)


Lesenswert?

> Wo könnte das Problem

daran:

> Interner Oszilatatorfrequenz 8 MHz

UART geht nur (stabil) mit Quarz

Gruss Otto

von Stefan E. (sternst)


Lesenswert?

Ich würde gern mal einen Blick auf den Sourcecode werfen, aber nur, wenn 
du ihn hier als ordinären Text anhängst.

von D. Z. (Firma: Privat) (domi)


Lesenswert?

Hallo Otto,

beim Master nutze ich einen externen Quarz mit 4 MHz.

Beim Slave habe ich die Einstellung mit der internen Oszilatorfrequenz 8 
MHz eingestellt.

Gruß Dominik

von Stefan E. (sternst)


Lesenswert?

Ok, anscheinend möchtest du den Sourcecode nicht so veröffentlichen, 
dass ihn jeder lesen kann. Dann eben keine Hilfe von mir (und manchen 
anderen).

von Otto (Gast)


Lesenswert?

Hallo Dominik,

wenn beim Slave der LIN-Transceiver an der UART hängt, benötigst Du hier 
auch einen Quarz......

Gruss Otto

von Marcel (Gast)


Lesenswert?

Morgen,

benutze doch einfach den Framing Error um den break zu detektieren und 
arbeite eine Statemachine ab. Danach den internen Oszillator über die 
0x55 synchronisieren (so wie es auch bei LIN gedacht ist). Der Quartz 
ist beim Slave nicht erforderlich -> selbst bei 19200 läuft das stabil

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.