Forum: Mikrocontroller und Digitale Elektronik Wer kennt sich mit der LIN API


von Amir B. (sticky)


Angehängte Dateien:

Lesenswert?

Hallo liebes Forum.

ich will einen LIN-Slave programmieren, jedoch fehlt mir jegliche 
erfahrung. den Slave habe ich selbst entwickelt (anhang).

der slave soll folgendes machen:

-temperatur an master senden
-bei aufforderung des Masters relais schalten
-bei aufforderung des Masters reset ausführen bzw. variable auf eins 
setzen
-Checksumme prüfen
gibt es jemanden der mal ein LIN-Slave programmiert hat und mir dabei 
helfen könnte?

Danke an alle

von michael (Gast)


Lesenswert?

hallo.

was ein LIN-knoten können muß, steht hier: http://lin-subbus.org/
die spezifikationen 2.x unterscheiden sich in einigen punkten wesentlich 
von 1.3. mit welchem standard läuft denn dein master?

im prinzip is das ganze recht einfach, wenn du auf eine komplette 
umsetzung der spec verzichten kannst. wir können das z.b. nicht und 
kaufen LIN-treiber deshalb für richtiges geld.

eine mögliche implementierung in C findest du bei freescale in der 
application note AN2503 (AN2503SW.zip).
das ganze ist natürlich auf freescale-controller gemünzt, d.h. du mußt 
alles hardwareabhängige ändern (interrupts, UART, timer usw).

der anschluß deines ATA6662 funktioniert natürlich so nicht. RX und TX 
müssen schon mit der seriellen schnittstelle des µC verbunden sein.

hoffe geholfen zu haben.

gruß

michael

von michael (Gast)


Lesenswert?

ich sehe gerade, die freescale-version arbeitet gar nicht mit der 
UART... das macht das leben an der einen oder anderen stelle einfacher.
andererseits sehe ich auch gerade, daß einige routinen in assembler 
geschrieben sind...
naja. du machst das schon ;-)

gruß

michael

von Bensch (Gast)


Lesenswert?

> der anschluß deines ATA6662 funktioniert natürlich so nicht. RX und TX
müssen schon mit der seriellen schnittstelle des µC verbunden sein.

Das sind sie doch! (Lesen müsste man können...)

Ich bin auch gerade beim Entwurf eines Slaves mit dem ATA6662, die 
Anbindung an den uP scheint ok zu sein. Aber mehr kann ich noch nicht 
dazu sagen.

von Amir B. (sticky)


Lesenswert?

michael wrote:
> hallo.
>
> was ein LIN-knoten können muß, steht hier: http://lin-subbus.org/
> die spezifikationen 2.x unterscheiden sich in einigen punkten wesentlich
> von 1.3. mit welchem standard läuft denn dein master?
>

der slave soll mit der version 2.0 laufen.

bensch hat übrigens recht. dadurch das die leitungen mit den 
selbenlabels beschrieben werden sind sie verbunden. dies wird von der 
software erkannt.

ich schau mir deinen link gern mal an. natürl wäre eine app note von 
atmell besser.

von Amir B. (sticky)


Lesenswert?

wie sieht'S aus kennt sich keiner mit dem LIN-Bus aus?

von Chris (Gast)


Lesenswert?

Ja, kenne mich damit aus, was fehlt dir an Wissen ?

von Amir B. (sticky)


Lesenswert?

Ich würde gern wissen

-wie ich die kommunikation initiiere,
-welche einstellungen ich vornehmen muss bzw konfiguration,
- wie muss die uart konfiguriert sein?
-wie werden die ID vergeben

welche rolle die NCF genau spielen und, ob die überhaupt nötig sind wenn 
ich low-level programmiere, da ich keinen system generator habe.

und des weiteren was im ersten eintrag des threads steht.

ich würde geren eine baudrate von 9,6 kbit/s nutzen

der Master wird von jemand anderen dann auf grundlage meiner slaves 
entwickelt. habe also mehr oder weniger freie hand.

dachte mir das in den ersten beiden bytes die aufgenommenen Temperaturen 
stehen und an den Master gesendet werden.

der slave task des masters soll ein byte senden das die information hält 
wie die relais geschaltet sein sollen und ob ein reset erfolgen soll (3 
bit)

ich hoff ich erschlage dich nicht mit so vielen fragen. :-)

gruß Sticky

von Chris (Gast)


Lesenswert?

Ich würde gern wissen

>-wie ich die kommunikation initiiere,
Im Prinzip gar nicht, der Master macht das. Es gibt die Möglichkeit, 
selbst
die Kommunikation zu Starten, aber das muß auch der Master freischalten.

-welche einstellungen ich vornehmen muss bzw konfiguration,
- wie muss die uart konfiguriert sein?
Standard serielle Kommunication, 8N1. Die Baudrate muss gemessen werden,
und angepasst werden, inkl verändern des OSC calibration.

