TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

Similar documents
RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

TrueSTUDIO 用 F4D_Mail_BP359x の説明 V /09/16 CPU 基板から Mail 送信を行う STM32F4 Discovery 用のプロジェクトサンプルです RAM の使用量は 10Kbyte 未満です ROHM 社製 WIFi モジュール BP3591

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

1. ST-LINK Utility のダウンロード Windows7 PC にインストールする場合について説明します 1.1. STMicroelectronics のサイト STMicroelectronics のサイトを開きます ここに ST-LINK と入力して検索します ( 右側の虫眼鏡を

ST-LINK/V2-1 への Upgrade V /10/07 ST-LINK/V2-1 USB driver のインストールおよび ST-LINK/V2-1 の Upgrade について説明します ST-LINK/V2-1 USB driver をインストールしてから ST-LIN

1. 概要 飛石伝ひ CPU 基板 と 飛石伝ひ I/F 基板 を用いて Network 接続を行うために WiFi モジュールを使用します WiFi モジュールは ROHM 株式会社製の WiFi モジュール BP3591 と接続用基板 BP359D とのセット ( 写真左 ) か または ROH

STM32F405VG 搭載 CPU 基板の仕様 V /10/14 STMicroelectronics 社製の Cortex-M4 ARM CPU STM32F405VGT6 を搭載した CPU 基板です 目次 1. 概要 CPU 基板のブロック図 C

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

2. WiFi 接続 1.1 GuruPlug Server 初期設定情報 記載の SSID が設定されているアクセスポイントが GuruPlug Server です PC を操作して GuruPlug Server のアクセスポイントに接続して WiFi 接続してください 接続に成功すると PC

ETCB Manual

CommCheckerManual_Ver.1.0_.doc

改訂履歴 版番号改訂日改訂者改訂内容 年 2 月 12 日ネットワールド 新規 I

目次 2 1 PC Control Utility PD 1 について 動作環境

オートビュー

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま

(1) 最初に 本体を設置する前に 底面にある MAC Address(12 桁の英数字 ) をメモに控えてください ( のちほど 初期設定時に使用します ) 底面 製品底面の MAC Address をメモする (2) RockDiskNext の設置 ネットワーク機器 ( 無線ルータ等 ) の

ORCAMO クラウド VPN サービス ( ルータ型 ) 遠隔保守用 VPN サービス ( ルータ型 ) VPN ルータの機種変更に関しまして 2018 年 11 月

オートビュー

PowerPoint プレゼンテーション

無線 LAN JRL-710/720 シリーズ ファームウェアバージョンアップマニュアル G lobal Communications

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

ドライバー取扱説明書

SiTCP ユーティリティユーザガイド 2014 年 6 月 18 日 0.73 版 Bee Beans Technologies 1

Cisco Start Firewall Cisco ASA 5506-X PAT(Port Address Translation) の設定 2016 年 3 月 23 日 第 1.1 版 株式会社ネットワールド

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

SAC (Jap).indd

(1) 最初に 本体を設置する前に 底面にある MAC Address(12 桁の英数字 ) をメモに控えてください ( のちほど 初期設定時に使用します ) 底面 製品底面の MAC Address をメモする (2) RockDiskNext の設置 ネットワーク機器 ( 無線ルータ等 ) の

Microsoft PowerPoint - RM-PDU_IP設定方法.ppt

スライド 1

RsMulti の取扱説明 「RS232C で直接接続する(LAN を使用しない場合)」

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

DSP5Dアップグレードガイド

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

Windows 7ファイル送信方法 SMB編

SonicDICOM Cloud Connector インストール手順書 SonicDICOM Cloud Connector とは 検査装置が撮影した画像を自動的にクラウドへアップロー ドするためのソフトウェアです 1 前準備 クラウド上に PACS を作成する SonicDICOM Cloud

著作権および商標 この文書には が所有権を持つ機密事項が含まれます この資料のいかなる部分も許 可無く複製 使用 公開することを固く禁じます 本書は の従業員および許可された 取引先だけに使用が認められています 本書で提供されたデータは正確で信頼性の高いものですが このデータの使用について株式会社

Flex Signal for AirGRID

MINI2440マニュアル

Microsoft Word - FortiGate_NH-FV1連携手順書 doc

DJM-900nexus アップデート方法 for Microsoft Windows 7 A. 展開したファイルの内容を確認してください : 1. ダウンロードしたファイルを展開します ダウンロードしたファイルを右クリックし 表示されたメニューから すべて展開 を選びます 展開先を指定してファイル

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

How to Install and Configure Panorama Panorama のインストールと設定 Panorama は Palo Alto Networks のサポートサイトからダウンロード可能な VMware イメージです 本書は Panorama のインストールと Panora

LANdeVOICE PBSP-SIO (I/O接点付き)

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

電子13-06 エネメータ専用ソフト SAVER CAST for EneMeter Ver3.00設定方法.ppt


ギガらくカメラAXIS社製カメラWi-Fi接続設定有線固定IP設定 開通マニュアル

PowerPoint プレゼンテーション

Ethernet 開発支援ツール ACCEL ti2k (LastUpdate Mar 1, 2019) 概要ターミナルツール (1) TcpTermS.exe ターミナルツール (2) TcpTermM.exe ターミナルツール (3) UdpTermS.exe ターミナルツール (

SMB送信機能

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

おらんかにクライアント操作マニュアル

Microsoft Word - USB60F_Raspi_ doc

Microsoft Word }.j...A...doc

Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

(1) 最初に 本体を設置する前に 底面にある MAC Address(12 桁の英数字 ) をメモに控えてください ( のちほど 初期設定時に使用します ) 底面 製品底面の MAC Address をメモする (2) RockDiskNext の設置 ネットワーク機器 ( 無線ルータ等 ) の

Express5800/ シリーズ Windows Server 2008 の利用について 作成日 2008/11/29 初版 - 1 -

目次 1. 概要 動作環境

9. デバッグ デバッグの準備 ) ST-Link/V2 と tri-s CPU 基板との接続の様子 ) ST-Link/V2 と tri-s CPU 基板との接続信号 デバッグ ) プログラムの実行

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

