Zusammenfassung
Preisgünstiger Selbstbau CAN-Bus Rückmelder mit zusätzlichen Features, wie Servo Ansteuerung oder S88 Interface.
Hier zwei Beispiele, wie der CANBuster verwendet werden kann:
Sofern kein PIC Programmer vorhanden ist, kann auch ein preiswertes USB-Serial Interface zum Flaschen benutzt werden. Der CANBuster ist
zudem ein sehr preisgünstiges PC-CAN-Interface.
Bestückung
Bauteile
Core
====
U1 PIC18F45K80 oder PIC18F46K80
U2 oder U12 MCP2561 DIL oder SMD
U3 LM7805
U4,U5,U6,U7 LTV-844
C1,C2 100nF RM2,5
C3,C4 22pF RM2,5
C5 47uF RM2,5
C8,C9,C10 100nF RM2,5
D1,D2 LED 3mm 2mA gelb
D3 LED 3mm 2mA rot
D4 BAT43
R1 4k7 Ohm
R2,R3,R4 1k5 Ohm
R13 1k Ohm
R18,R19,R20 10k Ohm
R37 390 Ohm
RR1,RR2 10k Ohm SIL 9-8
R21,R22,R23,R24 47 Ohm SIL 8-4
Q1,Q2 NPN Kleinsignaltransistor z.B. BC547 oder BC549
Y1 16MHz Quarz HC49U-S
J1,J2 RJ45 Buchse MEBP 8-8S
P1,P2 Anschlussklemme 10 Pol 3,5 mm z.B. AKL059-10
JP7 3 Pin Stiftleiste
P9 4 Pin Stiftleiste
P10 2x4 Pin Stiftleiste
P11,JP11 6 Pin Buchsenleiste
P13,P14 Printstecker PSS 254/10G
P15 Anschlussklemme 2 Pol 3,5 mm z.B. AKL059-02
P16 2 Pin Stiftleiste
SW1,SW2 Kurzhubtaster 6x6mm
D11..D162 noch nicht definiert
CAN Transceiver Option - galvanisch getrennt
--------------------------------------------
U8 ISO1050 DUB(R)
I2C
===
R9,R12 3k3 Ohm
P18 Stiftleiste 3 Pin
J3 RJ12 Buchse MEBP 6-6S
PWM
===
P3,P4,P5,P6 Stiftleiste 3 Pin
S88
===
OK6,OK7,OK8,OK9 6N137
C11,C16,C17,C18 100nF RM2,5
R38,R41,R42,R43 390 Ohm
R39,R40,R44,R45 1k Ohm
P12 6 Pin Stiftleiste
2x Sockel 16 Pin
Serielle Verbindung
===================
OK1,OK2,OK3 6N137
C13,C14 100nF RM2,5
R5,R6 390 Ohm
R7,R8,R11 1k Ohm
R10 270 Ohm
Sockel 8, 16 Pins
gewinkelte Buchsenleiste 6 Pol
Sniffer
=======
OK10 6N137
C15 100nF RM2,5
R46 1k5 Ohm
R47 390 Ohm
D7 1N4148
Fehler der Platinen-Version 1
Leider hat die Platine der Version 1 einige Fehler:
- Stromversorung Hohlstecker GND und VCC vertauscht (nicht bestücken)
- USB-Power Pin GND falsch verbunden
- PWM1 und Status LED vertauscht (PIN 16 RC1 und PIN 17 RC2)
Für das einfachen Rückmelden stören diese Fehler nicht - man muss nur die Stromversorgung
entsprechend anpassen.
Die Fehler lassen sich aber auch relativ einfach vor der Bestückung beheben:
- Leiterbahnen am Hohlstecker auf der Voder- und Unterseite auftrennen
- USB Leiterbahn auf der Vorderseite auftrennen und entsprechend verbinden (Bild folgt)
- Pin 16 (RC1) Leiterbahn auf der Vorderseite und Pin 17 (RC2) auf der Rückseite trennen
Wenn die Version1-Platinen aufgebraucht sind, dann wird ein neue, fehlerkorrigierte Version gefertigt.
Lötreihenfolge
Wenn keine galvanische Trennung verwendet wird, sollten zuerst die Brücken JP8, JP9 und JP10 aufgelötet werden. Danach der MCP2561 bzw. ein Equivalent sofern die SMD Variante verwendet wird. Dann sind die Kondensatoren und Widerstände dran. Bevor die IC-Sockel eingelötet werden, sollte man sich vergewissern, das alle Komponen unterhalb der ICs bestückt wurden.
Bootloader und Firmware erstellen
Die Software ist auf Github abgelegt und kann schnell und einfach herunter geladen werden:
sudo apt-get install git gputils gputils-common
cd ~
mkdir RM
cd RM
git clone https://github.com/GBert/misc.git
cd misc/CANBuster/software/fw
make
cd ../bootloader
make
Flashen der CAN-Buster Software
Die Software des CAN-Busters besteht aus zwei Teilen:
- CAN-Bootloader
- CANBuster Firmware
Der CAN-Bootloader ermöglicht einen einfachen Firmware Upgrade ohne das man den CAN-Buster ausbauen muss.
Die CAN-Bootloader kann über zwei Methoden geflasht werden.
Flashen der CAN-Bootloaders mit Pickit2 (Pickit3)
Auf der CAN-Buster Platine befindet sich ein ICSP-Header mit verschränkten Löchern, so das man ohne Löten den CAN-Bootloader mittels Pickit2 programmieren kann. Hier die Sequenz, die ich dazu verwende:
#
cd ~/RM/misc/CANBuster/software/bootloader
make
# bei einem PIC18F45K80
pk2cmd -B/usr/share/pickit2 -PPIC18F45K80 -E -MC -MP -F boot/canbuster-45k80.hex -R -T
# bei einem PIC18F46K80
pk2cmd -B/usr/share/pickit2 -PPIC18F46K80 -E -MC -MP -F boot/canbuster-46k80.hex -R -T
Flashen der CAN-Bootloaders mit FT232RL Board
Zusätzlich zur Pickit2(3) Methode gibt es noch die Möglickeit, einen preiswertes USB2Serial Board als Programmer zu verwenden. Dieses Boad kann nachher als CAN-Seriell-USB Wandler wieder verwendet werden.
Darron Broads PIC Programmer Software Pickle erlaubt es, das Board als Programmer zu verwenden:
cd ~/RM/misc/pickle-ftdi/src/
sudo apt-get install libftdi-dev
make ; sudo make install
mkdir ~/.pickle
cp dotconf/canbuster-ftdi ~/.pickle/config
cd ~/RM/misc/CANBuster/software/bootloader
# bei einem PIC18F45K80
p16 lvp p boot/canbuster-45k80.hex
# bei einem PIC18F46K80
p16 lvp p boot/canbuster-46k80.hex
Für den BPi sieht die Abfolge so aus:
cd
cp .pickle/config_canbuster .pickle/config
git clone --depth=1 https://github.com/GBert/misc
cd misc/CANBuster/software/bootloader/
make
p16 lvp p boot/canbuster-45k80.hex
cd ../fw/
easy-loader -i 666 can0 firmware/canbuster_4xk80_pwm.hex
Flashen der Firmware über CAN-Bootloader
Den Bootloader kann man über mehrere Methoden ansprechen:
- direkt nach dem Starten wird der Bootloader ausgeführt
- durch Drücken der Reset-Taste (nähe LEDs) springt der CANBuster in den Bootloader
- durch ein spezielles CAN-Paket wird der Bootloader aufgerufen
# zuerst ID bestimmen
# mittels CAN Dump CAN Frames beobachten
candump -tA -xe any,0:0,#FFFFFFFF
# CAN Ping
cansend can1 00300300#
# CANbuster antwortet mit z.B. :can1 RX - - 0031B311 [8] 43 42 55 53 01 00 00 40
# 43 42 55 53 ist die ID -> 45425553 80 00 sind die notwendigen Data Bytes
# CAN Bootloader starten
cansend can0 00000301#434255538000
Wenn sich der CANBuster im Bootloader befindet wird das durch schnelles Blinken der Status LED angezeigt.
Sobald der sich der Prozessor des CANBusters im CAN-Bootloader befindet ist das Flaschen über das Programm 'easy-loader' möglich:
# easy-loader installieren
cd ~/RM/misc/CANBuster/software/easy-loader
make ; sudo make install
cd ~/RM/misc/CANBuster/software/fw
make
# PIC18F45K80 und PIC18F46K80 haben die selbe Firmware
# S88 Firmware
easy-loader -i 666 can0 firmware/canbuster_4xk80_s88.hex
# PWM Firmware
easy-loader -i 666 can0 firmware/canbuster_4xk80_pwm.hex
Wenn die Firmware erfolgreich geflascht wurde, ist der CAN-Buster einsatzbereit und die Status-Led blinkt im Herzschlag Rhythmus.
CANBuster als CAN PC-Interface
Der CANBuster ist über die SLCAN-Api ansprechbar. Damit lässt sich z.B. Rocrail nutzen. Oder man verwendet die SocketCAN API:
sudo modprobe slcan
sudo slcand -S500000 /dev/ttyUSB0 can1
sudo ifconfig can1 up
und nutzt dann 'can2lan'. Damit ist der CANBuster neben einem Rückmelder auch ein sehr preisgünstiges CAN-Interface.
Entwicklung
Die Software basiert auf den CAN-CAN Code von Darron Broad. Zudem wird der Debouncing-Code von Peter Danegger verwendet.
Die aktuelle Entwicklung (Hard- und Software) findet man auf Github .
Versionen
Schaltplan Version 1.1
Gerber Daten V1.0
V1.1
- first version
Reduced to the max
Impressum: