CSIのシミュレーション方法

毎度お世話になっています

CSIのシミュレーション方法をお教えください。

添付図のようにコード生成し、シミュレータ側のフォーマットを設定、mainに送信処理を書いたのですが、シミュレータに表示されず悩んでおりました。

CSIの送信動作は行われてるはずだと思うのですが(送信終了割込みの関数 r_csi11_callback_sendend へジャンプすることを確認)送信したデータがシリアルウインドウに出てきません。

UART0等を試したときは簡単に表示されたので、私のCSI絡みの設定方法が間違ってると思うのですが解決できないでいます。

よろしくお願いいたします。

<追記>

シリアルウインドウ側のフォーマットの「スレーブ」選択を「マスター」にしても表示されません。また速度や波形選択を変更しても表示されないようです。なおCPUは秋月のR5F100LGでCS+は最新版です。

             

  • Mooさん、こんにちは。NoMaYです。

    以下の手順で試したところ以下の画面コピーのように表示されるようになりました。

    手順
    (1) シミュレータGUIのシリアルウィンドウで送信データを設定する
    (2) R_CSI11_Start()まで実行する
    (3) シミュレータGUIのシリアルウィンドウで[自動送信]ボタンを押す
    (4) r_csi11_callback_sendend()まで実行する

    画面コピー

  • NoMaYさん。
    私のところでも見事に出ました!いつも有り難うございます。
    これで追いかけられますが、シミュレータの使い方の問題だと思うんですが、イマイチ意味が分からずでして。
    ・CPU側がマスターでクロックを出す(同時にMOSIを動かす)
    ・スレーブ側(この場合シミュレータ)はマスターのクロックに合わせてMOSIを取り込み、その取り込んだデータをシリアルウインドウに表示する ← ですよね?

    何故にシリアルウインドウから、データ送信をする必要が有るのか理解出来ずでした。よろしければお教えください。
  • Mooさん、こんにちは。NoMaYです。

    >何故にシリアルウインドウから、データ送信をする必要が有るのか
    私は、シミュレータGUIを作った人達の勘違いかな、と思います。CSIというのは送信/受信が同時に行われるもの、という認識なのだろうな、と。確かにCSIの回路的にはそうなのですが、運用として、送信のみ(受信データはAll 0x00等)/受信のみ(送信データはAll 0x00等)という感覚で行われることも少なくない、ことにまで気が回らなかったのかな?と思うのです、、、(気が回らない、ということに関しては、私も人のことを言えませんけれど、、、)

    それで、これを書いていたら、送信データ設定の手間を軽減するやり方が思い浮かびました。以下の画面コピーのように、送信データを0x00にしてフォーマットで[繰り返し]を指定すれば、少し楽が出来そうです。

  • チョコです。
    NoMayさん、
    >シミュレータGUIを作った人達の勘違いかな、と思います。
    私は、勘違いではなく、単なる手抜きだと思います。ダイナミックに送信と受信を切り替えるような使い方をしたり、送受信に設定してデータ送信とダミーデータ送信による受信が行われることを考えると、シミュレータとしてどのように対応するかは難しいところです。
    それなら、ダミーデータを含めてすべて定義させるのが一番簡単な対応になるかと思います。実際の波形に近くなります。

    >CSIというのは送信/受信が同時に行われるもの、という認識なのだろうな、と。
    このように考えるのが一番妥当でしょう。CSIでトラブっているケースでよくあるのは、マスタとして送信するデータはケアしていてもスレーブが送ってくるデータのケアをしてない(ダミー・データを送信してSCK を出力するのをやっていない)はよく見かけます。
    CSIは送受信を同時に行うと考えていれば、トラブルは少ないと思いますよ。
  • >フォーマットで[繰り返し]を指定
    この[繰り返し]はその意味でしたか!
    「連続転送モード」かなにかで使うのかと思っていました。
    「全二重でCPUに送るデータを設定してやらないとシミュレータは動けない」という感じですかね。
    取り敢えずMISOとしてデフォルトでゼロかFFでも出してくれれば有り難かったかもです。
    うむむ~難しいです。
    作る方も大変だろうなと思いますが、使うのもなかなか・・・

    あと、出来ればボーレートやデータフォーマットとかはCPU側の設定にデフォルトで合わせて貰えると助かる気がします。
    CPUの設定と敢えて異なる状態でシミュレート動作させる人は多くないと思うので(UART等もデフォルトでフォーマットを合わせてくれると助かります)。
    詳しい使い方を有り難うございます。
    シミュレートはなかなか便利ですよね。ディレーなどのループ回数を決めるのにも便利してました。