1. Ver.7 アンインストーラーのダウンロード 1) デスクトップに新規フォルダを作成してください ( バージョンアップ作業用の一時フォルダ ) 2) 弊社ホームページ からログインをして ダウンロード画面を開いてください 旧バージョンのアンインストー

SMB送信機能

Ver '07/01/01 **************************************************************************************** イーサーネットーシリアル変換器 LAN-COM 取扱説明書 ***********

Copyright 2005 アンリツ株式会社許可なしに転載 複製することを禁じます

A 既製のプロジェクトがある場合

Microsoft PowerPoint - US kisuki-win10.ppt [互換モード]

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

認証システムのパスワード変更方法

Taro-82ADAカ.jtd

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

ZVH_VIEWER

SMB送信機能

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

改訂履歴 版番号改訂日改訂者改訂内容 年 2 月 5 日ネットワールド 新規 I

NTT Communications PowerPoint Template(38pt)

本製品に接続された端末の IPv6 情報が表示されます 端末に割り当てられた IPv6 アドレス IPv6 アドレスを取得した端末の MAC アドレスが確認できます 注意 : 本ページに情報が表示されるのは本製品が 上位から IPv6 アドレスを取得した場合のみとなります DDNSサービス :DDN

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

SMB送信機能

NTT ブロードバンドルータの本体後側上部にある らくらくスタート と言うボタンを 1 秒以上長押しして 登録ランプが 緑点滅したら手を離してください 登録ランプが橙点滅 橙点灯へと変化します 最終的に登録ランプが緑点灯 EX6100 のルーターリンク LED が点灯の状態になれば接続完了です コン

<4D F736F F D20325F B835E C834E835E A F90DD92E85F91E63494C52E646F6378>

Vista IE7 ブラウザの設定手順

PLC-Remote取扱説明書

SMB送信機能

AN424 Modbus/TCP クイックスタートガイド CIE-H14

