Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

シリアル通信について

現在rx65nを使用してadコンバータとi2c通信を行いデータの受信を行うことができました。

そのデータをシリアル通信でpcのcsvに出力するためスマートコンフィグレータを使用しようと思っているのですが

R__Serial_Send

で送ったデータは接続しているpcに送られるということでしょうか?

またその確認方法はpc側のプログラミングが別で必要なのでしょうか?

よろしくお願いします。

  • In reply to 吉光屋:

    吉光屋さん、回答ありがとうございます。

    Tera Termの方はポート番号をデバイスマネージャーに表示されているものを選択し、設定から端末とシリアルポートの方もネットに記載されているやり方で設定してみました。

    ケーブルの方は基盤の説明書にストレートケーブルを使用すると記載されていたのでCableCreationのUSB to RS232 アダプタを使用しています。

    原因がわからずずっと苦戦しています。
    上の方にプログラムをのせているのですがシリアル通信のプログラムは載せている内容で合っていますでしょうか?
    長くなりましたがよろしくお願いします。
  • In reply to たむら:

    基板は市販品でしょうか?
    基板上のシリアル用コネクタのところで、キーを押した時に、PCからのTXDに信号が来ているか、確認したいですね。
  • In reply to たむら:

    >R_Config_SCI2_Serial_Send((uint16_t *)v ,2);
    APIのリファレンスを確認していないので、不正確かもしれんせんが、次の2点が気になります。

    1.v はバイナリ値そのままです。PC側(TeraTerm)にはバイナリ値が入力されるため、それが制御コードだったりすると表示されません。直前に「sprintf(string, "%d",v);」と記載されていますので、このstringに格納された文字を1文字ずつ送信すれば表示されると思います。

    2.送信データの指定について、16ビット変数で大丈夫でしょうか?

     

    ただ、最初は皆さんが書かれているように1文字の送受信で試すのが先決かと

  • In reply to 吉光屋:

    あれ、よく見たら 「extern volatile uint16_t string[2];」 となっていますね。
    文字列の出力先なので char、uint8_t でないといけないのでは?


    まず通信を確認する1文字送信として、次のようにして試しては?
    TeraTerm に '1'が延々と出力されれば成功です。

    uint8_t cval [6]; // 将来16ビット数=HEX4桁、10進5桁+'\n'を入れられるように変数確保

    ・・・
    //シリアル
    flg1=0;
    // R_Config_SCI5_Serial_Send((uint16_t *)g_riic0_rx_buf ,2);
    // R_Config_SCI2_Serial_Send((uint16_t *)v ,2); // これの代わりに
    cval[0]='1' ; //'1'のコードは 0x31
    cval[1]=0;
    R_Config_SCI2_Serial_Send((uint8_t *)cval ,1);
  • In reply to Higetaka:

    Higetakaさん、回答ありがとうございます。

    基盤の詳細は企業と連携してるので言えませんが評価ボートであるTarget Board for RX65Nが自作の基盤に乗っています。
    また、キーを押して見ましたが波形の変化は見られませんでした。
  • In reply to 吉光屋:

    吉光屋さん、回答ありがとうございます。

    やはり最初は1文字で確認するべきなのですね。
    現在スマートコンフィグレータの調歩同期式の関数を使って記載されているサンプルプログラムを実行してみたのですがTera Termに表示されませんでした。

    また、cs+でデバックコンソールからポートを選択することが出来るのですがポートを選択するとTera Termでポートを選択出来ませんでした。逆にTera Termでポートを選択するとcs+側で選択出来ず両方とも選択出来なかったです。これが上手くいかない原因なのでしょうか?

    ちょっと分かりずらい文章になりましたがよろしくお願いします。
  • In reply to たむら:

    Higetakaさんや吉光屋さんも指摘されているように、SCIで通信ができない場合は、結線あるいはボーレートのミスが多いです。"RS232C ピンアサイン"とかで検索すると結線に関する情報がたくさんヒットします。例えば、なひたふ新聞( www.nahitech.com/.../rs232c.html )などは矢印が付いているのでわかりやすいと思います。さらにこのページにはレベルと1バイト分の構成が解説されてます。波形を見るなら、振幅の有る無しだけでなくレベルと時間が期待通りかも確認しましょう。"I"がASCIIコードで0x69になるので最初の立下りから最後の立ち上がりまででパリティなしで937uS(=9*1/9600*1E6)になります。

    現状では余分なことなのでひと段落してから確認等をしてください。窓の杜でTera Termに「定番のターミナルエミュレーター」の見出しがついてます。ビデオ表示端末(ビデオ表示ターミナル)としてはVAXなどのミニコンに使われるVT100とIBMメインフレームに使われる3270がメジャーです。VT100は、Intel8080マイクロプロセッサを搭載してますがコンピュータではなくカードリーダーやプリンターと同じ入出力装置になります。私はVT220 と3270端末を使ったことがありますが実にカッコいいです。今はともにPC上のエミュレータを使ってます。Tera TermはVT100ターミナルエミュレータになります。よって、「enterを押すとログイン画面が出る」の表現になると考えられます。

  • In reply to kijo:

    kijoさん,回答ありがとうございます。

    結線は確認しましたがマイコン側がクロスでケーブルがストレートなので問題はないと思います.また,ボーレートも同じ速度にしています。

    波形も確認しましたが問題は見受けられなかったです。
    よろしくお願いします。
  • たむら さん、こんにちは。NoMaYです。

    TeraTermも初めてということなので、PC側でエコーバック出来るかどうかから確認したいですね。まず、以下のアダプタの型番は何でしょうか?

    > 基盤の説明書にストレートケーブルを使用すると記載されていたのでCableCreationのUSB to RS232 アダプタを使用しています。

    CableCreation社 USB2.0/3.0 製品ページ
    www.cablecreation.com/ja/usb/

    [追記]

    以下であるなら、やはり、根本的に何かおかしい、何か勘違いされている、のでしょうね、、、

    > また、キーを押して見ましたが波形の変化は見られませんでした。

  • In reply to NoMaY:

    NoMaYさん,回答ありがとうございます。

    型番は下記のものを使用しております。
    www.cablecreation.com/.../usb-to-rs232-flat-cable-ftdi-chipset-10ft3meters-cd0621.html

    現在送信でなく受信の関数を使っていますがフラグのところでループしてしまいます。
    これはuartの接続がうまくいってないのと関係あるのでしょうか?ちなみに送信では
    フラグでループすることはありませんでした。
    flg=0;
    R_Config_SCI2_Serial_Receive((uint8_t *)&g_sci0_rx_buf, 1U);
    while(!flg)
    {
    }

    よろしくお願いします.
  • In reply to たむら:

    たむら さん、こんにちは。NoMaYです。

    では、そのアダプタのRS232側のコネクタのRXD端子とTXD端子を何とかして繋いで、TeraTerm側のローカルエコー機能を無効にして、何かキーを押して、押したキーが表示されるかどうか確認して頂けますか。設定は以下の画面コピーにあります。「キーを押して見ましたが波形の変化は見られませんでした」ということですので、たぶん、押したキーは表示されない、と考えてますが、、、(もし、万一、押したキーが表示されたら、RXD端子とTXD端子の接続を切断して、同じことをして、押したキーが表示されないこと、を確認して頂けますか?)



     

  • In reply to NoMaY:

    NoMaYさん,回答ありがとうございます。

    TeraTerm側のローカルエコー機能を無効にしてキーを押してみましたが波形に変化はありませんでした。

     

    また,cs+側のデバックコンソールからcomポートを選択することができるのですが

    テラタームでcomポートを選択したらcs+のほうが選択できませんでした.

    これも関係あるのでしょうか?

    よろしくお願いします。

  • In reply to たむら:

    たむら さん、こんにちは。NoMaYです。

    慌てないで下さい。私は、以下を確認して欲しい、と言いました?(ちょっと、ムッ、と怒っています、、、)

    > TeraTerm側のローカルエコー機能を無効にしてキーを押してみましたが波形に変化はありませんでした。

  • In reply to NoMaY:

    NoMaYさん,回答ありがとうございます。

    すみません,慌ててしまいました.
    押したキーは表示されませんでした。あとテラタームの画面にも表示されませんでした。

    すみません,よろしくお願いします。
  • In reply to たむら:

    たむら さん、こんにちは。NoMaYです。

    > 押したキーは表示されませんでした。あとテラタームの画面にも表示されませんでした。

    では、この段階で想定される可能性は以下の4つほどですが、まずは、(1)では無いことを私自身で把握しておきたいです。「Tera Termの方はポート番号をデバイスマネージャーに表示されているものを選択」とのことでしたが、デバイスマネージャの画面コピーを見たいです。例えば、私のPCでは、以下の画面コピーのようになってます。(ちょっと余計なWindowsデバイスドライバを入れていて、余計なCOMポートも表示されてしまっていますが、、、

    (1) 選択したCOMポート番号が間違っている
    (2) ハードウェアハンドシェイク機能が有効になっていて送受信がブロックされている
    (3) アダプタが壊れている
    (4) PCが壊れている

    私が普段使っているアダプタ、をPCに挿した時(COM14として割り当てられている)


    そのアダプタをPCから外した時(COM14は表示されなくなる → そのアダプタのCOMポートはCOM14と判断して間違いない)

     

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page