30年ぶりに復活した隊長の電子工作指令本部
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
【ソース/バイナリ】
ソース: MPLAB Project files (HoneyRadioSrc.zip) 2012/05/20
HEX: HoneyRadioHex.zip 2012/05/20
SDCard: SDCardSample.zip
SDカードには、上記 'SDCardSample' を解凍して丸ごと入れてください。設定ファイルには
サンプル値が入っているので、必要な通信設定を記述して下さい。
ラジオ局は、大阪のものがすでに入っています。ネットラジオはお好みに合わせて追記して
ください。
音楽ファイルは、MUSICディレクトリの下に、アルバム毎にディレクトリ作って、その中に音楽
ファイルを置いて下さい。ファイル名は8文字までしかサポートしていません。
【開発環境】
MPLAB v8.83 + C32 v2.02 マイクロチップテクノロジージャパン株式会社
全て無料の環境で開発する事が出来ます。
【ライタ&デバッガ】
PICkit 3 または 対応ライタ
【ライブラリ】
下記のライブラリを使用しております。上記ソースに全て同梱していますので、別途ダウン
ロードする必要はありません。
・Application Librarys v2011-12-05
・FatFs R0.09
Application Librarys は Microchip TCPIP Stack を利用していますが、必要なファイル
のみを同梱しています。利用する機能も必要最小限にとどめています。
尚、オリジナルに対して下記の修正/置換を行いました。
1) StackTsk.h
APP_CONFIG構造体のnetworkType宣言誤りの修正
2) Tick(.c/.h)の品質が悪いので自作して置き換えました
Microchip製のTickは、効率も悪く不具合もあり、良いソースとはいえません。
特に、TickGet()は頻繁に呼び出すため、シンプルで性能の良いコードが求められます。
簡単な3つの関数とマクロを用意すれば良いだけなので自作しました。
3) FTP(.c/.h) は使えないので自作して置き換えました
オリジナルのものは、殆どのコマンドをサポートしておらず、使えません。また、MPFS2を
中途半端に使おうとするので、リンクエラーが出たりします。
FTP(.c/.h)を自作して置き換えるとともに、TCPIP.h や StackTsk.c に対して必要な
修正を、わずかですが行いました。
【FTPサーバーについて】
実装している、FTPサーバー機能は、FTPクライアントから使えるよう、最低限の機能を実装
しています。しかし、現在メジャーとされるフリーのFTPクライアントは、どれも妙な癖をもって
おり、RFCで規定されている動きをしないものさえ存在します。
本作で動作確認したクライアントは、FFFTP ですが、このクライアントも、サブディレクトリを
持っているディレクトリをドラッグしてアップロードしようとすると、なぜだかわかりませんが、
連続してコネクションの接続と切断を繰り返されるので、microchip のTCP/IPスタックが
それについていけず、うまくいきません。幸い、それ以外の操作では問題ないので、困る事は
ないのですが、この、変な癖対策は行っていません。
他のクイアントでうまくいかない場合、FFFTP を使ってみてください。
【割込みと優先順位】
【クロック切り換えについて】
PICは、最大80MHz で駆動できますが、電池を無駄に消費しないように、各機能において
必要最小なクロックで動作するようにしています。下記は、その一覧です。
FM:32.768kHz 操作/表示時は瞬間的に8MHz
AM:32.768kHz 操作/表示時は瞬間的に8MHz
NR:8MHz
MP:8MHz
IN:32.768kHz、WiFi接続時 40MHz
【充電について】
充電開始トリガーは、ケータイと似たような感じです。
・ACアダプタを挿入した時、電池電圧が低ければ充電
・電源ON中に、電池電圧が下がってくれば充電(レベル1以下になるとで充電)
充電中は、PICの電源はONになっており、電圧や時間の監視を行っています。
電圧が所定の電圧に達したとき、または、12時間を経過した時のどちらかで終了するように
なっています。
【データの保存について】
プログラムは、最後に選択したモードやチャンネル等のデータを、microSD へ保存するように
なっています。調子が悪い、プログラムを変更した等の理由で初期化する場合は、ルート直下
にあるファイル 'SETTING.DAT' を、FTPを使う等して削除して下さい。
【ディスプレイ表示】
ボタンを押すとクロックアップしてWiFi接続し、IPアドレスを表示
右上は、各モード共通のインジケーター表示領域になっています。下記の表示を行います。
1) オフタイマー残分: #15 等
2) 電池残量: F(フル)、2(高)、1(低)、L(ロー)、E(エンプティー) ※写真のNは古い表示
3) 充電中: 充電中は、→矢印が現れます
尚、前面LEDは、電源OFF中の充電時は点滅します。
【その他】
・PING 及び NetBIOS に対応しています。例えば、'ping honeyradio' に応答します。
・黄色いボタン(Function)を長押しすると、フェードアウトオフタイマーが設定できます。
・IN モードでは、外部入力の視聴及び、WiFi接続してFTPアクセスを行えます。
・軽いファイルアクセスならば、NRモードで音楽視聴時でも問題なく可能です。
ソース: MPLAB Project files (HoneyRadioSrc.zip) 2012/05/20
HEX: HoneyRadioHex.zip 2012/05/20
SDCard: SDCardSample.zip
SDカードには、上記 'SDCardSample' を解凍して丸ごと入れてください。設定ファイルには
サンプル値が入っているので、必要な通信設定を記述して下さい。
ラジオ局は、大阪のものがすでに入っています。ネットラジオはお好みに合わせて追記して
ください。
音楽ファイルは、MUSICディレクトリの下に、アルバム毎にディレクトリ作って、その中に音楽
ファイルを置いて下さい。ファイル名は8文字までしかサポートしていません。
【開発環境】
MPLAB v8.83 + C32 v2.02 マイクロチップテクノロジージャパン株式会社
全て無料の環境で開発する事が出来ます。
【ライタ&デバッガ】
PICkit 3 または 対応ライタ
【ライブラリ】
下記のライブラリを使用しております。上記ソースに全て同梱していますので、別途ダウン
ロードする必要はありません。
・Application Librarys v2011-12-05
・FatFs R0.09
Application Librarys は Microchip TCPIP Stack を利用していますが、必要なファイル
のみを同梱しています。利用する機能も必要最小限にとどめています。
尚、オリジナルに対して下記の修正/置換を行いました。
1) StackTsk.h
APP_CONFIG構造体のnetworkType宣言誤りの修正
2) Tick(.c/.h)の品質が悪いので自作して置き換えました
Microchip製のTickは、効率も悪く不具合もあり、良いソースとはいえません。
特に、TickGet()は頻繁に呼び出すため、シンプルで性能の良いコードが求められます。
簡単な3つの関数とマクロを用意すれば良いだけなので自作しました。
3) FTP(.c/.h) は使えないので自作して置き換えました
オリジナルのものは、殆どのコマンドをサポートしておらず、使えません。また、MPFS2を
中途半端に使おうとするので、リンクエラーが出たりします。
FTP(.c/.h)を自作して置き換えるとともに、TCPIP.h や StackTsk.c に対して必要な
修正を、わずかですが行いました。
【FTPサーバーについて】
実装している、FTPサーバー機能は、FTPクライアントから使えるよう、最低限の機能を実装
しています。しかし、現在メジャーとされるフリーのFTPクライアントは、どれも妙な癖をもって
おり、RFCで規定されている動きをしないものさえ存在します。
本作で動作確認したクライアントは、FFFTP ですが、このクライアントも、サブディレクトリを
持っているディレクトリをドラッグしてアップロードしようとすると、なぜだかわかりませんが、
連続してコネクションの接続と切断を繰り返されるので、microchip のTCP/IPスタックが
それについていけず、うまくいきません。幸い、それ以外の操作では問題ないので、困る事は
ないのですが、この、変な癖対策は行っていません。
他のクイアントでうまくいかない場合、FFFTP を使ってみてください。
【割込みと優先順位】
優先度 | 割込みハンドラ | 用途 |
1 | _T3Interrupt() | オフタイマー・充電タイマー |
2 | _CNInterrupt() | SW入力 |
3 | _WFInterrupt() | MRF24WB0M |
4 | _T1Interrupt() | AM局発カウンタ |
7 | _T2Interrupt() | Tickカウンタ |
【クロック切り換えについて】
PICは、最大80MHz で駆動できますが、電池を無駄に消費しないように、各機能において
必要最小なクロックで動作するようにしています。下記は、その一覧です。
FM:32.768kHz 操作/表示時は瞬間的に8MHz
AM:32.768kHz 操作/表示時は瞬間的に8MHz
NR:8MHz
MP:8MHz
IN:32.768kHz、WiFi接続時 40MHz
【充電について】
充電開始トリガーは、ケータイと似たような感じです。
・ACアダプタを挿入した時、電池電圧が低ければ充電
・電源ON中に、電池電圧が下がってくれば充電(レベル1以下になるとで充電)
充電中は、PICの電源はONになっており、電圧や時間の監視を行っています。
電圧が所定の電圧に達したとき、または、12時間を経過した時のどちらかで終了するように
なっています。
【データの保存について】
プログラムは、最後に選択したモードやチャンネル等のデータを、microSD へ保存するように
なっています。調子が悪い、プログラムを変更した等の理由で初期化する場合は、ルート直下
にあるファイル 'SETTING.DAT' を、FTPを使う等して削除して下さい。
【ディスプレイ表示】
ボタンを押すとクロックアップしてWiFi接続し、IPアドレスを表示
右上は、各モード共通のインジケーター表示領域になっています。下記の表示を行います。
1) オフタイマー残分: #15 等
2) 電池残量: F(フル)、2(高)、1(低)、L(ロー)、E(エンプティー) ※写真のNは古い表示
3) 充電中: 充電中は、→矢印が現れます
尚、前面LEDは、電源OFF中の充電時は点滅します。
【その他】
・PING 及び NetBIOS に対応しています。例えば、'ping honeyradio' に応答します。
・黄色いボタン(Function)を長押しすると、フェードアウトオフタイマーが設定できます。
・IN モードでは、外部入力の視聴及び、WiFi接続してFTPアクセスを行えます。
・軽いファイルアクセスならば、NRモードで音楽視聴時でも問題なく可能です。
隊長
カテゴリー
PR