PRONETA

PowerPoint プレゼンテーション

Windows XPファイル送信方法 SMB編

Transcription:

TCP_BP3591 の説明 V002 2014/03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受信したデータはエコーバックされます 無料の開発ツール Atollic TrueSTUDIO for ARM Lite ( 試用版 ) で作成したプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です 目次 1. CPU 基板と WiFi モジュール BP3591 との接続... 2 1.1. 飛石伝ひ CPU 基板 の場合... 2 1.2. 飛石伝ひ I/F 基板 の場合... 3 1.3. STM32F4 Discovery 基板の場合... 4 2. TCP/IP 通信のための Network 構成 ( ローカル接続 )... 5 3. プログラム実行時の動作と動作確認... 6 3.1. AccessTCP_Local プログラムで試験... 6 1) AccessTCP_Local プログラムの起動... 6 2) エコーバック... 7 3) LED ON/OFF... 7 3.2. Tera Term で試験... 8 1) Tera Term の起動... 8 2) IP アドレスの登録... 8 3) TCP/IP 接続... 10 4) エコーバック... 11 5) コマンド送信による LED の ON/OFF... 12 4. プロジェクトの構成... 13 4.1. 追加したソースフォルダ... 14 4.2. フォルダ main... 15 5. Network パラメータの設定... 16 5.1. WiFi ルータの設定 (NetworkParam.h)... 16 5.2. TCP/IP の Port 番号の設定 (NetworkParam.h)... 16 5.3. TCP/IP のアドレスの設定 (NetworkParam.c)... 16 6. TCP_BP3591 のプログラムの構造... 17 6.1. 処理番号を使用したプログラムのフロー... 17 6.2. 処理番号を使用したプログラムの形... 18 7. Network 処理モジュールの概要... 19 7.1. ソースフォルダ Network の下のファイル... 19 7.2. ソースフォルダ BP3591... 20 1

1. CPU 基板と WiFi モジュール BP3591 との接続 WiFi モジュール BP3591 をアクセスするために UART( 非同期シリアル通信 ) を使用します 1.1. 飛石伝ひ CPU 基板 の場合 1) ROHM 株式会社製の WiFi モジュール BP3591 と接続用基板 BP359D とのセット 表 1.1. 1) BP359D と 飛石伝ひ CPU 基板 との接続信号 CN1 番号 BP359D の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 GND ----- ----- ----- 2 GPIO0 ----- ----- ----- 3 GPIO1 ----- ----- ----- 4 VCC ----- ----- +3.3V 5 VCC ----- ----- +3.3V 6 BOOT_SEL1 ----- ----- ----- 10k の抵抗でプルアップ 7 BOOT_SEL0 ----- ----- ----- 8 FLASH_SEL ----- ----- ----- 9 GND ----- ----- ----- CN2 番号 BP359D の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 GND ----- ----- ----- 2 SDDATA1 ----- ----- ----- 3 SDDATA0 ----- ----- ----- 4 UART_RxD PB10 UART3_TX P2-20 5 UART_TxD PB11 UART3_RX P2-19 6 GPIO6 ----- ----- ----- 7 PRST PA1 I/O P2-41 Network_Reset 8 GPIO2 ----- ----- ----- Status_LED 9 GND ----- ----- ----- 2) TMD3591AD との接続 表 1.1. 2) TMD3591AD と 飛石伝ひ CPU 基板 との接続信号 番号 TMD3591AD の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 VCC ----- ----- ----- +3.3V 2 VCC ----- ----- ----- +3.3V 3 PRST PA1 I/O P2-41 Network_Reset 4 GPIO0 ----- ----- ----- 5 GPIO1 ----- ----- ----- 6 GPIO2 ----- ----- ----- Status_LED 7 GPIO6 ----- ----- ----- 8 M_ANA ----- ----- ----- 9 FLASH_SEL ----- ----- ----- 10 BOOT_SEL_0 ----- ----- ----- 11 UART_RXD PB10 USART3_TX P2-20 12 UART_TXD PB11 USART3_RX P2-19 13 SDATA1 ----- ----- ----- 14 SDATA0 ----- ----- ----- 15 GND ----- ----- ----- 16 GND ----- ----- ----- Status LED の接続は 飛石伝ひ I/F 基板 のページの I/F 基板の回路図を参考にしてください 2

