Forum: Mikrocontroller und Digitale Elektronik CAN-Bus an dem BeagleBone (ARM)


von F.L.A.M (Gast)


Lesenswert?

Guten Tag, alle Zusammen,

ich habe vor mit dem BeagleBone
(http://beagleboard.org/static/beaglebone/a3/Docs/H...)
über CAN-Bus kommunizieren zu können. Ich habe leider bisher keine
praktische Erfahrung mit dem CAN-Bus, so habe ich da ein paar Fragen,
die mir hoffentlich einer beantworten kann.

Wenn ich das richtig verstanden habe, brauche ich zusätzlich zu dem
CAN-Controller auf dem Board noch einen CAN-Transceiver. Ich habe mich
da für SN65HVD230 von TI entschieden
(http://www.ti.com/litv/pdf/slos346k). An dieser Stelle die Frage, ob
ich mich da richtig entschieden habe?

Dann habe ich noch eine Frage zur Beschaltung. Muss ich da noch was
beachten und dazu schalten? Oder nehme ich einfach den Transciever,
verbinde den mit dem Controller auf dem Board, verbinde R_s ensprechend
um den Modus festzulegen und bin dann fertig? Muss ich mich um den
Abschlusswiderstand kümmern oder rechne ich damit, dass ich an den Bus
angeschlossen werde, der schon abgeschlossen ist?

Wäre für die Antworten sehr dankbar!

von Michelle K. (Firma: electronica@tdnet) (michellekonzack) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wenn Du mit CAN experimentieren willst, empfehle ich Dir den
isolierten CAN Transceiver ISO1050 von Texas Instruments.

Du benötigst dann zwar zusätzlich eine TVS (PSM712-TCT) und
einen DC/DC Wandler Recom RSZ-3.305H, aber Du kannst am CAN
Bus nichts kaputt machen.

Bin habe gerade die drei Bauteile in größerer Menge bestellt
(es sind meine standard Bauteile) und für den Fall das Du sie
nicht einzeln kostengünstig bekommen kannt, schreib mir ne PM.

Ich hänge mal die AppNote von TI hier an

Grüße
Michelle

von Leszek P. (Gast)


Lesenswert?

Erste Prototyp ich habe schon gemacht - 2x High-Speed CAN:
http://www.flickr.com/photos/leszekp/sets/72157628503788231/with/6545862907/

Benutzte CAN Transceiver: Texas Instruments, 3.3V: SN65HVD231

von Doppelhelix (Gast)


Lesenswert?

Hallo Leszek,

habe schon versucht dir aus Flickr zu schreiben, aber das ging nicht.
Leider findet man im Netz wenig bis nichts über Beaglebone & CAN.
Ich möchte ebenso wie Du über CAN kommunizieren. Ich schaffe es 
mittlerweile die Pins zu muxen aber die Richtung steht z.B weiterhin für 
CAN_rx auf output.
Desweiteren erzeugt der Treiber beim laden kein entsprechendes Device.
Oder ich habe da was grundlegendes missverstanden?

Gruß

von Leszek P. (Gast)


Lesenswert?


von Doppelhelix (Gast)


Lesenswert?

Danke für die schnelle Antwort.
Ich habe es mit dem D_CAN probiert ;o) dachte das wären die richtigen. 
Was für ein OS haben Sie auf dem Board? Ich hab das Angstrom mit dem 
Kernel 3.1

Gruss

von Hexxter (Gast)


Lesenswert?

Hi,

bei mir kommen die devs (CAN0 und CAN1) auf dem Beaglebone nicht hoch.

Module                  Size  Used by
vcan                    1560  0
can_bcm                 8379  0
can_raw                 4431  0
can                    19911  2 can_bcm,can_raw
ti_hecc                 5978  0
can_dev                 6783  1 ti_hecc


Sind das die richtigen Kernelmodule oder fehlt was? Muss man irgenwas 
mit dem MUX machen?

von Hexxter (Gast)


Lesenswert?

Evtl ist ja schuld daran weil ich /dev/ttyO1 habe worauf CAN0 und CAN1 
gemuxt ist?
Kann mir jemand einen Tipp geben wie ich die UART los werde?

von Leszek P. (Gast)


Lesenswert?

CAN in Linux ist kein Device wie /dev/ttyXX, sondern eine richtige 
Netzwerk.

Einfach lesen: 
http://processors.wiki.ti.com/index.php/Sitara_DCAN_Linux_Driver

Dann über "can0" und "can1" als Netzwerk Devices adressieren.

Wichtig: Verwenden 2x CAN am der BeagleBone ist nicht Standard, da CAN0 
nutzt die selbe Port für die 2. I2C, welche ist benötigt für die 
"standard" Cape Boards.

Also:
- richtige Cape Boards dürfen nur CAN1 verwenden (kein CAN0)
- meine Board nutzt beide CAN, da ich werde keine Cape Boards nutzen
- 2. I2C muss abgeschaltet sein
- Die GPIO Mode #2 für beide CAN0 und CAN1 muss in Kernel umprogrammiert 
sein

von Hexxter (Gast)


Lesenswert?

Hallo ,

wie kann man den 2. I2C muss abgeschalteen gibt es da einen patch oder 
ist das was in der kernel config?

Vielen Dank,

Hexxter

von mgolbs (Gast)


Lesenswert?

Hallo,

habe auch ein beaglebone und will ebenfalls mit CAN arbeiten. Früher 
habe ich unter Linux mit Hardware von Firma Port ISA_CAN, PCI_CAN und 
dem can4linux gearbeitet http://de.wikipedia.org/wiki/Can4linux . Wäre 
CAN4Linux nicht auch was für Angstrom und beaglebone?

Gruß Markus

von Leszek P. (Gast)


Lesenswert?

Update: Ich habe eine neue Voll BeagleBone-Cape gemacht basiert auf dem 
Breadboard:

http://www.flickr.com/photos/leszekp/sets/72157630668451686/
http://www.flickr.com/photos/leszekp/sets/72157630668557208/
http://www.flickr.com/photos/leszekp/sets/72157630668654642/

Die erste CAN bekommt von TI Sitara selbst, zweite CAN nun von Microchip 
MCP2515 ('Click Board' von mikroe.com)

Es läuft wunderbar mit neustem Angstrom Linux. Das neue Board hat eigene 
EEPROM und lässt sich während Boot vollständig automatisch 
konfigurieren!

von Helmut (Gast)


Lesenswert?

ich versuche momentan verzeweifelt CAN am BeagleBone in Betrieb zu 
nehmen.
Habe mir ein mit buildroot ein linux gebaut. Bekomme can0 auch als 
device an den start und kann im loopback-mode auch Nachrichten 
verschicken und empfangen (socketcan).

Ich habe auch die PinMux uart1_rxd und uart1_txd auf mode2 geschaltet 
und sehe am Oszi aktivität beim Senden von Nachrichten.
Allerdings will mein BeagleBone nicht mit anderen Gerätschaften 
kommunizieren.

Bin für jeden Tipp dankbar.

Grüße
Helmut

von Mountain (Gast)


Lesenswert?

Was sagt denn: 'ip -s -d link show can0' ?

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.