ATmega88 LinBus Master/Slave

OP (Firma: Privat) #893324
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
Angehängte Dateien:
Gast #893643
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

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