1.2. 飛石伝ひ I/F 基板 の場合 1) ROHM 株式会社製の WiFi モジュール BP3591 と接続用基板 BP359D とのセット I/F02 基板の CN1, CN2 に実装することができます 2) TMD3591AD との接続 I/F02 基板の P10 に実装することができます 3

1.3. STM32F4 Discovery 基板の場合 1) ROHM 株式会社製の WiFi モジュール BP3591 と接続用基板 BP359D とのセット 表 1.2. 1) BP359D と STM32F4 Discovery 基板との接続信号 CN1 番号 BP359D の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 GND ----- ----- ----- 2 GPIO0 ----- ----- ----- 3 GPIO1 ----- ----- ----- 4 VCC ----- ----- +3.3V 5 VCC ----- ----- +3.3V 6 BOOT_SEL1 ----- ----- ----- 10k の抵抗でプルアップ 7 BOOT_SEL0 ----- ----- ----- 8 FLASH_SEL ----- ----- ----- 9 GND ----- ----- ----- CN2 番号 BP359D の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 GND ----- ----- ----- 2 SDDATA1 ----- ----- ----- 3 SDDATA0 ----- ----- ----- 4 UART_RxD PB10 UART3_TX P1-34 5 UART_TxD PB11 UART3_RX P1-35 6 GPIO6 ----- ----- ----- 7 PRST PA1 I/O P1-11 Network_Reset 8 GPIO2 ----- ----- ----- Status_LED 9 GND ----- ----- ----- 2) TMD3591AD との接続 表 1.2. 2) TMD3591AD と STM32F4 Discovery 基板との接続信号 番号 TMD3591AD の信号名 CPU 信号名 CPU 機能名 コネクタピン番号 備考 1 VCC ----- ----- ----- +3.3V 2 VCC ----- ----- ----- +3.3V 3 PRST PA1 I/O P1-11 Network_Reset 4 GPIO0 ----- ----- ----- 5 GPIO1 ----- ----- ----- 6 GPIO2 ----- ----- ----- Status_LED 7 GPIO6 ----- ----- ----- 8 M_ANA ----- ----- ----- 9 FLASH_SEL ----- ----- ----- 10 BOOT_SEL_0 ----- ----- ----- 11 UART_RXD PB10 USART3_TX P1-34 12 UART_TXD PB11 USART3_RX P1-35 13 SDATA1 ----- ----- ----- 14 SDATA0 ----- ----- ----- 15 GND ----- ----- ----- 16 GND ----- ----- ----- Status LED の接続は 飛石伝ひ I/F 基板 のページの I/F 基板の回路図を参考にしてください 4

2. TCP/IP 通信のための Network 構成 ( ローカル接続 ) ルータと PC および CPU 基板の接続は次のようになります ルータ WiFi モジュール BP3591 PC UART CPU 基板 5

3. プログラム実行時の動作と動作確認 1) プログラムを実行すると基板上の LED LD4( 緑 ) が 1 秒点灯 2 秒消灯で点滅します 2) プログラムの動作が開始してから BP3591 と WiFi ルータの接続が確立するのに 約 20 秒程度かかります BP3591 の GPIO2 に Status LED を接続している場合 接続確立中は 1 秒間隔で点滅します 接続が確立すると点灯したままになります ただし コンフィグレーションが行われなかった場合など 最初から点灯したままなので注意が必要です 20 秒近く点滅した後 点灯したら接続が確立したと判断するとよいと思います TCP 通信プログラム AccessTCP_Local または Tera Term を使用して TCP/IP 通信の確認を行います AccessTCP_Local は Microsoft Visual C# 2010 Express で作成したプログラムです プロジェクトを公開していますので興味のある方はご覧ください インストールして使用する方法も説明しています (TCP_Server のページ ) 3.1. AccessTCP_Local プログラムで試験 1) AccessTCP_Local プログラムの起動 AccessTCP_Local プログラムを起動すると 次のダイアログが表示されます IP Address と TCP Port Number を環境に合わせて指定してください 6

