8章:TCPサーバ使用でAE-USBPIC44基板 からトランスペアレントモード起動

    作成2015.10.12

  1. TCPサーバ使用でAE-USBPIC44基板 からトランスペアレントモード起動
     まずは、USBで通信内容が確認できるモードで動作テストします。


  2. ブレークアウトボードのピン設定
    (1)ENピン:(Chip Enable.)→Highに設定します。
    (2)GPIO-15ピン:(Type I/O MTDO;HSPI_CS; UART0_RTS)→Lowに設定します。
    (3)GPIO-2ピン:(Type I/O UART Tx during flash programming)→Highに設定します。
    (4)GPIO-0ピン:(Type I/O SPI_CS2)→Highに設定します。
    (5)TXピン:(Type I/O GPIO-1)→通信相手のRXに接続
    (6)RXピン:(Type I/O GPIO-3)→通信相手のTXに接続
    (7)3V3ピン:→3.3V電源供給
    (8)GNDピン:→アース
    と設定します。





  3. 評価回路外観
     評価回路外観を以下に示します。





  4. USBによる通信内容確認モードのソースプログラム
     AE-USBPIC44基板用のソースプログラムは以下からダウンロードできます。
    [3-1.zip]をダウンロードする。
    解凍するとMy-CDC-Basic-Mホルダー内にMy-CDC-Basic.Xフォルダーがあります。


  5. USBによる通信内容確認モードのソースプログラムの修正
     以下のコードに「SSID」「パスワード」「パソコンIPアドレス」「ポート」を設定します。
    MAIN_RETURN main(void)
    {
        ADCON1  =	0b00001111;
        TRISA   =	0b00000000;
        TRISB   =	0b00000000;
        TRISC   =	0b00110000;         //D-,D+
        TRISD   =	0b00000000;
        TRISE   =   0b11000011;         //SW1,2=INPUT LED=OUTPUT
        LATA    =	0b00000000;
        LATB    =	0b00000000;
        LATC    =	0b00000000;
        LATD    =	0b00000000;
        LATE    =	0b00000000;
    
        SYSTEM_Initialize(SYSTEM_STATE_USB_START);
        USBDeviceInit();
        USBDeviceAttach();
    
        UART_Init(115200);
        RCIF = 0; //reset RX pin flag
        RCIP = 1; //high priority
        RCIE = 1; //Enable RX interrupt
        PEIE = 1; //Enable pheripheral interrupt (serial port is a pheripheral)
        INTCONbits.GIE = 1;
    
        int i;
        LED=0;
        while(SW1==1)
        {
            UARTreadTEXT_1();
            USB_TASK();
        }
        UART_Write_Text("AT+CWMODE=1\r\n");
        MyWait(100);
        UARTreadTEXT_1();
        UART_Write_Text("AT+CWJAP=\"SSID\",\"password\"\r\n");
        MyWait(800);
        UARTreadTEXT_1();
        //UART_Write_Text("AT+CIFSR\r\n");
        UART_Write_Text("AT+CIPSTART=\"TCP\",\"パソコンIPアドレス\",ポート\r\n");
        MyWait(200);
        UARTreadTEXT_1();
        UART_Write_Text("AT+CIPMODE=1\r\n");
       MyWait(200);
        UARTreadTEXT_1();
        UART_Write_Text("AT+CIPSEND\r\n");
       MyWait(200);
        UARTreadTEXT_1();
    
        UART_Write_Text(">OK\r\n");
        gN=0;
        __delay_ms(15);
        while(1)
        {
            LED=1;
            UARTreadTEXT_2();
            USB_TASK();
        }//end while
    }//end main
    


  6. USBによる通信内容確認モードの評価手順
    (1)AE-USBPIC44基板への電源供給は個別の5V電源を使用します。(ESP-WROOM-02の3.3Vを使用するとノイズの影響を受けやすくなります。)
    (2)「Csharp Simple CDC Demo.exe」をダブルクリックで起動します。
    (3)COM7に接続します。
    (4)ESP-WROOM-02に電源を供給します。
    (5)以下が表示されます。
    ready
    WIFI CONNECTED
    WIFI GOT IP
    (6)MyTcpListener.exeをダブルクリックで起動します。
    (7)接続ボタンを押します。
    (8)AE-USBPIC44基板のSW1ボタンを押して、LEDランプが点灯するのを待ちます。
    (9)以下が表示されます。



    *以上でトランスペアレントモードの初期設定が完了してATコマンドは使用できなくなります。
    *再度ATコマンドを有効にするには「+++」を送信するか、ESP-WROOM-02モジュールのリセットまたは電源のOFF/ONが必要となります。

    (10)COM7側の送信文字列に「ABCDEFGHIJKLMNOPQRSTUVWXYZ」を入力し、「\r\n有り送信」ボタンを2回押します。
    (11)以下のようになります。



    (12TCPサーバ側の送信文字列に「abcdefghijklmnopqrstuvwxyz」を入力し、「\r\n有り送信」ボタンを2回押します。
    (13)以下のようになります。





  7. USBによる通信内容確認無しの評価手順
    (1)AE-USBPIC44基板への電源供給は個別の5V電源を使用します。(ESP-WROOM-02の3.3Vを使用するとノイズの影響を受けやすくなります。)
    (2)ESP-WROOM-02に電源を供給します。
    (3)MyTcpListener.exeをダブルクリックで起動します。
    (4)接続ボタンを押します。
    (5)AE-USBPIC44基板のSW1ボタンを押して、LEDランプが点灯するのを待ちます。
    (6)TCPサーバの送信文字列に「abcdefghijklmnopqrstuvwxyz」を入力し、「\r\n有り送信」ボタンを2回押します。
    (7)以下のようになります。



    *USB接続無しでAE-USBPIC44基板からの送信を確認できました。
    *USB接続無しが本来の使用方法です。
    *ソースプログラムの大部分はUSB接続のためのものであり、USB接続無しの場合、ソースプログラムは大幅に簡略化できます。
    *ただし、USB接続無しだとデバッグがやりにくい問題があります。
    *デバッグ完了後に、USB接続無しのソースプログラムを作成するのが良いとおもいます。


  8. USB接続無しのソースプログラム
    (1)AE-USBPIC44基板用のUSB接続無しのソースプログラムは以下からダウンロードできます。
    [3-2.zip]をダウンロードする。
    解凍するとUART-Slave.Xフォルダーがあります。
    (2)ソースファイルはnewmain.cのみの単純構造となります。
    (3)「SSID」「パスワード」「パソコンIPアドレス」「ポート」の設定が必要です。


  9. TCPサーバ使用でAE-USBPIC44基板 からトランスペアレントモード起動まとめ
    (1)仮想COMポートソフトウエア(HW Virtual Serial Port)とTCPサーバ(MyTcpListener.exe) を比較すると、TCPサーバの方が設定項目が少なく扱いやすい。
    (2)仮想COMポートソフトウエア(HW Virtual Serial Port)は接続完了後第1回目の送受信がうまく作動しないためダミー送信が必要となる。
    (3)TCPサーバ(MyTcpListener.exe)は接続完了後第1回目の送受信から正常に作動する。
    (4)仮想COMポートソフトウエア(HW Virtual Serial Port)より、TCPサーバ(MyTcpListener.exe)方が使いやすい。




9章:TCPサーバ使用でArduino uno からトランスペアレントモード起動に行く。

トップページに戻る。