こんにちは、yasです。
いろいろ試しても成功しなかったことと代替方法について情報共有しておきます。
将来試す人が同じように時間を無駄にしないように。
### 動作環境
- 基板A: Target Board for RX65N (MCU: R5F565NEDDFP) 基板加工なし- 基板B: RX65N-2MB-Starter-Kit-Plus (MCU: R5F565NEDDFC)- CS+ for CC V8.08.00 [10 Jun 2022]- CC-RX V3.04.00- CAN FIT v5.21 (v5.30も試用したが同じ結果)- サンプルコード: r01an2472xx0530-rx-can.zipのcan_demo_rskrx65n_2mb.zip
### 症状
RX65N-2MB-Starter-Kit-Plusでサンプルコードを実行し、CANL, CANHともに波形が出ることを確認した (first frameの送信波形)。
次にそれをTarget Board for RX65NのCAN0で使用してみた。(12:VSS, 18:CTX0をオシロスコープに接続)
結果として、CTXの波形が出ずに常に3.3Vが出力される状態になる。ただ、まったく成功しないかというと、二回の実行だけ成功したことがある。(波形が出た同じソフト、ハードでも再現できなかった)
同じ基板のCAN1ではCTXの波形が問題なく出る。
### 試したこと
[1] RX65N-2MB-Starter-Kit-Plusで動作確認したcan_demo_rskrx65n_2mb.zipに対して「マイクロコントローラの変更」およびSmart ConfiguratorでTarget Board for RX65N (v1.12)に設定=> CAN0のCTX0波形出ず (二回の実行だけ出たが再現せず)
[2] 新規プロジェクトでTarget Board for RX65N (v1.12)の設定をしたSmartConfiguratorでコード生成し、can_demo_rskrx65n_2mb.zipの「can_api_demo.h」「demo_board_rx65n_2mb.h」をフォルダに追加。「switches.c」をプロジェクトに追加 。=> CAN0のCTX0波形出ず
[3]: [2]のプロジェクトに対してCAN0の設定をCAN1に変更g_can_channel = CH_1;Smart ConfiguratorでCAN1を使用可能に変更R_CAN_PinSet_CAN0()をR_CAN_PinSet_CAN1()に変更(12: VSS, 32: CTX1をオシロスコープに接続)=> CAN1のCTX1波形が問題なく出た
同じソフトで基板Bでは正常動作している。
MCUの差異の問題なのか、Target Borad for RX65N自身の問題なのかは切り分けできず。
CAN1でとりあえず対応できるので、自分はCAN1を使う予定です。
Target Board for RX65N で、CTX0の波形が出ないという事ですが、CANのトランシーバIC(CTX, CRXをCANH/CANLのCANバスに接続するための変換IC)は外付けされているのでしょうか?
CANは、CRXnがCANバスの信号線を見て動作するので、CRXnがCANバスにつながっていない場合は、CTXnから信号が出なくてもおかしくはないです。
(CANの初期化の際)CANオペレーションモード移行後に…
(CANの初期化の際)CANオペレーションモード移行後に、CANバスが11bitレセシブ(バスに信号がない…CRXnはHレベル)という事を確認した後で通信可能となるので、Target Board for RX65N でCRX0はLレベル、CRX1はHレベルに(たまたま)なっているので、CTX0からは波形が出ないがCTX1からは波形が出るのかも知れません。
thさん、回答ありがとうございます。
トランシーバーを接続することで波形が問題なくでました。
トランシーバーは最初の頃はつけていて、その時は波形はでていなかったのですが、他の部分で間違っていたのかもしれません。
トランシーバーなしでCAN1の波形が見れたのは「たまたま」だったのですね。
これでようやく普通にCAN通信が使えそうです。
ありがとうございます。
CANの理解不足については色々資料を見ておきます。