2) エコーバック この例では 送信データに How are you? と入力して [ 送信 ] ボタンをクリックした結果 エコーバックされて受信の部分に表示されています 3) LED ON/OFF a) STM32F4 Discovery 基板の場合 : LED0 : LD5( 赤 ) または LED1 : LD6( 青 ) を ON/OFF します b) 飛石伝ひ CPU 基板 の場合 : Port1-bit6 または Port1-bit7 を ON/OFF します この例では LED1 ON を送信しました a) STM32F4 Discovery 基板で実行している場合は LD6( 青 ) の LED が点灯します b) 飛石伝ひ CPU 基板 で実行している場合は Port1-bit7 が ON します 7

3.2. Tera Term で試験 1) Tera Term の起動 以前の設定が Serial port を使用に設定してあったので Cannot open COM4 のメッセージが表示されました [OK] ボタンをクリックします 2) IP アドレスの登録 メニューの {Setup} -> {TCP/IP} をクリックすると次ページのダイアログが開きます 8

ルータに設定した DHCP の静的割り当てアドレスを指定して [Add] ボタンをクリックします ここに追加されました [OK] ボタンをクリックしてダイアログを閉じます 次ページに続く 9

3) TCP/IP 接続 メニューの {File} -> {New connection } をクリックします 次のダイアログが開きます TCP/IP のラジオボタンを選択して TCP port#: に 10000 を設定します 10000 は TCP_Server のプログラムの NetParam.h で指定している番号です [OK] ボタンをクリックしてください 正常に接続されると次ページの画面になります 接続できないときはエラーメッセージが表示されます 10

4) エコーバック ABCD と PC のキーを押すとエコーバックされて画面に表示されます メモ帳で LED0 ON と書いたファイルを作成して LED0_ON.txt という名前で保存します メニューの {File} -> {Send file } をクリックして LED0_ON.txt を選択して送信すると GPIO PD14 に対応した LED が点灯します 次ページにその操作を示します 11

5) コマンド送信による LED の ON/OFF メニューの {File} -> {Send file } をクリックすると次のダイアログが開きます LED0 ON が記述されたファイル LED0_ON.txt を選択して [ 開く (O)] ボタンをクリックします 次ページに続く 12

送信した LED0 ON がエコーバックされて CPU 基板側では対応する LED が点灯します LED0_OFF.txt を送信すると LED が消灯します 4. プロジェクトの構成 Work_TCP_BP3591 プロジェクトを開いて 左側のプロジェクト エクスプローラーを開いた状態です 13

4.1. 追加したソースフォルダ 1) CommonModules 共通に使用するモジュールを記述してあります 時間待ち 文字列操作などの処理を記述しています 2) CommunicateHOST TCP/IP 通信で受信した LED0 ON などの文字列コマンドを処理します 3) Handles a) HandleTimer2 タイマ割り込みの初期化を記述しています b) HandleUART UART( 非同期シリアル通信 ) の初期化を行います 4) Network TCP/IP 通信の処理を記述しています a) Network.h Network.c TCP/IP 通信処理の一番上位のモジュールです BP3591 のコンフィグレーションを行った後 TCP/IP 通信を行います b) NetParam WiFi ルータに接続するためのパラメータと IP アドレスなどを設定します c) NetUtilities 文字列の IP アドレスを 32bit のデータに変換する処理や 32bit データを文字列の IP アドレスに変換するなど Network 処理に使用する共通処理を記述してあります 5) BP3591 : フォルダ Network の下にフォルダ BP3591 があります a) HandleBP3591 BP3591 のコミュニケーションモードを使用するための WID の書き込み 読み込みを行います b) CommunicateBP3591 UART により BP3591 と送受信する処理を行います c) ConfigBP3591 BP3591 をコンフィグレーションします d) AccessBP3591 受信データからフレームデータを取り出し 種類により処理します TCP Server としての処理を行い 受信したコマンドデータの処理を行います 6) UserPrograms Status LED, LED0, LED1 のポート初期化と Status LED の点滅処理を記述しています 14

