Forum: Mikrocontroller und Digitale Elektronik Pin-Konfiguration am Beaglebone Black


von Kaktusbombe (Gast)


Lesenswert?

Hallo Forum,

ich bin gerade dabei, eine Schnittstellen-Karte für ein Beaglebone Black 
zu entwickeln. Allerdings verzweifle ich gerade bei dem Versuch, den 
"CAN_0" an meinem Beaglebone Black zu initialisieren.

Bei dem CAN_1 funktioniert es prima, wenn ich
1
  config-pin P9_24 can
2
  config-pin P9_26 can
3
4
  ip link set can1 type can bitrate 125000
5
6
  ip link set can1 up
7
8
  cansend can1 080#00
nacheinander in der Konsole eingebe.

Der CAN_0 ist allerdings auf den dritten Steckverbinder (J1) verbunden, 
der standardmäßig als serielle Schnittstelle /dev/ttyS0 initialisiert 
wird.

Leider kann ich mit dem Befehl "config-pin" nicht die Pins auf dem J1 
anwählen.
Kennt einer von euch eine Methode, um den CAN_0 zu initialisieren?

Ich habe bereits gelesen, dass ich es wohl mit einem Device Tree Overlay 
schaffen könnte, aber damit habe ich noch nicht gearbeitet.
Ich bin bislang erst noch an einem bash-Testskript, das die Hardware der 
Schnittstellen-Karte durchtestet.

Ob die Hardware funktioniert, werde ich gleich noch testen, indem ich 
testweise den CAN_1 vom Beaglebone auf den CAN_0 verbinde.

Meine Komponenten sind:
Beaglebone Black (Rev. C)
OS: Debian 9.3
CAN-Tranceiver: ISO 1050

von yesUcan (Gast)


Lesenswert?

echo "uboot_overlay_addr0=/lib/firmware/BB-CAN0-00A0.dtbo" 
>>/boot/uEnv.txt

oder so ähnlich?

von Kaktusbombe (Gast)


Lesenswert?

Unter /lib/firmware finde ich keine "BB-CAN0-00A0.dtbo".
Es gibt nur eine für CAN1:
1
test_root@beaglebone:~# ls /lib/firmware/ | grep CAN
2
BB-CAN1-00A0.dtbo

von yesUcan (Gast)


Angehängte Dateien:

Lesenswert?

Den Rest gibts hier:

git clone https://github.com/beagleboard/bb.org-overlays

von Kaktusbombe (Gast)


Lesenswert?

Danke, ich probiers, sobald ich dazu komm.

von Kaktusbombe (Gast)


Lesenswert?

Ich habe mir die .dts Datei durchgelesen. Aber soweit ich das erkennen 
kann, nutzt der CAN_0 hier die Pins P9_19 und 20. Die kann ich aber 
leider nicht verwenden, weil die Schnittstellen-Platine an IIC-2 den 
Cape-EEPROM und ein weiteres IIC-Modul angeschlossen hat, und die teilen 
sich die selben Pins.
Die Cape-Identifikation funktioniert meines Wissens nur über den IIC2, 
oder?

Laut Schaltplan ( 
https://elinux.org/Beagleboard:BeagleBoneBlack#LATEST_PRODUCTION_FILES_.28C.29 
) ist es theoretisch möglich, den CAN_0 auch noch auf J1 und auf die 
LAN-Verbindung zu leiten.
Aber ich kann wohl kaum die .dts einfach auf J1_4 und _5 abändern, oder? 
Genauso wenig, wie die Funktion "config-pin" den J1 kennt..

Kennt hier jemand einen Weg?

von yesUcan (Gast)


Lesenswert?

Kaktusbombe schrieb:

> Kennt hier jemand einen Weg?

Das Cape-EEPROM Zeug nicht verwenden, und i2c1 konfigurieren?

Das DT ist wohl nur für P8/P9 definiert (am335x-bbw-bbb-base.h)


Oder Robert Nelson mal fragen..

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.