Armadilloフォーラム

ATB-AGAD-CANを用いたCAN通信について

kikuchi-kyb

2018年2月21日 18時17分

kikuchiです

標記の件、現在Armadillo-IoT G2とアドオンボードATB-AGAD-CANを用いて
CAN通信の環境構築を行っております。

まずは2台のArmadilloを用いてcan-utilsでの動作確認を行うために
①カーネルコンフィギュレーションを設定
②ユーザーランドの設定(ipコマンドおよびcan-utilsの有効化)
を実施いたしました。

①についてはATDE5にてmenuconfigを起動し、
Linux Kernel Configuration
 System Type --->
[*] Freescale i.MX family
Freescale i.MX support --->
    [ ] Add-On Module Auto Detect
Extension I/F Options --->
 [*] Enable CAN1 at CON1
 [ ] Enable CAN2 at CON1/CON2 ※無効としているのはCON2に別のアドオンモジュールを載せているためです

[*] Networking support --->
<*> CAN bus subsystem support --->
<*> Raw CAN Protocol (raw access with CAN-ID filtering)
<*> Broadcast Manager CAN Protocol (with content filtering)
<*> CAN Gateway/Router (with netlink configuration)
CAN Device Drivers --->
<*> Platform CAN drivers with Netlink support
[*] CAN bit-timing calculation
<*> Support for Freescale FLEXCAN based chips

の様に設定しました。

また、②については
Userland Configuration
Network Applications --->
  [*] iproute2
 [*] ip

Userland Configuration
Network Applications --->
[*] can-utils
[*] cansend
[*] candump
[*] cangen

の様に設定しております。

設定後、カーネルおよびユーザーランドをArmadilloに書込み、Teratermをもちいて2台のArmadilloを立ち上げ
CANインターフェースを起動した後、d-subを用いて2台のArmadilloを接続し、一方はcandumpコマンド、もう一方はcangenコマンドを用いて
通信を試みましたが、受信側のArmadilloでデータが表示されていない状況となっております。
当方Linuxを触るのは今回が初めてであり、分からないことが多く、原因が不明です。
設定が不足している等がありましたらご教授頂きたく。

宜しくお願い致します。

コメント

advaly

2018年2月22日 19時33分

お世話になります。
アドバリーシステムの小林と申します。
弊社製品をご購入して頂きましてありがとうございます。

ご質問の件ですが、通信設定とCANの活性化は
されておりますでしょうか?

-----------------------------------------------------------
■ 通信設定(参考bitrate 125000で動かす場合)
ip link set can0 type can bitrate 125000 triple-sampling on

■ CANポートの活性化
ifconfig can0 up

■ マニュアル
http://www.advaly.co.jp/ATB-AGAD-CAN_manual.pdf
  3.2.4 試験動作を参考にしてください。
------------------------------------------------------------

kikuchi-kyb

2018年2月23日 10時21分

> お世話になります。
> アドバリーシステムの小林と申します。
> 弊社製品をご購入して頂きましてありがとうございます。
>
> ご質問の件ですが、通信設定とCANの活性化は
> されておりますでしょうか?
>
> -----------------------------------------------------------
> ■ 通信設定(参考bitrate 125000で動かす場合)
> ip link set can0 type can bitrate 125000 triple-sampling on
>
> ■ CANポートの活性化
> ifconfig can0 up
>
> ■ マニュアル
> http://www.advaly.co.jp/ATB-AGAD-CAN_manual.pdf
>   3.2.4 試験動作を参考にしてください。
> ------------------------------------------------------------

お世話になります。kikuchiです。

上記記述の件ですが、通信設定およびCANの活性化はしております。
ATB-AGAD-CANのCN3をDsubで接続(2台のCAN_H同士、CAN_L同士を接続)した後
1台はcangenコマンド、もう一台はcandumpコマンドを実行しましたが、通信がなされないという状況です。
他に何か原因等が考えられますでしょうか。念のため、logファイルを添付いたします。

ファイル ファイルの説明
teraterm_送信.log 送信側log
teraterm_受信.log 受信側log

advaly

2018年2月23日 18時48分

お世話になります。
アドバリーシステムの小林です。

頂いたログを確認して125kbpsで通信テストを行いましたが、正常に送受信できました。

確認済みかもしれませんが念のため確認させてください。ケーブルのピンアサインは間違って無いでしょうか?

よろしくお願い致します。

kikuchi-kyb

2018年2月27日 11時01分

> お世話になります。
> アドバリーシステムの小林です。
>
> 頂いたログを確認して125kbpsで通信テストを行いましたが、正常に送受信できました。
>
> 確認済みかもしれませんが念のため確認させてください。ケーブルのピンアサインは間違って無いでしょうか?
>
> よろしくお願い致します。
>
>

お世話になります。
kikuchiです。

ピンアサインですが、ATB-AGAD-CAN_manual.pdfを参照し、CN3のPIN2をCAN_L、PIN7をCAN_Hとして接続しております。
別途CANロガーを用いて通信確認を実施してみましたが、送信・受信共にされていない状況です。

以上、宜しくお願い致します。

kikuchi-kyb

2018年2月28日 13時22分

お世話になります。
kikuchiです。

現在使用しているArmadilloのCON1にATB-AGAD-CANを、CON2には別のモジュールをアドオンしております。
そのため、最初に質問させていただいた際に

System Type --->
[*] Freescale i.MX family
Freescale i.MX support --->
    [ ] Add-On Module Auto Detect
      Extension I/F Options --->
 [*] Enable CAN1 at CON1
 [ ] Enable CAN2 at CON1/CON2 ※無効としているのはCON2に別のアドオンモジュールを載せているためです

と記述いたしましたが、Add-On Module Auto Detectを有効にしたところ通信を行うことができました。
しかしこの方法ではCON2に搭載している別モジュールを動作させることができない問題があります。
そこでAdd-On Module Auto Detectを無効⇒Enable CAN1 at CON1を有効とした状態で通信ができる様に設定したいのですが、他に見直すべき項目等はありますでしょうか。

以上、宜しくお願い致します。