Hallo zusammen, ich bin im augenblick an meiner Abschlussarbeit und bräuchte dringend hilfe! Ich Habe mir eine Platine erstellt mit einem AT90CAN128 und einem MCP2021 LIN Transceiver. Ich benutze die App note AVR322 und bekomme diese leider nicht umgesetzt im Atmel Studio damit ich LIN Botschaften von einem Master versenden kann. Hat jemand Erfahrung im Programmierien von LIN und würde mir geren helfen gerne auch gegen Geld falls es mich weiter bringt.
Was ist dein konkretes Problem? Zwei wichtige Hinweise in Bezug auf den MCP2021. Die mit dem eingebauten Regulator können ziemliche Divas sein, evtl auch die pinkompatiblen von NXP testen (z.B. TJA2021) - am Ausgang des Voltage Regulators muss ein paar uF keramischer Kondensator, AUCH wenn Du den Ausgang nicht nutzt. Sonst ist die interne Spannung nicht stabil. - CS/WAKE Aufwachsequenz aus dem Datenblatt beachten, sonst kommt da nichts raus. - kommen die Daten aus dem AVR raus?
Hi, ausgehend von deinem posting kann dir nicht wirklich konkret weitergeholfen werden... und mit "ich mach mal eine platine und nehme den source code einer app-note daher" ist es in diesem fall wohl nicht getan ggg du solltest problematik und werkzeuge besser verstehen, wenn es um (D)eine abschlussarbeit geht. ansonsten bist du nur ein weiterer plagiatsheld-karl-theodor... 1. Nimm Deine uC-HW schritt für schritt in betrieb * läuft der at90can - controller auf deiner platine ? * stimmt die Vcc und die cpu-clock configuration (fuses)? * kommst du mit dem debugger drauf ? 2. Nimm deinen LIN-transceiver in betrieb, siehe hinweise von harald * halt das ding statisch wach, der pegel welcher am Tx-pin anliegt, muss mit minimaler verzögerung am Rx-pin auftauchen. das kannst du mit dem avrstudio debugger einfach stimulieren + kontrollieren. bevor das nicht tut, wird der LIN-stack aus der app-note nix gross machen, da die interne state machine zum parsen des LIN-protokolls auf dem rx-interrupt aufsetzt. das ist nicht ungewöhnlich. 3. angenommen deine HW tut jetzt (uC+LIN transceiver) nun SW-inbetriebnahme * die appnote sourcen+projekt sehen nach IAR-compiler aus imho, so du den hast - gut. * wenn nicht, musst du das schicht für schicht nach avr-gcc portieren. ist absolut kein hit, wenn man weiss was zu tun ist. die isr-deklarationen ändern z.B. ... 4. Wenn das alles tut, erst LIN messages von master schicken lassen und mit einem trace-tool oder zur not scope+terminalprogramm validieren. so man hat, z.B. eine PC slave-simulation nutzen (Canoe oder was immer auch) oder einen echten HW-slave anschliessen und mit dem richtigen Message-Header "füttern". Also, wenn du hilfe erbittest - mehr und klare infos zu deinem projekt posten (Schaltplan+layout, welche tools hast du, welche vorkenntnisse), ok ? viel erfolg und motivation am Lernen ! tom.
Tja, ich glaube Marco ist bereits in Panik verfallen, jedenfalls keine Antwort bis jetzt obwohl es doch eilt... Man kann einfach mal eine LIN-Message komplett manuell erzeugen, also ohne das ganze Interrupt-Gelumpe, also: - Nullbyte mit niedrigerer Datenrate (1/2) senden (damit ein Break draus wird) - etwas warten, damit das Break komplett gesendet ist. - Baudrate wieder auf 19200 (oder was immer es sein soll) - 0x55 senden - fix-ID senden (Paritäten händisch ausrechnen) - 1..8 Datenbytes senden - Checksumme senden (händisch ausrechnen) - etwas warten - wieder oben beginnen Scope/Debugger bedienen. Das sind 20 Zeilen Code, wenn das läuft kann man die Appnote in Betrieb nehmen.
Harald schrieb: > Nullbyte mit niedrigerer Datenrate (1/2) senden (damit ein Break draus > wird) > - etwas warten, damit das Break komplett gesendet ist. > - Baudrate wieder auf 19200 (oder was immer es sein soll) > - 0x55 senden > - fix-ID senden (Paritäten händisch ausrechnen) > - 1..8 Datenbytes senden > - Checksumme senden (händisch ausrechnen) > - etwas warten > - wieder oben beginnen Hallo, versuche auch gerade etwas per LIN zu senden. Dazu habe ich mir auch passende Lektüre besorgt. Nun sende ich folgendes per UART: -0x00 (bei halber Baudrate) -0x55 (bei 19200kBaud) -0xf7:0x4a:0x55:0x93:0x5e:0xe6 (dies soll ein Masterframe sein) Leider sehe ich keine Daten, es werden nur Fehlermeldung angezeigt. Ich vermute das ich bei Checksumme oder dergleichen einen Fehler mache. Kann das sein? LG Deniele
Hallo, ich habe gerade festgestellt das mein MCP2003 offensichtlich nicht tut. Am LIN-Pin habe ich immer High-Level. Ich habe ihn aber wie im Datenblatt beschrieben angeschlossen... :-( Gruß Daniela
Und am vorgelagerten TX Pin, was hast Du da? Hab jetzt keine Lust ins Datenblatt zu schauen, was ist beim MCP2003 mit dem Wake Signal?
Hi, was meinst Du mit vorgelagertem TX Pin? Ich habe die TXD und RXD mit den entsprechenden Leitungen am µC verbunden. Wake liegt über 10k an VBB. CS habe ich fest auf 5V gelegt... So habe ich das aus dem Datenblatt interpretiert. Danke... Daniela
So, ich habe mir mal ein Oszilloskop ausgeliehen. Leider eines mit LCD-Display. Offensichtlich kommen keine Signale aus dem MCP2003. Ab und an sehe ich einen Peak, aber nichts plausibles. Habe ich einen Fehler beim Anschluß (siehe oben) gemacht? :-(
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.