シリアル通信について

初めまして、キキです。

先日からRL78のマイコンで開発を行っているのですが、
シリアル通信がどのように動いているのか理解できずに困っています。

とても初歩的な質問かもしれませんがどうぞよろしくお願いいたします。

シリアル通信を自動生成しましたが、自動生成したソースの利用方法がわかりません。

こちらサンプルソースなどはどこかにないのでしょうか。


・送受信をしたいのですが、受信のみ、送信のみは可能なのでしょうか。
・R_CSI01_Stopはどのときにする必要があるのでしょうか。

Parents
  • チョコです。

    追加でコメントします。

    下の図は、RL78/G12のCSIスレーブのアプリケーションノート(R01AN1370JJ0110)の図を画面キャプチャしたものです。

    最初の1バイトはマスタからスレーブにコマンドを送ったものです。この間、スレーブの出力はハイになっています。

    次の2バイト目と3バイト目はスレーブからのデータがスレーブのSO出力から出力されていて、その間マスタからの出力はハイ・レベルに固定されています。これが、代表的な送信や受信のタイミング図になります。

    残念ながら、このアプリケーションノート及のサンプル・コードはアセンブラ記述なので、そのままは利用できないかもしれません。

    コード生成を利用しているなら、「コード生成ツール ユーザーズマニュアル RL78 API リファレンス編」(R20UT4323JJ)を参照してみてください。スマート・コンフィグレータを利用しているなら「スマート・コンフィグレータ ユーザーズマニュアル RL78 API リファレンス編」(R20UT4852JJ)を参照してください。

    通信は相手があることなので、具体的な通信相手でプログラムが変わってきます。探してみましたが、安念ながら適当なサンプルコードは見つかりませんでした。

    通信で初心者が一番引っかかるところが、送信や受信を行う関数から戻ってきても、その時点では通信は完了いていないことです。

    具体的なRL78と通信あいてのデバイス、やりたいことが分かれば、何か参考になるコードは提供できるかもしれません。

    以上

Reply
  • チョコです。

    追加でコメントします。

    下の図は、RL78/G12のCSIスレーブのアプリケーションノート(R01AN1370JJ0110)の図を画面キャプチャしたものです。

    最初の1バイトはマスタからスレーブにコマンドを送ったものです。この間、スレーブの出力はハイになっています。

    次の2バイト目と3バイト目はスレーブからのデータがスレーブのSO出力から出力されていて、その間マスタからの出力はハイ・レベルに固定されています。これが、代表的な送信や受信のタイミング図になります。

    残念ながら、このアプリケーションノート及のサンプル・コードはアセンブラ記述なので、そのままは利用できないかもしれません。

    コード生成を利用しているなら、「コード生成ツール ユーザーズマニュアル RL78 API リファレンス編」(R20UT4323JJ)を参照してみてください。スマート・コンフィグレータを利用しているなら「スマート・コンフィグレータ ユーザーズマニュアル RL78 API リファレンス編」(R20UT4852JJ)を参照してください。

    通信は相手があることなので、具体的な通信相手でプログラムが変わってきます。探してみましたが、安念ながら適当なサンプルコードは見つかりませんでした。

    通信で初心者が一番引っかかるところが、送信や受信を行う関数から戻ってきても、その時点では通信は完了いていないことです。

    具体的なRL78と通信あいてのデバイス、やりたいことが分かれば、何か参考になるコードは提供できるかもしれません。

    以上

Children
  • チョコさん
    ご返信いただきまして、ありがとうございます。

    たくさんの情報いただきまして、ありがとうございます。
    少しずつ調べながらやっていきたいと思います。

    なにもかもわからない状態から、理解ができ、イメージが付きました。
    また不明点ありましたら追加で質問させてください。

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