1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RXファミリーのCANサンプルコードで拡張CAN IDモードが動かなかった件

Posted at

はじめに

去年末からマイコン系の作業を振られるようになりました。
Arduinoの次は、RXってレベルアップし過ぎでは?と思いつつ作業している途中、RXファミリーのCAN通信用のサンプルコードで拡張CAN IDモードが動かなかった件に躓いたので、同じように困っている人向けの記事。
ビルドなどの細かな手順は省略してます。

#環境

  • ボード:RX71M-Starter-Kit-Plus
  • IDE:Renesas e² studio(Version: 2022-01 (22.1.0))
  • CANコンポーネント:r_can_rx rev.5.20
  • ツールチェーン: Renesas CCRX v.3.03.00
  • サンプルコード:r01an2472xx0520-rx-can.zip内のcan_demo_rskrx71m.zip

#サンプルコード修正箇所

  • src/demo/can_api_demo.c
    ループバックモードでテストするために、232行目のコメントアウトを解除
//api_status = R_CAN_PortSet(g_can_channel, CANPORT_TEST_1_INT_LOOPBACK);
  • r_can_rx_config.h
    拡張CANIDモードにするために、81行目のSTD_ID_MODEEXT_ID_MODEに変更する。
#define FRAME_ID_MODE   (STD_ID_MODE)

#現象
起動時にシリアルモニターに「Success! Sent first CAN frame.」と出力されるはずが、出力されない。
より詳細には、R_CAN_TxSetXidで送信用のデータセットした後、データが送信されず、送信状態のまま(R_CAN_TxCheck()の戻り値が、R_CAN_NO_SENTDATA(0x08)のまま)になる。

#原因
下のように、FRAME_ID_MODESTD_ID_MODEの時は、R_CAN_Control(g_can_channel, OPERATE_CANMODE);が呼ばれているが、EXT_ID_MODEでは呼ばれていない。
OPERATEモードにしないと送受信始まらないので、そりゃ動きませんわ。

    /***************************************************
     * Try to send very first frame. Stop if no success.
     ***************************************************/
    if (FRAME_ID_MODE == STD_ID_MODE )
    {
        R_CAN_Control(g_can_channel, OPERATE_CANMODE);
        api_status |= R_CAN_TxSet(g_can_channel, g_mb_mode, CANBOX_TX, &tx_dataframe, DATA_FRAME);
    }
    else
    {
        api_status |= R_CAN_TxSetXid(g_can_channel, g_mb_mode, CANBOX_TX, &tx_dataframe, DATA_FRAME);
    }

#対策
EXT_ID_MODEの場合でも、R_CAN_Control(g_can_channel, OPERATE_CANMODE);を実行するようにする。

#最後に
マイコン開発はプログラムが悪いのか、ハードが悪いのか(故障含む)の問題切り分けノウハウが無くて辛い。
あと、ルネサスさん。サンプルコードに含まれている説明書に、「動作確認環境」の項目にRX71Mがありましたが、どんな確認しているんですかねぇ。
とりあえず、明日ルネサスの株売っておきますね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?