教えてください
CAN FDの64Byteペイロードを考慮するために送信バッファをマージモードで使用します、マージ後、一つのチャンネルに対し、いくつ送信バッファーが使用できるか
知りたいので、ご教授ください。
私の理解ですと、6つの送信バッファをマージして一つのマージ送信バッファーを作りますが
そもそも基本の送信バッファーは一つのチャンネルに対して16個の送信バッファーが割り振られているので
マージ送信バッファーは一つのチャンネルに対して二つしか取れないで正しいでしょうか?
つまり、16バッファ/6送信バッファ=2バッファー余り4バッファと考えています。
よろしくお願いします。
フランさん
こんにちはNAKAといいます。
僕は、RH850F1KMを使いましたが、
HWマニュアル「24.10.1.5 バッファの設定」に以下記載がありますよ!
【記載内容】
受信バッファとFIFO バッファで使用可能なRAM は最大28672 バイトです。次の条件を満たすように設定してください。
受信バッファ数×(12+ペイロード格納サイズ)+受信FIFO バッファx の(段数×(12+ペイロード格納サイズ))の合計+送受信FIFO バッファk の(段数×(12+ペイロード格納サイズ))の合計≦28672 バイト
ちなみに僕は、CAN-FDの8chのうち、主用途に5ch、簡易モニタ用に1chを使用しましたので
5ch×64段×(12+64ペイロード) +1ch×48段×(12+64ペイロード) =27968
27968 < 28672 なので条件に合います。
こんな感じで使いました。(^^)/
RCFDC0.CFDCFCC0.UINT32 = 0x00C01070; //CFITT(0x00b:送信インターバル 無関係?) HWM_p2058 //CFDC(110b:FIFO段数64メッセージ) ※★上限あり 128段だと3chまで!! //CFTML(00000b:送信バッファリンク 無関係?) //CFIGCV(1/8格納時(無関係?) //CMIF(1:1メッセージ受信毎) //CFITR_? CFITSS_? //CFM(00b:受信モード) //CFPLS(111b:64byte FDに備えて) //CFTXIE(0:送信割込み禁止) //CFRXIE(1:受信割込み許可) //CFE(1:送受信FIFOバッファをとりあえず停止 最後で有効にする)