4.2. フォルダ main 1) main.c a) main モジュールプログラム開始のモジュールです I/O の初期化 Network の初期化および TCP/IP 通信処理を呼び出しています 2) stm32f4xx_it. タイマ割り込みと UART の割り込み処理を記述しています 15

5. Network パラメータの設定本プログラムサンプルでは WiFi ルータの SSID やアクセスのための IP アドレスなどをプログラム埋め込みにしているため 使用環境に応じて 設定部分を変更する必要があります 5.1. WiFi ルータの設定 (NetworkParam.h) NetworkParam.h 内の下記の部分を使用する WiFi ルータに合わせて書き換えてください 項目は上から SSID, SecurityKey, PinCode の 3 項目です //------------------------------------------------------ // WiFi ルータの設定 //------------------------------------------------------ // 実際の環境に合わせて書き換えてください //------------------------------------------------------ #define defssid "URoadWPS-35F14B" #define defsecuritykey "01234567" #define defpincode "76543210" //------------------------------------------------------ 5.2. TCP/IP の Port 番号の設定 (NetworkParam.h) NetworkParam.h 内の下記の部分の TCP/IP にアクセスするための Port 番号を実際に使用する番号に変更してください //------------------------------------------------------ //Port 番号 //------------------------------------------------------ // 実際の環境に合わせて書き換えてください //------------------------------------------------------ #define deftcp_serverport 10000 #define defhttp_serverport 10001 //------------------------------------------------------ 5.3. TCP/IP のアドレスの設定 (NetworkParam.c) NetworkParam.c 内の下記の部分の TCP/IP にアクセスするためのアドレスを実際に使用するアドレスに変更してください 上から IP アドレス Mask アドレス Gateway アドレスです //---------------------------------------------------------------------- // IP Address の設定 //---------------------------------------------------------------------- // 実際の環境に合わせて書き換えてください //---------------------------------------------------------------------- uint8_t GLB_uchrIP[4] = {192, 168, 100, 109}; //Source IP Address uint8_t GLB_uchrMaskIP[4] = {0xFF, 0xFF, 0xFF, 0x00}; uint8_t GLB_uchrGatewayIP[4] = {192, 168, 100, 254}; //IP Address Mask //Gateway IP Address //---------------------------------------------------------------------- 16

6. TCP_BP3591 のプログラムの構造 TCP_BP3591 のプログラムは処理番号を使用して 順次処理を行う構造をとっています 今後 紹介する HTTP Server, Mail 送信 DDNS 処理は全てこの構造になっています 6.1. 処理番号を使用したプログラムのフロー処理番号を使用したプログラムの概念的なフローを以下に示します この例ではモジュールが処理番号 0 処理番号 1 処理番号 2 の 3 個の処理で構成されています 処理番号 0 -> 処理番号 1 -> 処理番号 2 -> 処理番号 0 ->... と処理番号 0 ~ 処理番号 2 を繰り返します また 戻り値は処理中は -1 最後の処理番号の処理で正常終了時 0 エラーが発生した場合 NG : 1 以上の値を返します 開始 処理番号による分岐 処理番号 0 の処理処理番号 1 の処理処理番号 2 の処理 処理終了? NO 処理終了? NO 処理終了? NO YES YES YES 処理番号 +1 処理番号 +1 処理番号 = 0 戻り値 = -1 戻り値 = -1 戻り値 = 0 終了 17

