忍者ブログ
 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 を使ってみてください。

【割込みと優先順位

優先度 割込みハンドラ 用途
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を使う等して削除して下さい。

【ディスプレイ表示】

DSCN1195.JPG DSCN1196.JPG

DSCN1197.JPG DSCN1198.JPG DSCN1202.JPG

DSCN1205.JPG DSCN1206.JPG DSCN1211.JPG

DSCN1194.JPG ボタンを押すとクロックアップしてWiFi接続し、IPアドレスを表示

右上は、各モード共通のインジケーター表示領域になっています。下記の表示を行います。
1) オフタイマー残分: #15 等
2) 電池残量: F(フル)、2(高)、1(低)、L(ロー)、E(エンプティー) ※写真のNは古い表示
3) 充電中: 充電中は、→矢印が現れます

尚、前面LEDは、電源OFF中の充電時は点滅します。

【その他

・PING 及び NetBIOS に対応しています。例えば、'ping honeyradio' に応答します。
・黄色いボタン(Function)を長押しすると、フェードアウトオフタイマーが設定できます。
・IN モードでは、外部入力の視聴及び、WiFi接続してFTPアクセスを行えます。
・軽いファイルアクセスならば、NRモードで音楽視聴時でも問題なく可能です。

拍手[1回]

隊長

Copyright © [ The 電子工作 ] All rights reserved.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]

PR