Armadilloフォーラム

CON7でのCAN使用方法について

oota-h

2021年5月26日 14時51分

お世話になっております。太田と申します。
armadillo-x1 の CON7 に独自の拡張基板を挿してCAN通信をしようとしております。
CON7のCANポートはデフォルトではアドオンボードの認識用にI2C-3となっているようでしたので、
御社の公式マニュアルなどを参考にさせていただきまして、下記のような変更を加えたあとSDイメージを作成し、Armadilloに焼きました。
1. u-bootのI2C機能の無効化
u-boot_2016.07-at20/board/atmark-techno/x1/x1.c
1293-1294行目をコメントアウト
2. カーネルのI2C機能の無効化
System Type --->
[*] Freescale i.MX family --->
[ ] Add-On Module Auto Detect
3. CANおよびその他周辺機能のデバイスツリーの作成

これらの変更を適応したOSをインストールして、起動時のメッセージを確認すると添付テキストのように
無効化したはずのI2C-3がすでにポートを使用しており、CANの有効化ができていないようです。
どのような修正を行えばよいでしょうか?
変更したu-bootソース、dtsファイルも合わせて添付します。
よろしくおねがいします。

ファイル ファイルの説明
dmesg_can.txt Armadillo起動時メッセージ
20210526_can.zip
コメント

at_akihito.irie

2021年5月26日 15時34分

入江です。

起こっている現象としては仰るとおり、dts上で既に当該ピンをI2Cとして設定
しており、その上でCANに設定しようとしているため重複してエラーが起こっ
ているようです。

当該ピンをI2Cに設定している箇所は、
arch/arm/boot/dts/armadillo_x1_addon.dtsiです。

Armadillo-X1のアドオンモジュールを使用しないのであれば、
arch/arm/boot/dts/armadillo_x1.dtsから、armadillo_x1_addon.dtsiを
includeしないようにすれば回避できるかと思いますのでお試しください。

armadillo-x1.dts内

#include "imx7d.dtsi"
#include "armadillo_x1_addon.dtsi"  <- この行を削除 or コメントアウト
#include "armadillo_x1-ext-20210216.dtsi"

入江さま

返信ありがとうございます。
ご指摘の通り、include文をコメントアウトしてdtbを再度makeするとCANが認識できるようになりました。
サポートいただき、ありがとうございました。

ファイル ファイルの説明
dmesg_ipa_can.txt Armadillo起動時メッセージおよび ip a コマンドメッセージ