www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lin Slave / Master mit MSP430F5438


Autor: Hannes H. (mui)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat schonmal jemand einen Lin-Slave mit dem MSP430F5348 gemacht? Das 
Teil kann ja angeblich LIN mit den UCSI_A, aber so richtig was dazu 
gefunden an Application Note oder Codebeispielen habe ich nicht.
Unter anderem hänge ich an der Initialisierung der UCSI, insbesondere 
wie das mit der breakdetection funktioniert. Da soll ja eigentlich ein 
Interrupt ausgelöst werden, aber wie heisst die ISR dazu?

Hat vielleicht jemand ein Beispiel?

Vielen Dank und viele Grüße,
mui

PS: Irgendwann soll auch ein Master implementiert werden, aber das kommt 
dann später...

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes H. schrieb:
> Hallo,
>
> hat schonmal jemand einen Lin-Slave mit dem MSP430F5348 gemacht?
Nö, bloß mal angedacht...

> das Teil kann ja angeblich LIN mit den UCSI_A, aber so richtig was dazu
> gefunden an Application Note oder Codebeispielen habe ich nicht.
Naja... die USCI hat das "automatic baud rate" feature, mit break 
detection und Synchronisierung. Das ist aber alles in Hardware gegossen 
und man kümmert sich eigentlich nur noch um die "normale" UART dahinter.

> Unter anderem hänge ich an der Initialisierung der UCSI, insbesondere
> wie das mit der breakdetection funktioniert. Da soll ja eigentlich ein
> Interrupt ausgelöst werden, aber wie heisst die ISR dazu?
Wüsste jetzt nicht, wozu man diesen IRQ bräuchte?
>

> PS: Irgendwann soll auch ein Master implementiert werden, aber das kommt
> dann später...
Sollte mit der Einstellung "automatic baud rate" ebenfalls automatisch 
funktionieren...

Autor: Hannes H. (mui)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
>> das Teil kann ja angeblich LIN mit den UCSI_A, aber so richtig was dazu
>> gefunden an Application Note oder Codebeispielen habe ich nicht.
> Naja... die USCI hat das "automatic baud rate" feature, mit break
> detection und Synchronisierung. Das ist aber alles in Hardware gegossen
> und man kümmert sich eigentlich nur noch um die "normale" UART dahinter.
>
Genau, das mit der automatik baudrate detection habe ich auch schon 
gefunden und eingestellt. Bedeutet das dann, dass das ID-Feld vom Master 
das Erste ist, was im RX-Buffer landet? Und muss ich dann nur noch einen 
TX mit der Uart machen mit den Datenfeldern um dem Master die Daten 
zukommen zu lassen? Muss ich Checksumme und Parity dann manuell 
berechnen und verschicken, oder passiert das auch automatisch?

>> Unter anderem hänge ich an der Initialisierung der UCSI, insbesondere
>> wie das mit der breakdetection funktioniert. Da soll ja eigentlich ein
>> Interrupt ausgelöst werden, aber wie heisst die ISR dazu?
> Wüsste jetzt nicht, wozu man diesen IRQ bräuchte?
Naja, ich dachte halt, dass der break erfasst werden muss um dann das 
autobaud feature zu nutzen, bzw. um dann Daten zu senden?! aber wenn das 
alles automatisch gemacht wird, bräuchte ich da gar nicht drauf 
achten...

Hier ist nochmal der Code, mit dem ich die UCSI initialisiere - 
viellecht kann da ma jemand ein Auge drauf werfen, ob das halbwegs 
passt:

Viele Grüße,
mui
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  InitLinSlave();
  while(1);
}

void InitLinSlave(void)
{
  P3SEL = 0x30;                           // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 |= UCSWRST;                     // **Put state machine in reset**
  UCA0CTL1 |= UCSSEL_2;                   // SMCLK
    UCA0ABCTL |= UCABDEN;                   // LIN-Control -> autobaud
    UCA0CTL0 |= UCMODE0|UCMODE1;      // LIN-Mode
    UCA0CTL1 |= UCBRKIE;          //enable break interrupt
    UCA0CTL1 &= ~UCSWRST;                   // **Initialize USCI state machine**
    UCA0IE |= UCRXIE;                       // Enable USCI_A0 RX interrupt
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.