Hallo zusammen, ich versuche seit einigen Tagen den SN65HVD230 in Betrieb zu nehmen. Dazu verbinde ich einen PC (USB) mit einem FTDI Adapter und dann die TX, RX, Vcc, Gnd Leitungen zwischen FTDI und CAN Transceiver miteinander. RX und TX werden gekreuzt. Ich kann allerdings keine Informationen zur Konfiguration des Transceivers finden. Irgenwie muss die Baudrate, Parität usw. eingestellt werden. Oftmals läuft so etwas über AT-Befehle. Des Weiteren weiss ich nicht welche Befehlsstruktur bzw.Sequenz ich über UART aufbauen muss um CAN Befehle abzusetzen und zu empfangen. Mache ich einen Denkfehler oder mache ich es mir einfach zu leicht? Der Code für einen Controller dürfte nicht so kompliziert sein. Gibt es vielleicht ein Terminal Programm zum Befehle absetzen dafür? Sorry, ich kenne mich absolut nicht mit CAN in der Praxis aus. Für hilfreiche Infos wäre ich euch sehr dankbar.
:
Bearbeitet durch User
Andreas V. schrieb: > Sorry, ich kenne mich absolut nicht mit CAN in der Praxis aus. CAN ist nicht UART! Ein FTDI-Adapter kann kein CAN. CAN hat recht hohe Anforderungen an das Timing, so daß Du niemals, auch bei langsamen Baudraten nicht, von der PC-Software aus rechtzeitig reagieren kannst. Du brauchst einen Adapter der das CAN in Hardware umsetzt. Der kann dann von mir aus per USB angesprochen werden, entweder über den FTDI oder der Adapter bringt von selbst aus schon USB mit. Lies Dir mal die Grundlagen zu CAN z.B. hier durch: https://de.wikipedia.org/wiki/Controller_Area_Network
Ich wollte den PC als Controller verwenden. Der SN65HVD230 Transceiver sollte CAN in was auch immer umsetzen. Um das was am UART herauskommt bzw eingegeben werden muss geht's mir. Das Timing sollte doch der Transceiver erledigen. Ausserdem sollte der UART richtig konfiguriert sein. Dazu gibt's aber keine Infos.
A. Vatter schrieb: > Ich wollte den PC als Controller verwenden. Der SN65HVD230 Transceiver > sollte CAN in was auch immer umsetzen. FALSCH! 6. Setzen. Der Transceiver ist nur der Analogteil des CAN-Interfaces. Er setzt die 0V/3.3V Spannungspegel auf CAN_TX/CAN_RX auf die differentiellen 2.5V+/-1V das CAN-Busses um. Mehr nicht. Punkt. Dir fehlt der Digitalteil. > Um das was am UART herauskommt > bzw eingegeben werden muss geht's mir. Das Timing sollte doch der > Transceiver erledigen. Nein. Der kann das nicht. > Ausserdem sollte der UART richtig konfiguriert sein. Dazu gibt's aber keine Infos. Klar. Ein UART kann kein CAN. fchk
A. Vatter schrieb: > Ich wollte den PC als Controller verwenden. geht so nicht, der kann durch das USB hindurch nicht schnell genug reagieren > Der SN65HVD230 Transceiver > sollte CAN in was auch immer umsetzen. Nein, ein CAN Transceiver gibt CAN-RXD aus und empfängt CAN-TXD. Die müssen mit einem CAN-Controller verbunden werden. Das sind keine UART-Signale und wenn Du sie mit einem UART verbindest, funktioniert das nicht. > Das Timing sollte doch der > Transceiver erledigen. Nein, das ist nicht seine Aufgabe. Der Transceiver setzt die Spannungspegel um. Der CAN-Controller kümmert sich um Timing, Arbitrierung etc. > Ausserdem sollte der UART richtig konfiguriert > sein. Dazu gibt's aber keine Infos. Schau Dir nochmal das Konzept von CAN genau an. Denk darüber nach wie schnell ein Controller reagieren muss um die Arbitrierung oder das ACK hinzubekommen. Das geht ohne dedizierte Hardware nicht.
Uha... da solltest du nochmal nachlesen. Du hast da einiges falsch verstanden. Der Tranceiver setzt dir nich CAN auf UART um...er stellt nur die physikalische Schicht des CAN-Protokolls dar. Du brauchst trotzdem einen CAN-fähigen Controller und verbindest CAN RX und CAN TX mit Rx und Tx des Tranceivers. Das was du da vor hast wird so niemals funktionieren. Gruß
Der CAN-Transceiver macht aus den 3,3V des CAN-Logik-Signales den richtigen Spannungspegel für CAN (differenzielles Signal). Darum, dass die richtigen Logik-Signale generiert werden kümmert sich ein CAN-Controller. Das leistet der FTDI nicht!
Mea Culpa! Danke das war's! Rx<> Rx und Tx<>Tx. Ich wunderte mich schon! Mann, Mann, Mann... Welchen passenden Controller gibt's für den SN65HVD230? Wie kann man das nur so falsch verstehen.... Wenn man es weiß wird's klar!
A. Vatter schrieb: > Welchen passenden Controller gibt's für den SN65HVD230? z.B der ATSAME51J20A. Der spricht das moderne CAN FD. Der kann auch via USB mit dem PC sprechen..
A. Vatter schrieb: > Welchen passenden Controller gibt's für den SN65HVD230? Der MCP2515 wäre ein verbreiteter Klassiker. Der wird aber per SPI und nicht per UART angebunden. Mir ist jetzt keiner bekannt der direkt UART macht. Wenn Du UART zum PC möchtest, bietet es sich an einen Mikrocontroller mit integriertem CAN-Controller zu verwenden und den dann die Wandlung in ein UART-Protokoll machen zu lassen. Als UART-Protokoll ist da das LAWICEL-Protokoll verbreitet, dafür gibt es u.a. direkten Support im Linux-Kernel. Ein fertiges Opensource-Projekt was letzteres inkl. USB-Wandlung umsetzt wäre z.B. http://linklayer.github.io/cantact/
tinCAN schrieb: > A. Vatter schrieb: > >> Welchen passenden Controller gibt's für den SN65HVD230? > > z.B der ATSAME51J20A. Das ist kein reiner CAN-Controller, sondern ein kompletter Cortex-M4 Mikrocontroller der erst programmiert werden will bevor er CAN nach UART oder USB wandelt. Die Frage des TO nach einem "Controller" ist an dieser Stelle etwas zweideutig, vor allem wenn man die häufige Erwähnung von CAN-Controllern im Thread oben bedenkt.
Das war echt super! Und viel! Danke! Klassiker hört sich für einen Newbie gut an. Das ist bewährt und stabil. Alles Andere überlasse ich erst mal den CAN-Profis; finde ich in jedem Fall interessant für später. Ich guck jetzt erst mal den Befehlssatz bzw. die Funktionen des MCP2515 an. Ich hoffe das ist ein guter Einstieg in die Praxis. PS: Ich bin mir sicher dass ich jeden Theorietest bestanden hätte! Aber das will ich ja nicht... Als Transceiver hätte ich jetzt nicht nur die unterste Schicht im OSI Referenz Modell gesehen, wenn man das überhaupt miteinander vergleichen kann...
A. Vatter schrieb: > Ich guck jetzt erst mal den Befehlssatz bzw. die Funktionen des MCP2515 > an. Ja, der wird oft verwendet, ist aber bei hohen Buslasten (d.h. hoher Geschwindigkeit und viele Pakete) überfordert. Wenn ein USB-CAN Adapter Dein Ziel ist, nimm einen Microcontroller, der sowohl CAN als auch USB eingebaut hat. z.B. den hier: https://www.microchip.com/wwwproducts/en/PIC32MX530F128H Der ist recht leistungsfähig, mit 3€ nicht teuer, und es gibt gute USB-Bibliotheken dafür. Deinen SN65HVD230 solltest Du auch noch mal überdenken. CAN ist ein 5V Standard. CANH und CANL liegen im Ruhezustand auf 2.5V, und im aktiven Zustand wird CANH um 1V nach oben und CANL um 1V nach unten gezogen. Ein 3.3V-Baustein kann aber nicht den vom Standard geforderten Pegel von 3.5V auf CANH erreichen. 3V sind realistischer. Man kann da zwar tricksen, damit es trotzdem funktioniert, aber schön ist das nicht. Wenn es geht, solltest Du einen Transceiver nehmen, der zwei Spannungsversorgungen hat: VIO=3.3V für die Logikseite und BUS=5V für die Busseite. Der MCP2562 wäre z.B. ein solcher Baustein. Der hat dann natürlich kein Problem, die 3.5V auszugeben, und bei einem USB-Adapter hast Du eh 5V vorliegen. fchk
Frank K. schrieb: > Deinen SN65HVD230 solltest Du auch noch mal überdenken. TI sieht das weniger kritisch: http://www.ti.com/lit/an/slla337/slla337.pdf
Vor einigen Monaten kaufte ich mir einen "CAN Transceiver" MCP2515.Achtung das ist ein CAN Controller! Der wird halt nur oft falsch ausgezeichnet. Verdrahtung wie im Bild. Ich hoffe das erspart Arbeit. Mit 3.3V Betriebsspannung sollte der SN65HVD230 laut Datenblatt laufen. !!!Alles ohne Gewähr!!!
Der MCP2515 läuft von 2.7V bis 5.5V. So kann ich ihn mit einer USB2SPI Bridge mit 3.3V ansteuern. Der SN65HVD230 hat 3.3V. Gesamte Betriebsspannung wäre somit 3.3V aber stabillisiert.
vielleicht einen ATMega16M1 nehmen der kann UART und CAN so das du mit dem PC kommunizieren kannst, musst nur noch das Programm schreiben und neben deinem CAN-Tranceiver noch einen Pegelwandler ala MAX232 oder eben so nen USB-RS232 FDTI nehmen.
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.