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

MTK-RL78/G14のWi-Fiについて

いつもお世話になっております。

 

Wi-Fiを利用してPCでMTK-RL78/G14の遠隔操作を行うプログラムを作成したいと思っています。

MTK-RL78/G14のWi-Fiを飛ばせるようにするにはどうすればよいですか?

ちなみにSW5.4をオンにした状態です。

 

使用統合開発環境 CS+ for CA,CX 

使用製品 MTK-RL78/G14

 

P.S

ユーザーズマニュアルの表を参考に端子配置図を変更しました。

WIFI-SPI-MOSI、WIFI-SPI-MISO、WIFI-SPI-CLKとWIFI-TXD (UART0_RX)、WIFI-RXD (UART0_TX)は同時に設定できませんでした。

オプションでUART3に接続できると書いてあるのでCSI通信だけでも大丈夫?

  • Takuさん、こんにちは。NoMaYと申します。

    自分でやったことが無くて申し訳ないですが、以下の商品ページの通りボード上にWi-Fiモジュールが搭載されていますが、このWi-Fiモジュールを動作させるところから分からなくて困っている、という状況なのですね?

    RL78/G14マイコン・トレーニング・キット【MTK-RL78G14】
    www.marutsu.co.jp/pc/i/210822/

    Wi-Fi 802.11bモジュール搭載(GainSpan社製)

  • In reply to NoMaY:

    NoMaYさん、返信ありがとうございます。
    そうです。デモンストレーションプログラムのcubesuite_gainspanを読んでも理解できなかったので…

    MTK-RL78G14_HW_UM_V2.pdfでUARTまたはSPIインターフェースで利用できると書いてあったので

    コード生成で出てくるR_UART1_Send等を利用して操作しようとしていました。



    デモンストレーションプログラム
    www.renesas.com/.../D3015927.html

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

    MTK-RL78G14のWi-Fiデモですが、クラウド側のExosite社のサービスは年内でサービス終了(既に新規のアカウント登録は不可)であり、Wi-FiモジュールメーカーのGainSpan社はTelit社に買収されて、搭載されているWi-FiモジュールのGS1011Mは取り扱いされてないようですね。どうするのが良いかな、、、

    以下、調べていた時の画面コピーです。

    クラウド側のExosite社のサービスは年内でサービス終了(既に新規のアカウント登録は不可)
    renesas.exosite.com/login


    Wi-FiモジュールメーカーのGainSpan社はTelit社に買収されていた
    www.google.co.jp/search?q=GainSpan+Telit


    搭載されているWi-FiモジュールのGS1011Mは取り扱いされてないもよう
    www.telit.com/m2m-iot-products/wifi-bluetooth-modules/

  • In reply to NoMaY:

    調べて頂いてありがとうございます。
    ということは無線通信でMTKを操作するのは今からだと不可能ですか…

    具体的にやりたいことはPC側で特定の文字を入力して送信するとMTKのLEDが光るというものです。

    一応データシートだけは見つかりました。
    www.farnell.com/.../1524510.pdf
  • Takuさん、こんにちは。NoMaYです。

    とりあえず有望そうな日本語サイトとして以下がありますね。ここをちょっと探してみようと思います。

    菅工房
    プロジェクト
    Wi-Fi関連
    GainSpan GS1011MIC Wi-Fiモジュール
    www.sugakoubou.com/doku/gs-wifi

    GS1011MIC や GS1011MIPS, GS1011MEPS の普及を目的に、資料を参照したり実験しつつ勝手にまとめているドキュメントです。 誤りや誤解等を含んでいるおそれがあります。正確にはメーカーのドキュメントをご確認ください。

  • In reply to NoMaY:

    Serial_to_WiFi_Command_Reference.pdf

    こんにちは、NAKAといいます。

    かな~り昔のことで、ほとんど忘れて、資料もあまり残ってなさそうですが、GS1011MをマイコンからWiFi通信したことがあります。

    AN025 - GS-SOC Serial to WiFi Bridge.pdf 

    専用のアプリを入れる必要があったのか覚えがありませんが、NAKAの買ったモジュールは特にファームを入れた覚えはないです。

    UARTのI/FからATコマンドを投げるだけで、ルータに対してTCP/IP通信できました。

     

    こんな感じ!!

    SCI2_Data_Send(46,"at+nset=192.168.1.99,255.255.255.0,192.168.1.1");//"at+nset=IP,Mask,Gatway"送信!

    fn_SCI2_RX_OK();//OKの確認

    SCI2_Data_Send(10,"at+ndhcp=0");    //"at+ndhcp=0"送信!

    fn_SCI2_RX_OK();//OKの確認

    SCI2_Data_Send(18,"at+wa=GainSpanDemo");  //"at+wa=GainSpanDemo"送信!

    fn_SCI2_RX_OK();//OKの確認

    SCI2_Data_Send(28,"at+nctcp=192.168.1.101,23456");

    fn_SCI2_RX_OK();//OKの確認

     

    コマンドリファレンス(Serial_to_WiFi_Command_Reference.pdf)

    という資料がありましたので、一応添付したつもりなのですが、添付できたのでしょうか?

     

    あまりに昔のことで、これ以上アドバイスできるほどの事はありませんが、参考になりますでしょうか?

  • In reply to NAKA:

    返信ありがとうございます。

    これを参考にしてプログラミング(できれば)してみたいと思います。
    CS+のコード生成で似たような関数があるといいけど…
    ありがとうございました!
  • Takuさん、こんにちは。NoMaYです。

    すみません、16-bit MCUでWi-Fiならクラウドに繋ぐという先入観があって、MTK-RL78G14のクイックスタートガイドを斜め読みし過ぎたことに気付きました。NAKAさんからのリプライもあって、ちょっと気持ちに余裕が出来て、改めてクイックスタートガイドを読み直したら、MTK-RL78G14がウェブサーバーになるデモもちゃんとありますね。(早トチリして、御免なさい。) このデモは動作しますか?

    MTK-RL78G14_QSG_V2.2.pdfの画面コピー

  • In reply to Taku:

    Takuさん NAKAです。

    とりあえず、GS1011MのUARTのI/Fへマイコンから”at”+CRを送ってみてください。
    例)
    TX_BUF[0] = 0x61; //at送信!
    TX_BUF[1] = 0x74;
    TX_BUF[2] = 0x0D;
    SCI2_Data_Send(3,TX_BUF);
     ※SCI2_Data_Send()はNAKAが作ったシリアル送信関数でデータバイト数とバッファを引数として渡しているだけです。

    GS1011Mモジュールから”OK”+CRと返信されたら、こっちのものです。コマンドリファレンスを読んでそのようにATコマンドをUARTでやり取りするだけです。

    うんともすんともだと、いばらの道が待っています。(~_~;) 
    webからGainSpanの情報を探しまくり、開発環境を用意し、ファームを書き換えないといけないかもしれません。




    データはこんな感じで送っていたようです。ただのシリアル通信ですけど......(*_*;

    //***************************************************************************************************データ送信 start
    if(f_Data_TX_EN == 1)
    {
    //G_LED = ~G_LED; //TEST GreenLED 反転  NAKA

    G_LED = 0; //GreenLED ON (負論理)

    TX_BUF[0] = 0x1B; //"データ"セット!
    TX_BUF[1] = 0x53; //<ESC>"S0"_CR
    TX_BUF[2] = 0x30;
    SCI2_Data_Send(3,TX_BUF);

    TX_BUF[0] = 0x41; //"A"---Data
    //TX_BUF[0] = 0x42; //"B"---Data

    TX_BUF[1] = (unsigned char)(G_PDATA3/1000) | 0x30; // G-AC ASCII Change!
    TX_BUF[2] = (unsigned char)((G_PDATA3%1000)/100) | 0x30;
    TX_BUF[3] = (unsigned char)((G_PDATA3%100)/10) | 0x30;
    TX_BUF[4] = (unsigned char)(G_PDATA3%10) | 0x30;

    TX_BUF[5] = 0x4F; //"O"---OFFSet

    TX_BUF[6] = (unsigned char)(G_OFFV3/1000) | 0x30; // G-DC ASCII Change!
    TX_BUF[7] = (unsigned char)((G_OFFV3%1000)/100) | 0x30;
    TX_BUF[8] = (unsigned char)((G_OFFV3%100)/10) | 0x30;
    TX_BUF[9] = (unsigned char)(G_OFFV3%10) | 0x30;

    TX_BUF[10] = 0x58; //"X"---X-Data

    TX_BUF[11] = (unsigned char)(G_XDat/1000) | 0x30; // X-Data ASCII Change!
    TX_BUF[12] = (unsigned char)((G_XDat%1000)/100) | 0x30;
    TX_BUF[13] = (unsigned char)((G_XDat%100)/10) | 0x30;
    TX_BUF[14] = (unsigned char)(G_XDat%10) | 0x30;

    TX_BUF[15] = 0x59; //"Y"---Y-Data

    TX_BUF[16] = (unsigned char)(G_YDat/1000) | 0x30; // Y-Data ASCII Change!
    TX_BUF[17] = (unsigned char)((G_YDat%1000)/100) | 0x30;
    TX_BUF[18] = (unsigned char)((G_YDat%100)/10) | 0x30;
    TX_BUF[19] = (unsigned char)(G_YDat%10) | 0x30;

    TX_BUF[20] = 0x5A; //"Z"---Z-Data

    TX_BUF[21] = (unsigned char)(G_ZDat/1000) | 0x30; // Z-Data ASCII Change!
    TX_BUF[22] = (unsigned char)((G_ZDat%1000)/100) | 0x30;
    TX_BUF[23] = (unsigned char)((G_ZDat%100)/10) | 0x30;
    TX_BUF[24] = (unsigned char)(G_ZDat%10) | 0x30;

    TX_BUF[25] = 0x45; //"E"---END

    SCI2_Data_Send(26,TX_BUF);

    /*
    TX_BUF[4] = (unsigned char)(G_PDATA3 >> 8);
    TX_BUF[5] = (unsigned char)(G_PDATA3 & 0x00FF);
    TX_BUF[6] = (unsigned char)(G_OFFV3 >> 8);
    TX_BUF[7] = (unsigned char)(G_OFFV3 & 0x00FF);
    TX_BUF[8] = (unsigned char)(G_XDat >> 8);
    TX_BUF[9] = (unsigned char)(G_XDat & 0x00FF);
    TX_BUF[10] = (unsigned char)(G_YDat >> 8);
    TX_BUF[11] = (unsigned char)(G_YDat & 0x00FF);
    TX_BUF[12] = (unsigned char)(G_ZDat >> 8);
    TX_BUF[13] = (unsigned char)(G_ZDat & 0x00FF);
    SCI2_Data_Send(14,TX_BUF);
    */

    TX_BUF[0] = 0x1B; //"データ"送信!
    TX_BUF[1] = 0x45; //<ESC>"E"_CR
    TX_BUF[2] = 0x0D;
    SCI2_Data_Send(3,TX_BUF);

    G_LED = 1; //GreenLED OFF (負論理)

    }
    //***************************************************************************************************データ送信 END


    10年以上若いころ、H8マイコンでコネコネやっているようです(^_-)-☆


    P.S.
    MTK-RL78/G14ってルネサスのボードでしょうか?
    だったら、ルネサスに相談したほうが早いような気がします。
    違ったら、そのボードメーカに!!
    サンプルを提供してくれたりして???
  • In reply to NAKA:

    NAKAも大好き!NoMaY先生といれちがっちゃいました!!
    まずは、あるもので試したいですよね!!!!
  • In reply to NoMaY:

    返信ありがとうございます。

    このデモは動きました。
    実際にページを開く事ができ各種センサ、LEDのオン、オフが動作することも確認しています。
  • Takuさん、こんにちは。NoMaYです。

    では、その次は、デモプログラムのソースの中で、どのあたりがライブラリ的/SDK的なソースであり、どこがアプリケーション的なソースであるか、切り分けつつ、アプリケーション的なソースのどこかにあるはずの、LEDをオン/オフしている箇所を探し出すことでしょうか、、、(NAKAさんのプログラムで送信操作のイメージは掴めますが、受信操作とか受信待ち受け操作とかのイメージも掴まないといけないですよね、、、)

    ところで、「PC側で特定の文字を入力して送信する」方法ですが、そもそも、どういう方法でやろうと考えてましたか? 御自身で、C#とかPythonとかRubyとかでプログラムを作る予定でしたか?それとも、TeraTerm等のターミナルソフトで文字を入力して送信する予定でしたか?(以下のTeraTermの画面コピーでIPv4を指定すれば無手順で(つまりMTK-RL78G14側でTelnetサーバーやSSHサーバーを実装していなくても)送受信出来たのだったかな?)

    TeraTermの新しい接続ダイアログの画面コピー

  • In reply to NoMaY:

    返信ありがとうございます。

    MTK-RL78G14-V39d\MTK-RL78G14_CubeSuitePlusExamples\cubesuite_gainspan内の

    \drv\RDKRL78_spi.c、\drv\SPI _G14.c、\CmdLib\GainSpan_SPI.cがWi-Fi絡みのソースコードだと思われます。

    LEDは\drv\led.cだと思います。

    Tera Termでやろうとしていました。
    シリアルコードを繋いでUART通信で特定の文字を光らせていました。
    今回はその無線版という感じです。

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

    TeraTermで無手順でTCP/IPで文字列を送受信出来るかどうかを、CS+のPythonコンソールでPythonスクリプトを実行して確認してみました。出来ますね。

    CS+のPythonコンソールで実行させたPythonスクリプト

    import socket
    HOST = 'localhost'
    PORT = 80
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind((HOST, PORT))
        s.listen(1)
        conn, addr = s.accept() # Waiting for a new connection from TeraTerm
        print "Connected!"
        while 1:
            msg = conn.recv(1024)  # Waiting for a message\r from TeraTerm
            if not msg:
                break
            print "RECV: " + msg + "\n"
            conn.send("ECHO: " + msg + "\n")
        print "Disconnected!" # Disconnected from TeraTerm
        conn.close()
        del conn, addr, s
    except:
        pass
    print "Quit."



    TeraTermの接続設定


    TeraTerm上(ローカルエコー無し)で

    Hello [Enter]キー
    Goodbye [Enter]キー

    と入力すると、それぞれ、CS+のPythonコンソールで実行中のPythonスクリプトから以下の文字列がエコーバックされる

    ECHO: Hello
    ECHO: Goodbye



    TeraTermから接続断して終了


    CS+のPythonコンソールで実行中のPythonスクリプトからはTeraTermの操作/入力に対して以下の文字列が表示される

  • In reply to NoMaY:

    返信ありがとうございます。
    こちらも同じ手順でTCP/IPで文字列を送受信できることを確認致しました。

    今現在は追記にあるようにGS1011MIPSに割り当てられたRL78G14のポートや端子を設定した後にコード生成を行いました。
    多分これで合ってる…はずです。ここからプログラムを書いていきたいと思っています。

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