Armadilloフォーラム

Armadillo-440 CAN通信

k.sato

2021年4月21日 9時18分

お世話になります。
佐藤と申します。

Linuxカーネル: linux-2.6.26-at30
ユーザーランド: Atmark Dist v20180330

上記の環境でCON14のCAN2から通信をしたいのですが

https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-3…

このlinux-3.14を参考に設定すれば出来るのでしょうか?

”2.5.5. ipコマンドの準備”をしたところでエラーとなってしまいます。

libnetlink.c: In function ‘rtnl_open_byproto’:
libnetlink.c:46: error: ‘SOCK_CLOEXEC’ undeclared (first use in this function)
libnetlink.c:46: error: (Each undeclared identifier is reported only once
libnetlink.c:46: error: for each function it appears in.)
make[4]: *** [libnetlink.o] エラー 1
make[4]: ディレクトリ `/home/atmark/terada/tcp440/atmark-dist-20180330/user/iproute2/builddir/lib' から出ます
make[3]: *** [all] エラー 2
make[3]: ディレクトリ `/home/atmark/terada/tcp440/atmark-dist-20180330/user/iproute2/builddir' から出ます
make[2]: *** [build] エラー 2
make[2]: ディレクトリ `/home/atmark/terada/tcp440/atmark-dist-20180330/user/iproute2' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/atmark/terada/tcp440/atmark-dist-20180330/user' から出ます
make: *** [subdirs] エラー 1

また、まだCANトランシーバと接続していないのですが
CON14_3をオシロスコープで見ながらcansendすれば確認できますか?

コメント

at_akihito.irie

2021年4月22日 14時09分

入江です。

> https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-3…
>
> このlinux-3.14を参考に設定すれば出来るのでしょうか?
>
> ”2.5.5. ipコマンドの準備”をしたところでエラーとなってしまいます。

お客様が参考にされているマニュアルは、ハードウェア構成などは参考にでき
ますが、linux-2.6.26非対応です。

linux-2.6.26向けの内容は以下のページです。
https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…

カーネルのコンフィギュレーションにて、
https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
の表にあるコンフィギュレーションを有効にしてご使用ください、

通信速度などの設定はsysfsから可能です。

> また、まだCANトランシーバと接続していないのですが
> CON14_3をオシロスコープで見ながらcansendすれば確認できますか?

オシロスコープであればsendに合わせて波形が動くことは確認できると思います。

佐藤です。

返信ありがとうございます。

コンフィギュレーションは有効にできてると思います。

[root (ttymxc1) ]zcat /proc/config.gz | grep CAN | grep =y
CONFIG_FLEXCAN_SELECT2=y
CONFIG_ARMADILLO400_CAN2_CON14=y
CONFIG_ARMADILLO400_CON14_3_CAN2_TXCAN=y
CONFIG_ARMADILLO400_CON14_4_CAN2_RXCAN=y
CONFIG_CAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_CAN_FLEXCAN=y

通信速度などデフォルトであればすぐにcansendしても送信を確認できると思ったのですが、
下記を入力してもCON14_3が振れていないのです。

[root (ttymxc1) /sys/devices/platform/FlexCAN.1]# cat state
Stop::normal
[root (ttymxc1) /sys/devices/platform/FlexCAN.1]# ifconfig can0 up
[root (ttymxc1) /sys/devices/platform/FlexCAN.1]# cat state
Start::normal
[root (ttymxc1) /sys/devices/platform/FlexCAN.1]# cansend can0 5a5#01234567
[root (ttymxc1) /sys/devices/platform/FlexCAN.1]# cat state
Start::normal

何か設定が足りないのでしょうか?

佐藤です。

すみません。
この件なのですが教えていただけませんか?
確認する場所が間違っているのでしょうか?

at_akihito.irie

2021年4月28日 15時08分

入江です。

お返事が遅くなってしまい申し訳ございません。

ひとつ確認させていただきたいのですが、ifconfig can0 up後の初回の
cansend時に波形の変化はありますでしょうか。

[armadillo]# ifconfig can0 down
[armadillo]# ifconfig can0 up
[armadillo]# cansend can0 5A5#01234567 //この時の波形を確認してください

以上、ご確認よろしくお願いいたします。

佐藤です。

> ひとつ確認させていただきたいのですが、ifconfig can0 up後の初回の
> cansend時に波形の変化はありますでしょうか。

確認したところ初回の波形は変化がありました。
申し訳ありません。

[root@(ttymxc1) ]# ifconfig can0 down
[root@(ttymxc1) ]# ifconfig can0 up
[root@(ttymxc1) ]# cansend can0 5a5#01234567
[root@(ttymxc1) ]# cat /sys/devices/platform/FlexCAN.1/state[root@TD1813 (ttymxc1) /home/guest]# cat /sys/devices/platform/FlexCAN.1/state
Start::bus off

正常に送信ができるとStart::bus offになるため
1度しか送信できないのですかね?

at_akihito.irie

2021年4月28日 17時12分

入江です。

> 正常に送信ができるとStart::bus offになるため
> 1度しか送信できないのですかね?

仰るとおりだと思います。

CANトランシーバーや対向機を接続しない状態ではこのような状態になるよう
ですので、これ以上の波形確認はそれらを接続した上で行うことをおすすめし
ます。

以上、よろしくお願いいたします。

佐藤です。

ありがとうございました。

> CANトランシーバーや対向機を接続しない状態ではこのような状態になるよう
> ですので、これ以上の波形確認はそれらを接続した上で行うことをおすすめし
> ます。

以降は相手先を接続し確認します。