6.2. 処理番号を使用したプログラムの形例えば 処理番号 : uint8_t uchrjobnum を用いて次のように処理します この例では 通信の処理において受信待ちをしてデータを受信したらデータの処理をして応答のための送信処理を行っています 送信処理が終了したら受信待ちに戻ります // 戻り値 : // -1 : 処理中 // 0 : OK 終了 // 1 以上 : NG 終了 int16_t 送受信処理 () { switch(uchrjobnum){ case 0: intreturn = 受信処理 (); if(intreturn == -1){ break; // 処理中 } if(intreturn > 0){ intreturn = 1; break; } //NG 終了 受信データによる処理と送信データ作成 (); uchrjobnum++; intreturn = -1; break; // 次の処理番号 // 処理中 case 1: intreturn = 送信処理 (); if(intreturn == -1){ break; // 処理中 } uchrjobnum = 0; intreturn = 0; break; // 処理番号を 0 に戻す //OK 終了 } } return(intreturn); 上記の受信処理 (); と送信処理 (); の内部も同じ構造で記述されています 戻り値が -1 の時は処理中で同じ処理番号の部分をループして 処理が OK 終了だった場合 処理番号を進めて 次の処理を行います 18

7. Network 処理モジュールの概要 Network 処理のためのモジュールについて概要を説明します プロジェクトのソースフォルダ Network のしたに 上位モジュールを記述したファイルと BP3591 をアクセスするためのモジュールが記述されたソースファイル群が格納されているソースフォルダ BP3591 があります 7.1. ソースフォルダ Network の下のファイル 1) Network Network 処理の最上位のモジュールです Network の初期化を行った後 Network 通信処理をループします a) TransaxtNetwork //---------------------------------------------------------------- //Network 処理 //---------------------------------------------------------------- // BP3591 の初期化を行った後 Network 通信処理を Loop する //---------------------------------------------------------------- // 引数 : //uint8_t *puchrjobnum : 処理番号のポインタ //---------------------------------------------------------------- int16_t TransactNetwork(uint8_t *puchrjobnum); 2) NetParam a) SetNetworkParameter Network 接続のためのパラメータ WiFi の SSID, SecurityKEY や IP アドレスなどを設定します //------------------------------------------------------------- //Set parameter for Network : //------------------------------------------------------------- // 戻り値 : // 0 : OK // 1 以上 : NG //------------------------------------------------------------- int16_t SetNetworkParameter(void); 3) NetUtilities Network 処理のための共通モジュールを記述してあります 19

7.2. ソースフォルダ BP3591 1) AccessBP3591 a) NetworkAccessBP3591 BP3591 にアクセスして Network 通信を行います //---------------------------------------------------------------------------------------------------- //Network 通信処理 //---------------------------------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号 // struct snetworkdata *pstructnetworkdata : 受信した Network データを格納する構造体のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK 終了 //---------------------------------------------------------------------------------------------------- int16_t NetworkAccessBP3591(uint8_t *puchrjobnum, struct snetworkdata *pstructnetworkdata); b) TCP_AccessBP3591 TCP 通信を行います //---------------------------------------------------------------------------------------------------- //Access for TCP Server : TCP Server 通信処理 //---------------------------------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号 // struct snetworkexpect *pstructnetworkexpect : 取得するデータを指定する構造体のポインタ // struct ssocket *pstructsocket_tcp : パケットの内容をセットする構造体のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK 終了 //---------------------------------------------------------------------------------------------------- int16_t TCP_AccessBP3591(uint8_t *puchrjobnum, struct snetworkexpect *pstructnetworkexpect, struct ssocket *pstructsocket_tcp); 20

2) CommunicateBP3591 BP3591 との通信処理を行います a) UART_SendBP3591 BP3591 にデータを送信します //--------------------------------------------------------------------------------------- //Network WiFiBP3591 UART 送信 //--------------------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号のポインタ // uint16_t uintlength : 送信データ数 // uint8_t *puchrdata : 送信データのポインタ // 戻り値 : // -1 : 処理中 // 0 : OK 終了 //--------------------------------------------------------------------------------------- int16_t UART_SendBP3591(uint8_t *puchrjobnum, uint16_t uintlength, uint8_t *puchrdata); b) UART_ReceiveBP3591 BP3591 からデータを受信します //--------------------------------------------------------------------------------------- //Network WiFiBP3591 UART 受信 //--------------------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号のポインタ // uint8_t *puchrdata : 受信データを格納する Buffer のポインタ // uint16_t uintlength : 受信データ数をセットする Work のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK 終了 // 1 以上 : NG //--------------------------------------------------------------------------------------- int16_t UART_ReceiveBP3591(uint8_t *puchrjobnum, uint8_t *puchrdata, uint16_t *puintlength); 21

