Armadilloフォーラム

CAN通信設定について

mato_developer

2019年5月10日 12時52分

上園と申します。

CAN通信を行う必要があるため、Armadillo-440にATB-A400CANを搭載した
環境を2台用意し、Armadillo実践ガイドに掲載されている使用例に従い、
2台のArmadillo間でサンプルのCAN通信を行ったのですが、
受信側に受信結果が表示されません。

2回目以降送信側からメッセージ送信を行った場合、「write: No buffer space available」
が送信側の端末に表示されています。

Armadillo 実践開発ガイドの「2.5. CAN」に記載されている
カーネルとユーザーコンフィグレーションの設定を行っているのは確認しています。

過去の投稿記事を見返しましたが、原因がつかめませんでした。

必要となる情報は、まとめてアップロードしていますので、
原因がお分かりになる方がおりましたら、ご教示をお願いしたく存じます。
また不足している情報等がありましたら、ご指摘をお願いします。

ファイル ファイルの説明
CAN通信情報.zip テスト環境ですが、2台とも同じ環境なのでまとめています
コメント

bamboo

2019年5月10日 14時39分

ATB-A400CAN間はどのような方法で接続されていますでしょうか?

仮に ATB-A400CAN CN3(DSUB 9 ピンオス) 同士をシリアルケーブルで接続されている場合は、
「ストレートケーブル」で接続されているかを確認してみてください。
「クロスケーブル」で接続してしまうと CAN_L と CAN_H が接続されてしまいますので、
バスオフ状態となりCAN通信が行えなくなったと思います。

mato_developer

2019年5月10日 15時11分

早速のご連絡ありがとうございます。

> 「ストレートケーブル」で接続されているかを確認してみてください。
> 「クロスケーブル」で接続してしまうと CAN_L と CAN_H が接続されてしまいますので、
> バスオフ状態となりCAN通信が行えなくなったと思います。

ご指摘の通り、ストレートケーブルで ATB-A400CAN CN3を接続すると
サンプルでの送受信ができました。

社内にあったのがクロスばかりだったのでトライアンドエラーで
確認が遅れました。

ご指摘いただきまして、誠にありがとうございました。