はじめに
こんにちは!はしもとかずさです
今日はCANable 2.0(nano/pro)のFD対応を行ったので忘れないようにメモしておきます
公式ファームだとFDに対応していないのでフォークされたものを書き込む形になります
改造版candlelightのビルド
こちらのフォーク を使用します
git clone https://github.com/kazu-321/candleLight_fw_canable_v2_fd
cd candleLight_fw_canable_v2_fd
sudo apt-get install gcc-arm-none-eabi
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/gcc-arm-none-eabi-8-2019-q3-update.cmake
make
これでファームウェアのビルドが完了です
書き込み
sudo apt install dfu-util
で書き込みツール(dfu)を入れます
CANableのボタンを押しながら接続することでDFUモードにすることができます
make flash-canable2_fw
で自動的に書き込まれます
確認
gemini君がつくったツール を利用することでSTM32等でFDの設定を楽に行うことができます
udevルールを使ってボーレートなどを自動的に設定することもできます
SUBSYSTEM=="usb", ATTR{idVendor}=="1d50", ATTR{idProduct}=="606f", ATTR{serial}=="004A00433136500C2039384D", SYMLINK+="can", MODE="0666", \
RUN+="/sbin/ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on", \
RUN+="/sbin/ip link set can0 up"
↪ $ ip -details link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can <FD> state ERROR-ACTIVE restart-ms 0
bitrate 1000000 sample-point 0.750
tq 50 prop-seg 7 phase-seg1 7 phase-seg2 5 sjw 2
gs_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..1024 brp-inc 1
dbitrate 5000000 dsample-point 0.750
dtq 12 dprop-seg 5 dphase-seg1 6 dphase-seg2 4 dsjw 2
gs_usb: dtseg1 1..16 dtseg2 1..8 dsjw 1..4 dbrp 1..1024 dbrp-inc 1
clock 160000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 parentbus usb parentdev 9-1:1.0
dbitrate 5000000や can <FD>などからFDが有効なことがわかります
さいごに
ファームを探すのに2時間以上かかりました()
EtherCATとかもやってみたいですね