-wie werden die ID vergeben
Die Vergiebst in gewisser WEise du, andere sind bereits fest Vorgegeben.

welche rolle die NCF genau spielen und, ob die überhaupt nötig sind wenn
ich low-level programmiere, da ich keinen system generator habe.
Sie Spielen eine Rolle bez. Debugger, sowie Dokumentation. Sonst mußt du
dich in SW durchkämpfen, was du da Implementiert hast.
Wenn du einen rudimentären Generator brauchst, kann ich liefern.

und des weiteren was im ersten eintrag des threads steht.
Da bin ich nicht Schlau draus geworden. Die HW scheint mir auch nicht
besonders Intelligent gemacht zu sein.

ich würde geren eine baudrate von 9,6 kbit/s nutzen
OK, kein Problem, nur der Master gibt die Baudrate vor, der Slave hat 
nur
ein Hardcodiertes Maximum, welcher er nicht überschreitet.

der Master wird von jemand anderen dann auf grundlage meiner slaves
entwickelt. habe also mehr oder weniger freie hand.


dachte mir das in den ersten beiden bytes die aufgenommenen Temperaturen
stehen und an den Master gesendet werden.

der slave task des masters soll ein byte senden das die information hält
wie die relais geschaltet sein sollen und ob ein reset erfolgen soll (3
bit)

ich hoff ich erschlage dich nicht mit so vielen fragen. :-)

gruß Sticky

Mach ein ncf, das hilf, speziell zur Konfiguration der 
Temperatursensoren,
da dort auch die Kalibration usw. erschlagen werden muß. Vergiß dann 
nicht Firmwareupdate, ...
Nochwas, vergiß den NAD 0x7E , der ist bei 2.1 Reserviert.

Werde dir Morgen den NCF Compiler sowie den LIN Debugger (PC RS232) zur
Verfügung stellen. Dieser kann auch einen Master emulieren, sollte 
keiner vorhanden sein.

von Chris (Gast)


Lesenswert?


von Chris (Gast)


Lesenswert?

Hallo, habe gerade nachgesehen, hätte einen Lin 1.3 Generator für AVR
mit UART. Ein 2.0 Master muß auch 1.3 Lin´s unterstützen.
Den 2.0 habe ich nur für Pic sowie als generischen C, wo es dann nur um 
das Message Interpretation sowie Response geht.

von Amir B. (sticky)


Lesenswert?

gibt es denn eine möglischkeit das alles ohne ncf zu bewergstelligen?

die vorgabe ist leider das der Slave 2.0 sein soll.

an meiner uni steht ein BabyLIN modul von der firma lipowsky werde wohl 
damit den MAster emulieren. und die NCF erstellen.

ich verstehe nur nicht welche aufgaben vom lin slave übernommen werden.

im grunde nur die daten bereit stellen und checksumme prüfen oder?

doch wie?

wie gesagt habe keine erfahrung damit und weiß nicht was ich alles 
machen muss.

>Mach ein ncf, das hilf, speziell zur Konfiguration der
>Temperatursensoren,
>da dort auch die Kalibration usw. erschlagen werden muß

das habe ich im code gemacht und diese dan in eine variable abgelegt, um 
diese dann an den master zu senden. (ist eben eine Vorgabe des Profs. 
bin der minung das es schlauer wär dies am master zu machen aber was 
solls)
1
int8_t Convert_ADC_in_Celsius(uint16_t ADC_Val) 
2
{
3
4
int8_t T;
5
6
T = ((ADC_Val-OFFSET)*20)/37;  // (37/20 =1,85): ist die Steigung pro °C
7
                                // OFFSET: ADC-WERT bei 0°C
8
return T;                      //Temperatur in °C
9
}

von Chris (Gast)


Lesenswert?

Der NCF generiert dir dann den Code, inklusive der 
Temperaturlinearisierung usw. Aber es Stimmt, für die paar Sachen kann 
man es problemlos auch ohne machen.

von Amir B. (sticky)


Lesenswert?

hättest du vielleicht beispielcode womit ich mich etwas vertraut machen 
kann?

von Frederik K. (n0ll4k)


Lesenswert?

Ich hab letztes Jahr einen Prüfstand mit dem BabyLIN gemacht und die NCF 
Files absolut nicht gebraucht, erst wollte ich mir die auch schreiben. 
Aber ich hab dann recht fix festgestellt das ich es nicht brauche.

Wenn du nur den Slave entwickelst und den Master auch schon vorgibst 
reicht es eigentlich wenn du dir eine LDF und eine Zeitleiste überlegst 
mit der du dann arbeitest.

Sowas kann man ganz gut mit Excel dokumentieren musste ich feststellen. 
So wurde mir das auch übergeben.

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.