c) CommunicationReceiveBP3591 BP3591 からの受信データからフレームデータを取り出し 種類に見合ったデータを取得します //---------------------------------------------------------------------------------------------------- // 受信 BP3591 : 受信したデータの種類を識別して種類に見合ったデータを取得する //---------------------------------------------------------------------------------------------------- // 引数 : //uint8_t *puchrjobnum : 処理番号 //struct snetworkdata *pstructnetworkdata : 受信した Network データを格納する構造体のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK 終了 //---------------------------------------------------------------------------------------------------- int16_t CommunicationReceiveBP3591(uint8_t *puchrjobnum, struct snetworkdata *pstructnetworkdata); d) GetReceiveDataAndSetFlag_BP3591 フレームデータから種類に見合ったデータを取得します //---------------------------------------------------------------------------------------- //Data 取得と flag セット : 受信データの種類 (WID/DATA) によりフラグをセットして種類に見合ったデータを取得する //---------------------------------------------------------------------------------------- // 引数 : //uint8_t *puchrreceivedata : 受信データが格納された Buffer のポインタ //struct snetworkdata *pstructnetworkdata : 受信した Network データを格納する構造体のポインタ // 戻り値 : // 0 : OK // 1 : NG and Continue // 2 : NG and End //---------------------------------------------------------------------------------------- int16_t GetReceiveDataAndSetFlag_BP3591(uint8_t *puchrreceivedata, struct snetworkdata *pstructnetworkdata); 22

3) ConfigBP3591 a) InitializeBP3591 BP3591 との通信に使用する UART を初期化し BP3591 をコンフィグレーションします //-------------------------------------------------------------------------------------- //WiFi BP3591 初期化 //-------------------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号のポインタ // struct snetworkdata *pstructnetworkdata : 受信した Network データを格納する構造体のポインタ // struct snetworkexpect *pstructnetworkexpect : 取得するデータを指定する構造体のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK // 1 : NG //-------------------------------------------------------------------------------------- int16_t InitializeBP3591(uint8_t *puchrjobnum, struct snetworkdata *pstructnetworkdata, struct snetworkexpect *pstructnetworkexpect); b) EnterCommunicationMode BP3591 をコミュニケーションモードにします //--------------------------------------------------------------------------- // コミュニケーションモードに移行 //--------------------------------------------------------------------------- // 引数 : // uint8_t *puchrjobnum : 処理番号のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK // 1 : Timeout //--------------------------------------------------------------------------- int16_t EnterCommunicationMode(uint8_t *puchrjobnum): 23

c) ConfigurationBP5391 BP3591 をコンフィグレーションします //------------------------------------------------------------------------------------ // コンフィグレーション BP5391 : 接続する WiFi の SSID や BP3591 の IP Address, Port 番号などを設定する //------------------------------------------------------------------------------------ // 引数 : // uint8_t *puchrjobnum : 処理番号のポインタ // struct snetworkexpect *pstructnetworkexpect : 取得するデータを指定する構造体のポインタ // 戻り値 : // -1 : 処理中 // 0 : OK // 1 : NG( 初期化失敗 ) // 2 : Network Parameter が FlashMemory に設定されていない //------------------------------------------------------------------------------------ int16_t ConfigurationBP5391(uint8_t *puchrjobnum, struct snetworkexpect *pstructnetworkexpect); 4) HandleBP3591 BP3591 のコンフィグレーションモードにおいて WID 書き込み 読み込みを行います WID 処理をするためのモジュールを全て記述してあります この WID 処理のプログラムは結構めんどくさいので ライブラリの感覚で使用していただくのがよいと思います 24

改訂履歴 V001 2014/01/31 初版 V002 2014/03/28 誤記訂正 25