Hallo Community, ich hänge derzeit in einem Kleinprojekt und bin mir nicht ganz sicher wie ich weiterverfahren soll. Folgendes hab ich vor: Ich möchte eine RaspberryPi 3B+ (welche ich als Not-Reserve für meinen 3D Drucker noch rumliegne habe, nebenbei als LIN- Simulator nutzen, um Lin gesteuerte RGB Leuchten zu Funktionstestzwecken anzusteuern, welche später als Zusatz-Ambientebeleuchtungen in meinem Fahrzeug zum Einsatz kommen sollen. Da, wie ich feststellen musste, nicht jede LIN RGB Leuchte zu funktionieren scheint (Hersteller oder Komponentenabhängig?). Grundlegendes zur meiner Erfahrung: Elektrosachverstand ist durch meine damalige Ausbildung zwar vorhanden, aber nicht wirklich viel in der Elektronik bzw. Microelektronik selbst, was Bauteile angeht. Aber man lernt ja gerne dazu. ;) Mit der Raspberry habe ich Grunderfahrungen sammeln können (Einrichten und Anbinden an einen 3D Drucker mittels Octoprint und dessen Steuerung), sowie ein RGB Ansteuerungstest wurde auch schon erfolgreich beendet (python gesteuert). LIN Bus Kenntnisse sind vorhanden (viel gelesen) und ich habe dadurch im Fahrzeug nun auch meine normalen Beleuchtung auf LIN RGB gesteuerte umgebaut sowie auch aufgetretene Fehler beheben können. Dies war die Grundlage, für die nun kommenden Erweiterungen. Hierbei suche ich nun eine, wenn möglich, "simple" Lösung um neue Leuchten vorab übers Pi zu testen und nicht immer zum Auto rennen zu müssen. Ich habe mich nun schon etwas mit den Convertern und Transceivern befasst. Testweise einen TTL to LIN Bus Converter "LINTTL3" von eletechsup geholt und versuchsweise damit beschäftigt. Aber glaube hier ohne kompetente Hilfe bei der Herangehensweise nicht allein weiterzukommen. Im Netz gibt es zwar auch Unmengen an Videos zum Thema LinBus, aber nichts verwertbares um speziell zu meinem Thema eine Lösung zu finden, da immer mehr Fragen auftauchen u.a. 1. Sind die Bauteile für diese Art der Nutzung ausreichend oder wird noch etwas benötigt? 2. Ist das Lin-Signal immer gleich gepulst bei LIN RGB gesteuerten Lichtmodulen oder weicht dies Programmier oder Herstellertechnich ab? 3. Bezogen auf Frage 2, muss ich das LIN Signal aus dem Fahrzeug erst irgendwie auslesen um die Bits in die Raspberry zu Übernehmen? Oder gibts da LIN Libarys wo diese hinterlegt sind? Ich hab euch mal das LIN-LED Modul sowie Bilder vom LINTTL3 beigefügt, vieliecht hilft dies bei einer Bewertung. Fragen werde ich sehr gerne bestmöglichst beantworten. Danke Vorab! Viele Grüße Norman
:
Bearbeitet durch User
Norman schrieb: > Da, wie ich feststellen musste, nicht jede LIN RGB Leuchte zu > funktionieren scheint (Hersteller oder Komponentenabhängig?). LIN Adressen zum Ansprechen der E521.31 hast du passend zum LDF gewählt?
LIN ist im Prinzip ein UART mit einer Bitrate von max 20000 bps (üblich: 9600 oder 19200) und ein paar Spezialitäten. Ich gehe davon aus, dass Du einen LIN Master bauen willst. Der muss die Busspannung (normal 12V oder 24V) liefern und den 1k Pullup enthalten. Jedes Paket wird mit einem BREAK-Signal eingeleitet. Das ist ein Low-Signal von mindestens 13 Bit-Zeiten, was bei einer normalen UART-Übertragung nicht vorkommen kann, da Du ja nur ein Startbit, max. 9 Datenbits und ggf ein Paritätsbit haben kannst. Das Stopbit ist ja immer 1, also hast Du maximal 11 aufeinanderfolgende 0-Bits. 13 0-Bits hintereinander sind also normalerweise ausgeschlossen. Dein Pi muss dieses BREAK erzeugen können. Dafür gibts drei Möglichkeiten: 1. Der UART hat eine entsprechende Funktionalität eingebaut. Unwahrscheinlich. Der Mini-Uart hat das garantiert nicht, und beim großen glaube ich das auch nicht. 2. Du schaltest auf die halbe Bitrate um und sendest dann ein Byte mit dem Wert 192. Das sind dann 6 0-Datenbits und ein 0-Startbit, also 7 0-Bits bei der halben Bitrate und 14 0-Bits bei der nominalen Bitrate. Passt also. 3. Du nimmst ein UND-Gatter (z.B. 74LVC1G08) und machst dabei eine UND-Verknüpfung des TX-Pins und eines beliebigen anderen GPIOs. Wenn Du ein BREAK senden willst, setzt Du den GPIO auf 0 und sendest zwei beliebige Bytes. Wenn Du raus sind, setzt Du den Pin wieder auf 1 und kannst dann normale Daten senden. Im Prinzip war es das schon. Der Rest ist nur noch herauszufinden, welche ID mit welchen Daten Du senden musst und wie die Parität bei der PID und die Prüfsummenberechnung (klassisch gemäß LIN 1.3 oder erweitert gemäß LIn 2.x) funktioniert. Das ist aber im Standard ganz klar beschrieben. fchk
:
Bearbeitet durch User
Frank K. schrieb: > Dein Pi muss dieses BREAK erzeugen können. https://stackoverflow.com/a/57768217 LG, Sebastian
Rainer W. schrieb: > LIN Adressen zum Ansprechen der E521.31 hast du passend zum LDF gewählt? Werden die vom E521.31 nicht per Autoadressing vergeben? Die Teile hab ich ja auch schon funktionierend im Fahrzeug verbaut. Meine Ausage bezog sich auf einzelne Testkäufe anderer Hersteller, wo es nicht funktionierte (ev. durch andere Komponenten auf den Platinen) Frank K. schrieb: > Ich gehe davon aus, dass Du einen LIN Master bauen willst. Der muss die > Busspannung (normal 12V oder 24V) liefern und den 1k Pullup enthalten. Korrekt, LIN Master einfach um die Testkäufe anzustöpseln und auf Funktion zu prüfen. (kommt immer wieder vor, dass einnige schon defekt geliefert werden. Busspannung LIN sind im Mittelwert ungefähr 8,x V (Multimeterermittlung bevor es auf ERR geht) Frank K. schrieb: > Dein Pi muss dieses BREAK erzeugen können. Dafür gibts drei > Möglichkeiten: Kommt es mir nur so vor oder ist Methode 3 am einfachsten zu realisieren? Besonders für nen Anfänger? Gibt es nicht schon irgend jemanden der eine simple Ansteuerung erfolgreich umgesetzt hat? Hab einige Einträge hier und in anderen Foren gefunden, die ähnliche Themen betreffen, scheinbar wird aber fast nur geschrieben wenn ein Problem besteht und nicht ob und wie es behoben wurde. :( Frank K. schrieb: > Der Rest ist nur noch herauszufinden, > welche ID mit welchen Daten Du senden musst und wie die Parität bei der > PID und die Prüfsummenberechnung (klassisch gemäß LIN 1.3 oder erweitert > gemäß LIn 2.x) funktioniert. Das ist aber im Standard ganz klar > beschrieben. Wie bekomme ich das raus? Hersteller anschreiben? LIN Analyzer bauen oder kaufen? Gibts dazu vieleicht Dokus die ich nicht kenne/finde? Oder mal ganz frei in die Community gefragt, wie würdet ihr sowas umsetzen, ev. auf anderen Wegen? Material Budget für anderes notwendiges Zubehör bis 100 Euro wärs mir Wert, da auch noch Nachfolgeprojekte geplant sind. Wichtig wäre mir, dass ich verstehe was gemeint ist (auch wenns durch Eigenrecherche geschiet), daher bauche ich dazu effektive Informationen. ;) LG Norman
:
Bearbeitet durch User
Norman schrieb: > Frank K. schrieb: >> Ich gehe davon aus, dass Du einen LIN Master bauen willst. Der muss die >> Busspannung (normal 12V oder 24V) liefern und den 1k Pullup enthalten. > > Korrekt, LIN Master einfach um die Testkäufe anzustöpseln und auf > Funktion zu prüfen. (kommt immer wieder vor, dass einnige schon defekt > geliefert werden. > > Busspannung LIN sind im Mittelwert ungefähr 8,x V (Multimeterermittlung > bevor es auf ERR geht) Halt. LIN hat drei Signale: 1. VB Busspannung 12/24V 2. LIN Datenleitung 0V low VB high 3. GND Zum Messen der Datenleitung ist ein Multimeter ungeeignet. Ein Oszilloskop ist dafür passender. > Frank K. schrieb: >> Dein Pi muss dieses BREAK erzeugen können. Dafür gibts drei >> Möglichkeiten: > > Kommt es mir nur so vor oder ist Methode 3 am einfachsten zu > realisieren? Besonders für nen Anfänger? ja. Schon gemacht. > Frank K. schrieb: >> Der Rest ist nur noch herauszufinden, >> welche ID mit welchen Daten Du senden musst und wie die Parität bei der >> PID und die Prüfsummenberechnung (klassisch gemäß LIN 1.3 oder erweitert >> gemäß LIn 2.x) funktioniert. Das ist aber im Standard ganz klar >> beschrieben. > > Wie bekomme ich das raus? Hersteller anschreiben? LIN Analyzer bauen > oder kaufen? Gibts dazu vieleicht Dokus die ich nicht kenne/finde? > > Oder mal ganz frei in die Community gefragt, wie würdet ihr sowas > umsetzen, ev. auf anderen Wegen? Material Budget für anderes notwendiges > Zubehör bis 100 Euro wärs mir Wert, da auch noch Nachfolgeprojekte > geplant sind. Wichtig wäre mir, dass ich verstehe was gemeint ist (auch > wenns durch Eigenrecherche geschiet), daher bauche ich dazu effektive > Informationen. ;) Ich habe für meine Entwicklungen (Arbeit, kein Hobby) das hier gekauft: https://www.peak-system.com/PLIN-USB.485.0.html Der kann Master, Slave oder Monitor (passiv) sein. VB musst Du extern bereitstellen. Damit hatte ich eine Referenzimplementierung, von der ich sicher war, dass sie funktioniert. Dann entweder Herstellerdoku besorgen oder reverse engineering betreiben. Was bei mir nicht notwendig war, weil Master (STM32F7) und Slaves (PIC24FV64KA304) aus meiner Feder stammten. Den offiziellen LIN-Standard hast Du gelesen? fchk
Frank K. schrieb: > Dein Pi muss dieses BREAK erzeugen können. Dafür gibts drei > Möglichkeiten: [...] Es gibt noch eine vierte und das ist eigentlich die "natürliche": Man erinnert sich daran, dass man unter Linux arbeitet und benutzt einfach die Linux-Gerätetreiber. Diese kümmern sich dann darum, das bestmöglich mit der konkreten Hardware umzusetzen. So wie die Erschaffer des OS es gewollt haben. Siehe: https://superuser.com/questions/786545/how-to-send-a-break-on-a-serial-port-from-command-line-in-raspbian-linux Interessant in diesem Zshg. sind die drei dort gezeigten Codebeispiele.
Ob S. schrieb: > Interessant in diesem Zshg. sind die drei dort gezeigten Codebeispiele. tcsendbreak hat nur Dezisekunden Auflösung, nützt dem TO also genau gar nicht. LG, Sebastian
Frank K. schrieb: > Halt. LIN hat drei Signale: > 1. VB Busspannung 12/24V > 2. LIN Datenleitung 0V low VB high > 3. GND Ja das ist mir bekannt, ich dachte unter Busspannung die Spannung zu verstehen, die über den LIN Bus kommt und man das andere eher nur als Versorgungsspannung der Platine bezeichnet. Multimetermessung ist ungenau und eher nicht zu empfehlen, war aber ne reine Mittelwertsermittlung um zu testen was und ob da was kommt. Oszi hab ich leider keinen. Frank K. schrieb: > Ich habe für meine Entwicklungen (Arbeit, kein Hobby) das hier gekauft: > https://www.peak-system.com/PLIN-USB.485.0.html Das Teil habe ich auch schon gesehn aber wollte dann doch erstmal schauen obs irgendwie günstiger geht. Frank K. schrieb: > Den offiziellen LIN-Standard hast Du gelesen? Nein, hab erst jetzt durch euch gemerkt, dass des eventuell relevant wäre oder benötigt wird. Hast Du dafür Infos oder einen Link? Gruß Norman
:
Bearbeitet durch User
Norman schrieb: > Frank K. schrieb: >> Den offiziellen LIN-Standard hast Du gelesen? > > Nein, hab erst jetzt durch euch gemerkt, dass des eventuell relevant > wäre oder benötigt wird. Hast Du dafür Infos oder einen Link? Ich hab mal gegoogelt: https://lniv.fe.uni-lj.si/courses/ndes/LIN_Spec_1_3.pdf https://www.cs-group.de/wp-content/uploads/2016/11/LIN_Specification_Package_2.2A.pdf Diese beiden Spacs sind die wesentlichen. Zwischen 1.3 und 2.x haben sich ein paar Dinge geändert. Du musst sehen, welches Device welcher Spec folgt. Besser gleich beide runterladen. fchk
Hey Norman, ich glaube, wir beide haben eine sehr ähnliche Idee und ich bin mir sogar sehr sicher, dass wir das gleiche Fahrzeug fahren. Vielleicht sollten wir mal in Kontakt treten und können ja evtl gemeinsam was umsetzen? Liebe Grüße Max
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.