メニュー
▼ アクセス(地図)
▼ Windowsアプリ開発 ▼ マイコン開発 ▼ CGI・PHP制作 |
▼ サイトマップ(全投稿記事)
▼ タイトル(画像一覧) ▼ 事業内容 |
お問い合わせメールフォームが開きます。
2014年11月04日
「TWE-Lite」ファームウエア改造
TOCOS<東京コスモス電機株式会社>のIEEE802.15.4/ZigBee無線モジュール「TWE-Lite」のファームウエアを改造してアナログ電圧の連続送信ができないか検証してみました。
開発環境はメーカWebサイト「ToCoNet SDK」からTWE-Liteのページへ移動すれば最新バージョンがダウンロードできます。
統合環境はEclipseを使用します。 親切な解説もダウンロードファイルに含まれているので簡単に始められると思います。
出荷時に書き込まれているファームウエアは、SDKに含まれるサンプルアプリケーションの中の「App_TweLite」ですが、このファームウェアのアナログ送信では数十Hz程度のようです。
(メーカのWebサイトに紹介してあるような手動ボリュームでLED光量を変化させるようなアプリケーションでは問題ないと思います。)
今回は「App_Audio」をベースにしました。
「App_Audio」では、その名の通りオーディオ信号の送受信ができるので、これを利用すればアナログ電圧の連続送信ができそうです。
まずオリジナル出力がPWMのため、LPFを通した200Hzの波形は下記のような感じですので、計測用途には不向きです。
(上:送信側の入力波形 下:受信側のPWM出力波形 LPFはCRの簡易的なもの)
今回はMicrochip社の「MCP4922」を「TWE-Lite」のDIOに接続してDAC出力としました。
ブロック図は下記のような感じです。
受信回路図は下記のようになります。(送信回路は特に変更はありません。)
LPFを通した200Hzの波形は下記のように計測に耐えうる感じになりました。
(上:送信側の入力波形 下:受信側のDAC出力波形)
DAC処理の修正個所は、開発環境(Eclipse)は整ったものとして
ソースファイル:audioDevice.c の
「オーディオデバイスへのサンプルの入出力を行う」関数である
int16 i16AD_ReadWrite(int16 i16SampInput)
内に挿入すれば良いと思います。
Microchip社の「MCP4922」の制御方法は他のWebサイトに紹介されているのでそちらをご参照ください。
なお、SDKの出力ポート制御関数は下記のような記述です。
#define SDI_ON vPortSetHi(PORT_OUT1)
#define SDI_OFF vPortSetLo(PORT_OUT1)
DAC出力は0-3.3Vppですが、送信側のAD入力は0-2.4Vppです。
i16AD_ReadWrite(int16 i16SampInput)関数内でオフセットも計算されているので
上記の計算をお好みに合わせて出力電圧を決める必要があります。
サンプリング周波数、オーディオCodec(データ圧縮)等は「インタラクティブモード」で「TWE-LITE」フラッシュメモリパラメータを設定する必要があります。(SDKに含まれるマニュアルをご参照ください。)
送信側にセンサを付けてデータをパソコンへ転送するサンプルも作ってみました。
利用したプロジェクトはApp_Uartです、機会があったらご紹介したいと思います。
ブロック図は下記のような構成です。
開発環境はメーカWebサイト「ToCoNet SDK」からTWE-Liteのページへ移動すれば最新バージョンがダウンロードできます。
統合環境はEclipseを使用します。 親切な解説もダウンロードファイルに含まれているので簡単に始められると思います。
出荷時に書き込まれているファームウエアは、SDKに含まれるサンプルアプリケーションの中の「App_TweLite」ですが、このファームウェアのアナログ送信では数十Hz程度のようです。
(メーカのWebサイトに紹介してあるような手動ボリュームでLED光量を変化させるようなアプリケーションでは問題ないと思います。)
今回は「App_Audio」をベースにしました。
「App_Audio」では、その名の通りオーディオ信号の送受信ができるので、これを利用すればアナログ電圧の連続送信ができそうです。
まずオリジナル出力がPWMのため、LPFを通した200Hzの波形は下記のような感じですので、計測用途には不向きです。
(上:送信側の入力波形 下:受信側のPWM出力波形 LPFはCRの簡易的なもの)
今回はMicrochip社の「MCP4922」を「TWE-Lite」のDIOに接続してDAC出力としました。
ブロック図は下記のような感じです。
受信回路図は下記のようになります。(送信回路は特に変更はありません。)
LPFを通した200Hzの波形は下記のように計測に耐えうる感じになりました。
(上:送信側の入力波形 下:受信側のDAC出力波形)
DAC処理の修正個所は、開発環境(Eclipse)は整ったものとして
ソースファイル:audioDevice.c の
「オーディオデバイスへのサンプルの入出力を行う」関数である
int16 i16AD_ReadWrite(int16 i16SampInput)
内に挿入すれば良いと思います。
Microchip社の「MCP4922」の制御方法は他のWebサイトに紹介されているのでそちらをご参照ください。
なお、SDKの出力ポート制御関数は下記のような記述です。
#define SDI_ON vPortSetHi(PORT_OUT1)
#define SDI_OFF vPortSetLo(PORT_OUT1)
DAC出力は0-3.3Vppですが、送信側のAD入力は0-2.4Vppです。
i16AD_ReadWrite(int16 i16SampInput)関数内でオフセットも計算されているので
上記の計算をお好みに合わせて出力電圧を決める必要があります。
サンプリング周波数、オーディオCodec(データ圧縮)等は「インタラクティブモード」で「TWE-LITE」フラッシュメモリパラメータを設定する必要があります。(SDKに含まれるマニュアルをご参照ください。)
送信側にセンサを付けてデータをパソコンへ転送するサンプルも作ってみました。
利用したプロジェクトはApp_Uartです、機会があったらご紹介したいと思います。
ブロック図は下記のような構成です。