Armadilloフォーラム

PEAK製PCAN-USB変換器を使用時のKernelConfiguration設定方法

tamuki

2024年2月8日 14時40分

tanukiです。

armadillo-420を以下環境で使用しております。
・開発環境:atde5-amd64-20191016.tar.gz
・Atmark-Dist:atmark-dist-20191216.tar.gz
・Linuxカーネル:linux-3.14-at13.tar.gz

CAN通信を実施するために、ArmadilloのHPで案内のあった「ATB-A400CAN」を以前購入しましたが、
販売終了との事から今後予備品の購入が出来ないため、
PEAK製PCAN-USB変換器「IPEH-002021-343892」をArmadillo-420から使用しようとしています。
以下に示すようにCAN通信が出来る事は確認済みです。
・Armadillo-420 - ATB-A400CAN - CAN通信機器:通信OK
・ノートPC(WIN) ー PEAK製PCAN-USB変換器 - CAN通信機器:通信OK

以下の製品マニュアルの2.5.4項にKernel Configuration設定が記述されていますが、
この設定は「ATB-A400CAN」を使用した場合なのでは?と想定しています。
USB接続した場合にはどのように設定すれば良いのかご教授頂きたいです。

 「
  Armadillo 実践開発ガイド
  ~組み込みLinux の導入から製品化まで~
  第3 部
  Version 3.0.0
  2015/10/26
 }

 以下のKernel Configuration設定(<?>箇所)が必要なのかも気になっています。
 Kernel Configuration
  Networking support
   CAN bus subsystem support
    CAN Device Drivers
     CAN USB interfaces
      <?>PEAK PCAN-USB/USB Pro interfaces

基本的な質問で申し訳ありませんが、よろしくお願いします。
以上

コメント

at_ohsawa

2024年2月8日 14時57分

> 以下の製品マニュアルの2.5.4項にKernel Configuration設定が記述されていますが、
> この設定は「ATB-A400CAN」を使用した場合なのでは?と想定しています。

正しいです。推定の通り、そのkernel configはSoCに内蔵のflexcanコアを使って
外付けのCANトランシーバーを動かすコンフィグなので、完全なCANコアを内蔵した
USB用では無いですね。

>  以下のKernel Configuration設定(<?>箇所)が必要なのかも気になっています。
>  Kernel Configuration
>   Networking support
>    CAN bus subsystem support
>     CAN Device Drivers
>      CAN USB interfaces
>       <?>PEAK PCAN-USB/USB Pro interfaces

この?になっているconfigの箇所で、スペースキーを押して<*>の状態にしてください。
また、CAN bus subsystemの有効化は別途必要なので、先のマニュアルにある
以下の部分は有効にしてください。

Linux Kernel Configuration
    Networking --->
      <*> CAN bus subsystem support ---> ← チェックを入れる
      <*> Raw CAN Protocol (raw access with CAN-ID filtering) ← チェックが入っているのでそのまま
      <*> Broadcast Manager CAN Protocol (with content filtering) ← チェックが入っているのでそのまま

これでビルドすることで、CANのサポートと、PEAK PCAN-USB用のドライバが組み込まれたkernel
イメージが作られるはずです。
当該のデバイスを持っていないので、過不足あるかわからないのですが、ビルドして確認してみてください。

正しく動けば、USB接続した後のsyslogに、デバイスの検出と上のドライバをアタッチした旨が出て、
ネットワークインターフェースとしてcan0が(ATB-A400CANと同じように)使えるはずです。

tamuki

2024年2月15日 13時35分

tanukiです。

> 正しく動けば、USB接続した後のsyslogに、デバイスの検出と上のドライバをアタッチした旨が出て、
> ネットワークインターフェースとしてcan0が(ATB-A400CANと同じように)使えるはずです。
>>

アドバイスありがとうございます。

以下に示すようにCANドライバ、PCAN-USB共に認識されました。

CAN device driver interface
~
peak_usb 1-1:1.0: PEAK-System PCAN-USB adapter hwrev 84 serial FFFFFFFF (1 channel)
peak_usb 1-1:1.0 can0: attached to PCAN-USB channel 0 (device 255)
~
can: controller area network core (rev 20120528 abi 9)
can: raw protocol (rev 20120528)
can: broadcast manager protocol (rev 20120528 t)
can: netlink gateway (rev 20130117) max_hops=1
~

以下に示すコマンドを用いて、ダンプ結果が表示される事を確認出来ました。

# ip link set can0 type can bitrate 1000000
# ip link set can0 up
# candump can0