Hallo liebe Community, ich bräucht mal wieder eure Hilfe. Ich benötige für ein privates Projekt ein Modul das mir Telegramme von LIN Bus auf CAN Bus umsetzt. Somit sollte das Gerät als Gateway fungieren. LIN Bus: Master, Geschwindigkeit 19.200 bit/s, ID des Slave und deren Telegramme müssen von mir noch ermittelt werden. CAN Bus: 500kbit/s, ID und Data muss noch festgelegt werden, können aber eigentlich frei gewählt werden. Kurz zu dem Vorhaben und warum ich das benötige: Das Ganze findet im Automobilbereich statt, wie ihr sicherlich schon vermutet habt. Ich möchte mir Multifunktionstasten aus einem neueren Model in mein Fahrzeug einbauen und auf meinem zusätzlichen Dashboard verarbeiten. Bei den alten Tasten geht der LIN Bus auf das Steuergerät an der Lenksäule und gibt die CAN Telegramme auf dem Bus aus. Bei den neuen Tasten ist die Verbindung auf einem anderen Steuergerät (Komfort). Ich kann leider das Steuergerät nicht gegen das Neuere austauschen, da diese zu unterschiedlich sind. Das Komfort Steuergerät und die Tasten hab ich bereits da und bau die Testschaltung bereits auf, um die LIN Bus Telegramme aufzuzeichnen und zu analysieren. Da es mir am Oszilloskop ein wenig zu umständlich ist, habe ich mir den "LIN Serial Analyzer" von Microchip raus gesucht und werde ihn morgen bestellen. Ich erhoffe mir ein klein wenig leichtere Analyse. Ebenfalls hab ich noch einen Arduino R3, ein CAN Bus shield von seeed und einen PCAN-USB von Peak hier aus einem anderen Projekt. Mir ist allerdings aufgefallen, dass ich zu wenig Ahnung habe was immer auf diesen Shields und fertigen Platinen passiert. Da ich beruflich auch viel mit CAN Bus und Elektronik zu tun habe möchte ich somit meine Kenntnisse vertiefen. Ich möchte nun die benötigte Schaltung auf einem Steckbord aufbauen und am Ende die Tasten drücken und die Telegramme mit dem CAN-Peak auslesen. Den "LIN Analyzer" hab ich bei Farnell gefunden und wollte auch gleich die benötigten Chips mitbestellen. Doch da fangen jetzt meine ersten Probleme und Fragen an. Wie "entwickelt" man eine solche Schaltung am besten? Ich seh da für mich folgende Probleme: - Welcher LIN und CAN transceiver - Welcher Mikrocontroller - Wie kann ich eine ordentliche Spannungsversorgung realisieren Was mir bewusst ist, dass es Elektronik in einem Fahrzeug auf Grund der Spannungspitzen überhaupt nicht leicht hat (Abwerfen Lichtmaschine, Zünden der Scheinwerfer etc.) Ich hab mir jetzt folgende Bauteile mal genauer angesehen: MCP2004A (LIN transceiver), MCP2515(CAN Controller), MCP2562 (CAN transceiver) Vor allem stell ich mir die Frage, ob es besser ist auf einen Controller zu setzten, der die Hardware für CAN und LIN bereits an board hat oder lieber auf separate Bauteile. Wo liegen dort jeweils die Vor- und Nachteile? Mir ist klar, dass durch separate Bauteile der Controller entlastet wird. Gleichzeitig kann es Probleme mit der Übertragung bzw. Handling zwischen den Bauteilen geben. Ich vermute aber, dass der Controller nicht unbedingt bei der Anwendung entlastet werden muss. Wenn alles im Controller sitzt, gibt es ja meist fertige Libs die verwendet werden können. Doch wie wählt man den richtigen Controller aus? Wie geht ihr da vor? Ich habe bei Microchip.com den "part selector" angeworfen. Allerdings komm ich da nach dem Filtern immer noch auf unzählige Controller... Könnt ihr mir da vielleicht ein wenig unter die Arme greifen und Tipps geben was ich mir genauer an evtl. Schnittstellen, Bauteilen ansehen soll? Leider gibt es so viel zu dem Thema, dass man vermutlich den Wald vor lauter Bäumen nicht mehr sieht. Ich bin auch schon auf folgendes Board gestoßen "Teensy CAN-Bus and LIN-Bus Breakout Board withTeensy 3.2" Doch da sind wir wieder bei einer fertigen Schaltung und ich versteh danach wieder nicht, warum es so ausgelegt wurde oder eventuell nicht ausgelegt werden sollte. Viele Dank, Grüße Stefan
Stefan E. schrieb: > Ich seh da für mich folgende Probleme: > > - Welcher LIN und CAN transceiver Mehr oder weniger egal. Zumindest alle LIN-Transceiver die ich bisher in den Händen hatte waren auch automotive-geeignet. Bei CAN sieht es ein bisschen anders aus, ist aber auch nicht schwer was passendes zu finden. > - Welcher Mikrocontroller Idealerweise einer mit internem CAN, Auswahl auch reichlich. Wenn du den MCP2515 als CAN-Controller benutzen möchtest: fast jeder beliebige MC mit UART (LIN) und SPI (MCP2515). 8k Flash und 1kB RAM sollten völlig ausreichen. ATMega88 wäre völlig ausreichend. Tiny441 tuts auch (4k) > - Wie kann ich eine ordentliche Spannungsversorgung realisieren Die Frage kannst du mit nur wenig Suchfleiss selbst beantworten.
Stefan E. schrieb: > Ebenfalls hab ich noch einen Arduino R3, ein CAN Bus shield von seeed > und einen PCAN-USB von Peak hier aus einem anderen Projekt. Dann hast du ja schon alles Nötige zusammen. > Ich möchte nun die benötigte Schaltung auf einem Steckbord aufbauen und > am Ende die Tasten drücken und die Telegramme mit dem CAN-Peak auslesen. > Wie "entwickelt" man eine solche Schaltung am besten? Welche schaltung? Du musst doch nur den Arduino mit dem CAN-Shield verbinden. Das sind 6 Drähte. > Ich seh da für mich folgende Probleme: > - Welcher LIN und CAN transceiver Der CAN-Transceiver ist doch schon auf dem CAN-Shield drauf. Für LIN nimmst du irgendeinen, völlig egal. > - Welcher Mikrocontroller Völlig egal, das kann jeder. > - Wie kann ich eine ordentliche Spannungsversorgung realisieren. Beitrag "12V KFZ Versorgungs-Schaltung aus de.dse-faq"
Stefan E. schrieb: > Bei den alten Tasten geht der LIN Bus auf das Steuergerät an der > Lenksäule und gibt die CAN Telegramme auf dem Bus aus. Nachtrag: Handelt es sich bei dem CAN-Bus für die Tasten um einen Highspeed-Bus oder einen Fault-Tolerant Low-Speed? Seite 18: https://cta.physik.uzh.ch/public/theses/files/2014-WidmerTimothy-Bachelor.pdf Für Low-Speed braucht man einen anderen CAN-Transceiver.
Hallo Jungs, Erstmal vielen Dank für eure Antworten! H.Joachim S. schrieb: > Stefan E. schrieb: >> Ich seh da für mich folgende Probleme: >> >> - Welcher LIN und CAN transceiver > Mehr oder weniger egal. Zumindest alle LIN-Transceiver die ich bisher in > den Händen hatte waren auch automotive-geeignet. Bei CAN sieht es ein > bisschen anders aus, ist aber auch nicht schwer was passendes zu finden. >> - Welcher Mikrocontroller > Idealerweise einer mit internem CAN, Auswahl auch reichlich. Wenn du den > MCP2515 als CAN-Controller benutzen möchtest: fast jeder beliebige MC > mit UART (LIN) und SPI (MCP2515). 8k Flash und 1kB RAM sollten völlig > ausreichen. ATMega88 wäre völlig ausreichend. Tiny441 tuts auch (4k) >> - Wie kann ich eine ordentliche Spannungsversorgung realisieren > Die Frage kannst du mit nur wenig Suchfleiss selbst beantworten. Thomas O. schrieb: > ATMEGA16M1/32M1/64M1 der hat sowohl LIN als auch CAN-Controller > integriert. Auf Grund der Bauteile Flut auf dem Markt, ist für mich als Neuling nicht ganz klar nach welchen Spezifikationen gewisse Bauteile ausgewählt werden. z.B. welchen Controller wähle ich aus und welche Vor- und Nachteile haben gewisse Punkte wie: LIN Controller onboard oder über Software lösen. Ich bin auch zuvor schon auf den ATMEGA16M1 gestoßen. Mich hat aber die QFN32 Bauform ein wenig abgeschreckt, da ich sowas noch nie gelötet hab und es auch keine Sockel und Adapter dafür gibt. Nur diese Programmieradapter für 100€+ und das war mir eigentlich zu viel. Da ich aber die Vorteile des Controllers mit den Schnittstellen Controller onboard sehe, hab ich mir jetzt 2 Stück in den Warenkorb gelegt. War gar nicht einfach welche zu bekommen... Zusätzlich hab ich noch ein Breakout besorgt und versuche mal meine Lötkünste. Es gibt ja schon sehr Hilfreiche Beiträge im Forum. Als Backup gibt's noch einen ATMega88, falls was schief läuft. Einen 16 / 8 MHzQuarz, nen Schwung Kerkos (100nF/22nF) sind noch da. Vom LIN Transceiver (MCP2004) hab ich mir das Datenblatt nochmal angesehen und die zusätzlichen Bauteile (Z-Dioden, Abblockkondensator und Widerstände) besorgt. Für den CAN gibt es einen MCP2562 Transceiver mit VIO Pin. Falls die ATMega16M1 nicht wollen, hab ich für den ATMega88 noch das CAN shield hier. Ich hab mir mal den Beitrag zur Spannungsversorgung durchgelesen. Das hat einen Nachmittag gedauert, um alles halbwegs zu verstehen. Jetzt hab ich aber definitiv ein besseres Verständnis für die Prüfung. Thomas F. schrieb: >> Ich möchte nun die benötigte Schaltung auf einem Steckbord aufbauen und >> am Ende die Tasten drücken und die Telegramme mit dem CAN-Peak auslesen. > >> Wie "entwickelt" man eine solche Schaltung am besten? > > Welche schaltung? Du musst doch nur den Arduino mit dem CAN-Shield > verbinden. Das sind 6 Drähte. > >> Ich seh da für mich folgende Probleme: > >> - Welcher LIN und CAN transceiver > Der CAN-Transceiver ist doch schon auf dem CAN-Shield drauf. > Für LIN nimmst du irgendeinen, völlig egal. Mir ging es vor allem bei dem Projekt darum, nicht einfach fertige Shields zu verwenden. Ich wollte ein wenig verstehen, warum welche Bauteile mit auf die Platine müssen. Leider sind einige Shields auch nicht sauber dokumentiert und man weiß nicht was da alles so mit drauf ist. Die Vielzahl der Bauteile ist auch so riesig, dass ich nie verstehe wie man da das richtige Teil finden soll? Vielleicht bin ich auch mit dem Thema zu wenig bewandert und es kommt durch die Erfahrung. Die hohe Schlagzahl in diesem Forum ist auch unglaublich! Das macht die Suche nach bestimmen Antworten auch nicht immer leichter, da vieles zwischen den Zeilen steht. Viele Dank auf jeden Fall für eure Unterstützung! Soll ich mal paar Bilder, Telegramminformationen der Tasten und Zwischenstände zum Projekt hier reinstellen oder ist das eher unübersichtlich für das Forum? Viele Grüße Stefan
LIN-Unterstützung in Hardware habe ich noch nie gebraucht, der einzige Unterschied zur normalen UART ist die Break-Erzeugung (master) bzw. erkennung (slave). Kann man nutzen wenn da, den Controller danach aussuchen wenn anderes dagegenspricht (Bauform z.B.) nein. Und dein geplantes System wird sich die ganze eh nur langweilen.
Ok, halten wir mal fest: Du brauchst: - handhabbares Gehäuse (SOIC oder DIP) - CAN integriert (extern ist immer nur eine Notlösung und bedeutet mehr Aufwand) - einen LIN-fähigen UART, der BREAK-Signale erzeugen und erkennen kann - nicht viele IOs Ich hab Dir da mal den hier rausgesucht: DSPIC33EP256MC502 https://www.microchip.com/en-us/product/dsPIC33EP256MC502 Digikey hat den in SOIC und DIL vorrätig. Der erfüllt alles, ist mit 3.75€ in Einzelstückzahlen nicht allzu teuer, mit 70MHz, 256k Flash und 32k auf jeden Fall mehr als ausreichend, und Du kannst ihn problemlos verarbeiten und als DIL-Chip auf einem Steckbrett ausprobieren. Alternativen: DSPIC33EP256GP502 (hat etwas andere Peripherie, stört Dich aber nicht. Pinout ist kompatibel.) DSPIC33EP128MC/GP502 (128k Flash und 16k RAM) DSPIC33EP64MC/GP502 (64k Flash und 8k RAM) IDE, Compiler und Softwarebibliotheken gibts bei Microchip, als Debugger reicht ein PICKT3-Clone vom Chinamann für maximal 20€. LIN- und CAN-Transceiver brauchst Du als 3.3V Version - da hast Du dann die freie Auswahl. Diese Chips sind meist pinkompatibel und von verschiedenen Herstellern erhältlich, eigal ob TI, ON, Microchip, ST... fchk
Frank K. schrieb: > LIN- und CAN-Transceiver brauchst Du als 3.3V Version LIN Transceiver haben in der Regel nur einen VBat Anschluss und der RXD-Ausgang ist Open-Collector, sprich da gibt es keine 3,3V Version. High-Pegel für die TXD und Enable Eingänge ist dann so 2V mindestens. Und der VIO Pin an einem 3,3V tauglichen CAN-Transceiver ist jetzt auch nicht nur für 3,3V.
Frank K. schrieb: > Ich hab Dir da mal den hier rausgesucht: > DSPIC33EP256MC502 Vielen Dank für das raus suchen! Die PICs hatte ich gar nicht auf dem Schirm... Hab in der Vergangenheit nur einfache AVRs gemacht. Wie hast du jetzt aber den Controller raus gesucht? Das ist das, was ich bis jetzt noch nicht ganz verstanden habe... Vermutlich über den "MICROCHIP ADVANCED PART SELECTOR" auf der Microchip.de oder? Da muss für die Filterung ausgewählt werden: LIN CAN -> Number of CAN Moduls -> 1 Aber ich hab jetzt nicht die Möglichkeit den Gehäuse Typ (DIP) zu filtern oder bin ich blind? Ich glaub, das sind die Kleinigkeiten die fehlen um sowas eigenständig hin zu bekommen. Frank K. schrieb: > IDE, Compiler und Softwarebibliotheken gibts bei Microchip, als Debugger > reicht ein PICKT3-Clone vom Chinamann für maximal 20€. Hab mir überlegt vielleicht gleich den PICKIT 4 zu besorgen, um ihn auch für die AVRs nutzen zu können. Aktuell hab ich nur den "myAVR mySmartUSB MK2" zum Übertragen. Frank K. schrieb: > LIN- und CAN-Transceiver brauchst Du als 3.3V Version - da hast Du dann > die freie Auswahl. Diese Chips sind meist pinkompatibel und von > verschiedenen Herstellern erhältlich, egal ob TI, ON, Microchip, ST... Rudolph R. schrieb: > LIN Transceiver haben in der Regel nur einen VBat Anschluss und der > RXD-Ausgang ist Open-Collector, sprich da gibt es keine 3,3V Version. > High-Pegel für die TXD und Enable Eingänge ist dann so 2V mindestens. > Und der VIO Pin an einem 3,3V tauglichen CAN-Transceiver ist jetzt auch > nicht nur für 3,3V. Richtig, der LIN Transciever MCP2004 wird über die Boardspannung versorgt. Beim MCP2562 liegt VDD bei 5V und der VIO zwischen 1.8V und 5.5V und kann somit mit einen 3.3V Controller betrieben werden, oder? Danke für eure Hilfe! Grüße Stefan
Stefan E. schrieb: > Frank K. schrieb: >> Ich hab Dir da mal den hier rausgesucht: >> DSPIC33EP256MC502 > > Vielen Dank für das raus suchen! > Die PICs hatte ich gar nicht auf dem Schirm... > Hab in der Vergangenheit nur einfache AVRs gemacht. Ja, ja, die meisten Leute verbinden "PIC" nur mit dem alten 8-Bit Zeug. > Aber ich hab jetzt nicht die Möglichkeit den Gehäuse Typ (DIP) zu > filtern oder bin ich blind? Die kleinen Gehäuse mit bis zu 28 Pins sind bei den "echten" Microchip-Produkten (nicht dem zugekauften Zeugs) fast immer auch als DIL erhältlich. Das weiß man irgendwann. Ich suche gerne bei Digikey. Dann weiß ich auch, ob ich das ausgewählte auch tatsächlich bekomme. > Ich glaub, das sind die Kleinigkeiten die fehlen um sowas eigenständig > hin zu bekommen. > > Frank K. schrieb: >> IDE, Compiler und Softwarebibliotheken gibts bei Microchip, als Debugger >> reicht ein PICKT3-Clone vom Chinamann für maximal 20€. > > Hab mir überlegt vielleicht gleich den PICKIT 4 zu besorgen, um ihn auch > für die AVRs nutzen zu können. Ist klug. > Richtig, der LIN Transciever MCP2004 wird über die Boardspannung > versorgt. Ich hatte letztens einen LIN-Transceiver mit eingebautem LDO verbaut (NCV7428), da war natürlich die Ausgangsspannung wichtig. Dadurch wird ein kleiner LIN-Slave recht einfach. > Beim MCP2562 liegt VDD bei 5V und der VIO zwischen 1.8V und 5.5V und > kann somit mit einen 3.3V Controller betrieben werden, oder? Ja. Das ist ein Dual-Supply Transceiver mit VCC (5V) und VIO (3.3V). Es gibt auch reine 3.3V-Transceiver, die nur einen 3.3V VCC haben und keine 5V mehr brauchen, z.B. https://www.ti.com/lit/ds/symlink/sn65hvd230.pdf Das spart Dir die 5V-Versorgung, wenn Du ansonsten nirgendwo anders 5V brauchst. Wenn ich die 5V-Versorgung woanders noch brauche, sind mir die Dual-Supply Transceiver lieber. fchk
Stefan E. schrieb: > Da es mir am Oszilloskop ein wenig zu umständlich ist, habe ich mir den > "LIN Serial Analyzer" von Microchip raus gesucht Schon ausprobiert? Kannst du den Microchip-Analyzer dafür empfehlen? Ich überlege noch, ob ich mir den kaufe oder einen USBLINI aufbaue https://www.fischl.de/usblini/
Rudolph R. schrieb: > LIN Transceiver haben in der Regel nur einen VBat Anschluss und der > RXD-Ausgang ist Open-Collector, sprich da gibt es keine 3,3V Version. Außerhalb der Regel schon, z.B. der MCP2021 - aber die haben ja keine Ahnung. https://ww1.microchip.com/downloads/en/DeviceDoc/20002018H.pdf
ich habe damals mit so nem Adapter angefangen. So schwer ist das nicht. Eine Linie Lötpaste einmal außen rum, möglichst weit an der Außenseite der Lötflächen, Chip drauflegen dann noch ne Linie Flussmittel über die Beinchen Dann jeweils 2 Ecken festgelötet also Chip festhalten und kurz mit dem Lötkolben an einen Eckpin und dann gegenüber auf einen anderer Eckpin. Danach mit dem Lötkolben einmal außen rum. Ich würde auf externe Controller verzichten. Wenn das integriert ist schreibst du einfach in die Register, wenn nicht, muss das dann noch extra extern übertragen werden. Es gibt High Speed Tranceiver (MCP2551 ggf. Nachfolger MSC2561) die auch Lowspeed können also bis hinter auf 16 kbit/s. Oder geht es dir darum das es noch mit nur einer CAN-Leitung läuft?
Daniel E. schrieb: > Schon ausprobiert? Kannst du den Microchip-Analyzer dafür empfehlen? Ja, hab schon alle Telegramme mitgeschnitten und ausgewertet die ich brauch. Am Anfang hatte ich ein wenig Probleme mit der richtigen Baudrate (19,2kBits) und um die Signale sauber rein zu bekommen. Mir zeigte es des öfteren Checksummen Fehler oder nicht vollständige Nachrichten an. Das Schreiben dauerte auch ein wenig. Hab es dann auf einem anderen Rechner versucht und da lief es sofort. Leider musste ich auch die Version 2.0.0.4 verwenden, da bei mir keine CD Datei war und auf der Homepage der Link für die 3.0.0.0 ins leere geht... Es kommt wirklich drauf an was du damit vor hast. Ich arbeite beruflich öfters mal an CAN und muss da mitlesen und schreiben. Dort verwende ich was von Peak Systems und das ist schon was anderes, was die Analysesoftware angeht. Mich stört auch ein wenig der Daten Export, es kann da keine CSV oder Text Datei erstellt werden, der die rein mitgeschnittenen Telegrammen speichert. Beispiel: "{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs17 00791,472 73 FE 0F 00 00 FF FF 00 FF 7E enhanced 19231 \par \pard\cf0\fs17\par }" Ich hab es dann als PDF gedruckt und wieder in Excel eingelesen. Wenn es finanziell möglich ist und sowas öfters genutzt werden soll, würde ich mir einen kombinierten CAN und LIN analyzer von Peak oder IXXAT ansehen. Da war ich bis jetzt auch immer sehr mit der Software zufrieden. Guest schrieb: > Ich würde auf externe Controller verzichten. Wenn das integriert ist > schreibst du einfach in die Register, wenn nicht, muss das dann noch > extra extern übertragen werden. > > Es gibt High Speed Tranceiver (MCP2551 ggf. Nachfolger MSC2561) die auch > Lowspeed können also bis hinter auf 16 kbit/s. Oder geht es dir darum > das es noch mit nur einer CAN-Leitung läuft? Vielleicht würde ich beim nächsten Projekt auch ein paar Teile anderst aussuchen. So lernt man mit jedem Projekt dazu. Für mich ist es immer noch schwer sich durch den Bauteiledschungel zu kämpfen. Da es später im KFZ Bereich eingesetzt wird, war für mich wichtig, dass die Bauteile generell schon einen recht hohen Schutz haben. Wie meinst du mit nur noch einer CAN Leitung?
Stefan E. schrieb: > Ja, hab schon alle Telegramme mitgeschnitten und ausgewertet die ich > brauch. Danke für die Info und deinen Erfahrungsbericht zur Software. Das werde ich mir im Vorfeld dann nochmal genauer ansehen. Ist für Hobby, die teuren Adapter kommen daher nicht in Frage.
Daniel E. schrieb: > Danke für die Info und deinen Erfahrungsbericht zur Software. Das werde > ich mir im Vorfeld dann nochmal genauer ansehen. Ist für Hobby, die > teuren Adapter kommen daher nicht in Frage. Hallo Daniel, ich hab gestern eine Mail vom Microchip Support bekommen. Sie haben die Software für den LIN Serial Analyzer wieder hochgeladen und die Software ist jetzt wieder bereit für den Download. Ich hab eben mal kurz die Software installiert und das Logging getestet. Es sieht viel besser aus als vorher. Damit müsste man jetzt auf jeden Fall was anfangen können. Zur richtigen Analyse benötigt man immer noch ein externes Tool. Für das meiste müsste es aber Excel reichen.
Also gerade für was langsames wie LIN kann man auch einen Logic-Analyzer verwenden, wenn es nur darum geht zu lauschen. Dafür braucht es dann auch keinen teuren Adapter, 10 Euro für einen einfachen Clone und Sigrok/Pulseview. Damit bekommt man dann auch heraus, warum die Frames kaputt sind und nicht nur, dass sie kaputt sind, etwa wenn das Break zu kurz ist.
Hallo Rudolph, da hast du recht. Wenn man wirklich sehen möchte was auf dem Bus los ist, braucht man einen Logik-Analyzer oder ähnliches. Es ist aber beim LIN auch komfortabel, wenn man gleich einen automatischen Response einleiten kann. Ebenfalls zum einfachen auslesen der Telegramme, ist meiner Meinung nach, ein reiner LIN Analyzer einfacher und übersichtlicher. Jedes Tool hat seine Berechtigung und es muss im Vorfeld betrachten was gebraucht wird.
Das Programm für den Controller hab ich vor einigen Tagen mit Erfolg fertig bekommen und gleich mal mit allen Teilen auf dem Breadbord getestet. Durch eure Hilfe hab ich das echt zum Laufen bekommen. Vielen Dank an euch! Als ich das ganze aber auf dem Steckbrett so gesehen habe, stellte ich fest, dass es vermutlich nicht leicht und hübsch wird, alle Teile auf eine Lochrasterplatine zu packen... Nach 15 Minuten Youtube über PCBs stellte ich fest, dass es vermutlich doch nicht all zu schwer ist Platinen professionell fertigen zu lassen. Ich war all die Jahre eine Raketenwissenschaft und ich war der Meinung sowas würde zig Euro oder Unmengen an Stückzahl bedeuten! Da ich eine Fusion360 Abo Version hab musste ich nicht mal groß was installieren und hab sofort damit angefangen. Am Anfang war es sehr holprig, aber nach ein paar Tutorials von Autodesk ging es dann ganz gut. Ich hab euch mal ein paar Bilder vom Layout und der Platine angehangen. Da ihr ja schon wisst, dass ich auf dem Gebiet völliger Anfänger bin, hätte ich die Bitte vielleicht mal kurz auf die Bilder zu sehen, ob ihr typische Anfängerfehler findet? Oder ihr könnt mir Tipps geben vorauf ich besonders achten soll, da es meistens beim ersten mal meistens falsch gemacht wird? Ich hab die Leiterbahnbreite für das 12V Netz auf 59 mil 5V Netz auf 25 mil 3.3V Netz auf 10 mil, alle weiteren Verbindungen auf 6 mil gemacht. Auf dem 12V Netz dürften normal maximal 2,5A, 5,5V Netz 1,0A und 3.3V Netz 0,3A unterwegs sein. Da hab ich auch den Artikel von euch über Leiterbahnbreite herangezogen. Das ganze möchte ich beim Aisler machen lassen oder würdet ihr mir davon abraten? Ich vermute es ist für euch jetzt schwierig eine Aussage über die Platine zu treffen, da ihr nicht mal das Schaltbild dazu habt. Ich möchte aber jetzt auch nicht, dass ihr mir nochmal alles im Detail überprüft. Mir geht es um Grundliegende oder typische Anfängerfehler. Viele Grüße Stefan
Stefan E. schrieb: > Nach 15 Minuten Youtube Naja gut, immerhin ehrlich 😄 Das Board stammt vom Autorouter? Mach es lieber manuell. Die Spule gehört zu einem Schaltregler? Da gibt es hier eine beliebte Methode mit Stromschleifen das Layout zu optimieren. Der Quarz sollte auch anders angebunden werden.
Andre schrieb: > Naja gut, immerhin ehrlich 😄 Ich bin immer ehrlich 😉😄 Ich hab mir natürlich schon ein wenig mehr dazu angesehen, aber bei den meisten Videos von Autodesk geht es eigentlich nur um das Handling mit den Bibliotheken oder den Funktionen innerhalb von Fusion. Ein detaillierteres Video zur Erstellung von PCBs hab ich leider nicht gefunden. Du merkst vermutlich schon, dass mir Wissen und einige tiefere Hintergründe zur Erstellung von Leiterbahnen fehlen. Vermutlich bin ich aber auch wieder zu blöd die Suchfunktion richtig zu verwenden... Der Quarz muss näher an den IC oder? Zur Spule: Ziemlich am Anfang wurde hier der Link für eine Spannungsversorgung im 12V KFZ-Netz gepostet. Beitrag "12V KFZ Versorgungs-Schaltung aus de.dse-faq" Diese wurde mal EMV getestet und die hab ich so 1:1 übernommen. Andre schrieb: > Da gibt es hier eine beliebte Methode mit Stromschleifen das Layout zu > optimieren. Kannst du das vielleicht ein wenig ausführlicher erklären oder mir nen Tipp geben wo ich darüber mehr nachlesen kann? Ja, das kommt zum größten Teil aus dem Autorouter. Wo liegt der Vorteil beim manuellen routen bzw. was mach der Autorouter falsch? Ich hab es zweimal mal versucht komplett von Hand zu routen. Am Schluss kam ich mit den Pads nicht mehr zusammen und ich musste einiges wieder auf trennen und umlegen oder n haufen Vias setzen. Ist vermutlich aber auch nur Übungssache oder? Ich glaub auch inzwischen, dass die Platine vielleicht eine Nummer zu groß für den Anfang ist 😅
> Andre schrieb: >> Da gibt es hier eine beliebte Methode mit Stromschleifen das Layout zu >> optimieren. > > Kannst du das vielleicht ein wenig ausführlicher erklären oder mir nen > Tipp geben wo ich darüber mehr nachlesen kann? Hier mal ganz banal aufgezeichnet. Im oberen Beispiel hast du einen riesige Schleife die über das ganze Bord geht. Im unteren Beispiel ist diese schon viel kleiner, das ließe sich dann noch so optimieren wenn VCC und GND genau übereinander liegen würden, also VCC auf der oberen Platinenseite und GND auf der unteren Platinenseite. Umso kleiner die Schleifen ausfallen desto schlechter Strahlen sie ab und dann ist noch entscheiden wie steil die Flanken auf dieser Leitung ausfallen, wenn man möglichst nah am Baustein abblockt dann hat man diese Schwankungen nicht auf dem ganzen Stück der Leitung sondern nur auf einem relativ kurzen Stück. So als Buchthema könntest du dir soetwas anschauen. EMV Design Richtlinie EMV gerechtes Gerätedesign PCB Layout ..... https://www.mikrocontroller.net/attachment/241743/doc2521.pdf Schau dir mal die Bilder 2-1 und 2-2 an, da siehst du einmal die große Stromschleife und einmal die kleine mittels Abblockung, möglichst nah am µC.
:
Bearbeitet durch User
Die Leiterbahnen für den Quarz hab ich ja voll übersehen... Langsam versteh ich, warum der Autorouter sparsam verwendet werden soll. Hab es jetzt gestern nochmal manuell versucht, aber ich muss mir das nächste mal noch mehr Gedanken bei der Platzierung der Bauteilen Gedanken machen. Vor allem bei der Spannungsversorgung. Ich hab gestern noch ein Springer Fachbuch gefunden. Dort war ein kleiner Teil über PCB Layout und EMV drin. Ich werd mir aber mal ein eigenes Fachbuch besorgen. Bis auf die langen Spannungsleitungen ist es glaub schon ein Stück besser oder?
Gibt es auch einen Schaltplan dazu? Ich kann in den Bildern gerade weder LIN noch CAN entdecken.
Stefan E. schrieb: > Da ihr ja schon wisst, dass ich auf dem Gebiet völliger Anfänger bin, > hätte ich die Bitte vielleicht mal kurz auf die Bilder zu sehen, ob ihr > typische Anfängerfehler findet? Ein Layout zu beurteilen, ohne den Schaltplan und die verwendeten Bauteile zu kennen, ist müßig. Und Anhand von PNG-Files macht das sowieso keinen Spaß. Es gibt hier genug Leute, die mit den Eagle-Dateien umgehen können. Warum mischt du THT und SMT an Stellen, wo es wirklich nicht nötig ist? Die Positionen der Befestigungsbohrungen dürften kaum zu einem handelsüblichen Gehäuse passen. Muss das PCB so groß sein? Für den Bereich um den Quarz gibt es Musterlayouts vom µC-Hersteller. Normalerweise gibt der vor, dass die Masse für die Lastkondensatoren direkt bei den Oszillator-Pins abgenommen werden soll. Du hast eine ganze Menge "Fernleitungen" auf dem PCB - muss das sein?
Da hab ich wieder mal den Schaltplan nicht mitgeschickt... Tut mir leid Wolfgang, hier der Schaltplan als Screenshots (Sorry nochmal, schon wieder Bilder) und die Fusion Datei. Zu der Mischung kommt es aus folgendem Grund. Ich hab noch ein paar Bauteile mehrfach da, die ich verbauen wollte (MCP2562/MCP2004A/dsPIC33) und zum anderen war der Mikrocontroller die letzten Wochen nicht in anderer Bauform verfügbar. Ebenfalls ist der MCP2562 immer noch schwer in einem SMD Gehäuse zu bekommen. Die Größe des PCB war mir nicht so wichtig, da ich "Platz" hab. Ich hatte an bedeutend anderen Baustellen zu kämpfen, wie ihr ja mitbekommt und wollte mir da nicht noch mehr Probleme bereiten. Die Befestigungspunkte sind ebenfalls am Ende entstanden. Ich drucke mir ein Gehäuse im 3D Drucker, da ich gleichzeitig die entsprechenden Haltepunkte für die Befestigung im Fahrzeug anbringe. Ist am Ende vermutlich paar Euro teurer, aber es passt perfekt an die dafür vorgesehene Stelle. Ich hab gleich noch einen zweiten LIN Transceiver eingebaut inkl. Versorgung, dass ich das Board als LIN/LIN Gateway auch nutzen könnte. Die zwei LEDs sind zum Debuggen. Ebenfalls der Eingang (JP5) über die zwei Stiftleisten soll später eine Debug Funktion aktivieren. Auf der linken Seite des Bords ist der CAN Transceiver inkl. Abschlusswiderstand, Pogrammier-Schnittstelle, Reset, 2x LEDs und 1 Eingang über Jumper. Auf der rechten Seite befindet sich die 2 LIN Transceiver inkl. Spannungsversorgung (Falls die als Master agieren sollen) Danke nochmals für eure Hilfe!
die TVS Diode würde ich eins nach rechts schieben, dann kannst du die Drossel als Begrenzungswiderstand verwenden, so das die Spannung auch zusammenbricht. Vorrausgesetzt die Drossel hat nen Widerstand der nicht zu niedrig ist. In deinem Fall würde bei einer längeren Überspannung die TVS Diode irgendwann durchbrennen und dann kommt die Überspannung auf deine Spannungsregler.
Die beiden TVS Dioden im LIN Teil sind eher sinnlos, den Job vor Transienten zu schützen hat doch schon TVS1. Die Master-Jumper für den LIN bringen für sich noch nichts, die Kondensatoren müssen von 220pF (eigentlich 180pF) auf 1nF geändert werden. 1N4148 gibt es auch als SMD in 0805 und 1206. D3 und D5 würde ich auch weg lassen, die fackeln so eh nur ab wenn die Spannung auf dem LIN zu hoch wird.
Da hast du Recht, die TVS kann ich weg lassen. Hab ich nicht mehr überprüft, als ich das Beispiel vom Datenblatt des MCP2004 angesehen und übernommen hab. Die Kapazität wird doch nicht beim umschalten zwischen Master und Slave nicht geändert oder? Bei der Diode das gleiche Thema wie bei den anderen Bauelemente, ich hätte noch welche da, aber ich glaub ich sollte einfach überall SMD verwenden.
Stefan E. schrieb: > Die Kapazität wird doch nicht beim umschalten zwischen Master und Slave > nicht geändert oder? Doch, Master hat 1nF, Slave hat 180pF.
Stefan E. schrieb: > Tut mir leid Wolfgang, hier der Schaltplan als Screenshots (Sorry > nochmal, schon wieder Bilder) und die Fusion Datei. Ich meinte jetzt keinen Fusion Moloch, sondern Eagle Schaltplan und Board
Rudolph R. schrieb: > Doch, Master hat 1nF, Slave hat 180pF. Ich bin mal kurz über die Spezifikation des LIN Bus geflogen und hab eine Interessante Tabelle gefunden (LIN_Spez_Kapazität.png). In der Tabelle steht, dass Master/Slave typischerweise 220pF haben. Die gesamte Kapazität des BUS muss aber 1nF betragen. Bei 1x Master und 4x Slave wären die "typisch" verwendeten Kondensatoren ausreichend. Werden weniger Slaves verwendet, müsste die Kapazität am Master höher sein. Kann mir mal jemand erklären warum es so verwirrend spezifiziert wird? Am einfachsten wäre doch gleich eine größere Kapazität an dem Master festzulegen oder liege ich da falsch? Bei den ganzen Schaltungen die ich bis jetzt im Internet gefunden hab, wird auch immer der 220pF Kondensator verwendet, egal ob Slave oder Master... Wie hier zum Beispiel bei Microchip und deren LIN Serial Analyzer. Ist es wirklich nochmal, dass sich hier keiner an die Spez hält??
Wolfgang schrieb: > Ich meinte jetzt keinen Fusion Moloch, sondern Eagle Schaltplan und > Board Echt mühsam mit den ganzen Anfängern oder? Es tut mir leid...
Stefan E. schrieb: > Auf der rechten Seite befindet sich die 2 LIN Transceiver inkl. > Spannungsversorgung (Falls die als Master agieren sollen) Schmeiss die Spule am Eingang raus. Du hast keine Störquellen auf der Platte, die einen LC-Pi-Filter am Eingang erfordern, und bei extern eingekoppelten Störungen macht Dir das Ding mit seinen Eigenresonanzen eher Ärger. Die TVS am Eingang brauchst Du nicht bestücken, da der TLE42754 Automotive-konform ist und 45 V Eingangsspannung verträgt. Loaddump geht heute nur noch bis 32 V und die ISO-Pulse drückt Dein Elko platt. Wenn Du Automotive-Bauteile für die CAN- und LIN-Transceiver verwendest (NXP oder Infineon), dann brauchst Du dort üblicherweise keine ESD-Bauteile. Die TVS würde ich vorsehen aber nicht bestücken.
Stefan E. schrieb: > Bei den ganzen Schaltungen die ich bis jetzt im Internet gefunden hab, > wird auch immer der 220pF Kondensator verwendet, egal ob Slave oder > Master... Ich habe mir gerade mal die LIN Spezifikation 1.3, 2.0 und 2.2A dazu angesehen und Du hast Recht, da steht überall 220pF für Master und Slave drin, dann wird man das auch so machen können. Die Ursache für die Verwirrung liegt in dem Lastenheft eines großen Automobil Konzerns das mir vorliegt und welches für den Master einen anderen Bereich fordert mit einem Default-Wert von 1nF. Warum auch immer. Schön dass ich über das Thema gestolpert bin, dann werde ich diese Anforderung in dem USB/LIN Interface an dem ich gerade schnitze mal geflissentlich ignorieren. :-)
Stefan E. schrieb: > Ich bin mal kurz über die Spezifikation des LIN Bus geflogen und hab > eine Interessante Tabelle gefunden (LIN_Spez_Kapazität.png). > > In der Tabelle steht, dass Master/Slave typischerweise 220pF haben. > Die gesamte Kapazität des BUS muss aber 1nF betragen. Es ist immer gefährlich, in irgendwelche aus dem Zusammenhang gerissenen Daten etwas wild hinein zu interpretieren. Wenn man den ganzen Abschnitt 6.5.5 liest, ergibt sich eine ganz andere Bedeutung. Es geht um die Abschätzung der Buskapazität unter Annahme typischer Werte für die in der Tabelle 6.11 zusammengefassten Parameter. Die Tabelle sagt, dass sich aus der Rechnung Gl.13 ein C_Bus von 1nF bis 10nF ergibt. In der Gleichung steht nämlich neben den Kapazitäten von Master und den Slaves auch die spezifische Kabelkapazität multipliziert mit der Kabellänge drin. https://www.cs-group.de/wp-content/uploads/2016/11/LIN_Specification_Package_2.2A.pdf p.s. Und wenn du schon eine Tabelle irgendwoher kopierst, könntest du wenigstens eine vernünftige Quellenangabe in Form eines eindeutigen Links machen.
Rudolph schrieb: > Die Ursache für die Verwirrung liegt in dem Lastenheft eines großen > Automobil Konzerns das mir vorliegt und welches für den Master einen > anderen Bereich fordert mit einem Default-Wert von 1nF. > Warum auch immer. In dem Lastenheft des "großen Automobil Konzerns" wird IMHO auch gefordert, dass die Kommunikation mit 10nF Bus-Last getestet werden muss.
Wolfgang schrieb: > In dem Lastenheft des "großen Automobil Konzerns" wird IMHO auch > gefordert, dass die Kommunikation mit 10nF Bus-Last getestet werden > muss. Nicht in dem was ich habe, die Unterlagen zum Test sind ein eigenes Dokument. Aber in dem was ich habe steht zum Beispiel noch, dass das LIN Interface so nah wie möglich an den Stecker zu bringen ist, was für CAN auch gilt. Also die allgemeine Aufteilung der Platine hier ist noch nicht so optimal, wie auch auch bereits angemerkt wurde.
Wolfgang schrieb: > p.s. > Und wenn du schon eine Tabelle irgendwoher kopierst, könntest du > wenigstens eine vernünftige Quellenangabe in Form eines eindeutigen > Links machen. Da hast du Recht. War nicht schlau von mir einen Screenshot der Tabelle, ohne den Dokumentenkopf oder anderweitigen Anhaltspunkt zu veröffentlichen. Danke, dass du den Link online gestellt hast! Jetzt aber nochmal kurz zu dem Kapitel 6.5.5 in der LIN Spezifikation 2.2A Dort wird doch beschrieben wie die "RC Zeitkonstante" berechnet werden kann. Diese wird benötigt um sicherzugehen, dass eine Flanke des Bus Signal innerhalb der spezifizierten Zeit liegt. Es ist eine Beispielrechnung aufgeführt wie "C-BUS" und "R-BUS" berechnet wird, um daraus die "RC Zeitkonstante" zu berechnen. Im Text steht jetzt auch noch, dass die Kapazität des Masters höher gewählt werden kann, um einen gewissen Puffer sicherzustellen, da eventuell unklar ist wie viele Slaves am BUS angeschlossen sind. >"The capacitance of the master module can be chosen higher than in the slave modules, in order >to provide a ’buffer’ in case of network variants with various number of nodes." Die Tabelle 6.11 die ich zuvor angehängt hatte, zeigt doch einige spezifizierte Werte, wie zum Beispiel: die Min/Max Kapazität am BUS (C-BUS) An keiner anderen Stelle der Spezifikation hab ich andere Angaben gesehen. In dem Fall würde ich dem Lastenheft das dem Rudolph vorliegt recht geben. Wenn nicht klar ist was dahinter hängt, lieber dem Master einen 1nF Kondensator spendieren. Jetzt aber zu dem eigentlichen Punkt. Warum werden dann in den ganzen Analyzer (z.B. Microchip) nur 220pF verwendet? Das wäre ja dann eigentlich falsch oder? Wenn nur 1 Slave angeschlossen wird, wäre es außerhalb der Spezifikation. Sorry, vielleicht steh ich auf dem Schlauch, ich möchte es aber Wissen. Nicht, dass ich noch mehr Halbwissen verbreite.
Ich hab den Sonntag mal her genommen, um die ganzen Anmerkungen von euch umzusetzen. Die Spule am Eingang ist weg. Alle Bauteile in SMD, außer der MCP2004 (nicht verfügbar und noch in DIP hier) Neues Layout mit Stecker näher am LIN und CAN. Ein paar Bauteile wurden auf die Rückseite verlegt. Ich hab alle Footprints für die TVS und ESD Bauteile drauf gelassen. Da das Board vermutlich meist mit nur 2 Schnittstellen (LIN-CAN / LIN-LIN) verwendet wird können dann die Bauteile wie benötigt bestückt werden. Ich werd morgen noch den 1nF Kondensator für die LIN Master Funktion mit einsetzen.
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.