今回もPICオルゴール動画投稿者さんからヒントをいただきました。

 

PICへのプログラム書き込みに PICkit2 を使っています。

開発環境のコンパイラが HEX ファイルを生成するので、それを PICkit2 で書き込むわけです。

 

で、この PICkit2、いつの間にか BIN ファイルも読み書きできるようになってました。

そのやり方はHELPマニュアルでは出てきません。なんとReadMeに書いてあります。

ファイルをエクスポートするときに、出力ファイルタイプを .bin で命名すれば、HEX形式ではなくBIN形式になります。

ファイルをインポートするときも、選ぶ入力ファイルタイプが .bin であればBIN形式として扱います。

(↑微妙すぎて、わかりにくい新機能。バージョンアップのときリリースノートやReadMeはよく読まないと^^;)

 

BIN形式が便利なのは、EEPROMにデータを書き込むときです。

今日まで、PICkit2でEEPROMへ直接データが書き込めると思っていなかったので、

・プログラムの固定変数エリアからプログラム自身が書き込む

・USART通信から流したデータをプログラムで受けて書き込む(これは公開してもいいかも)

なんてことをしていました。知らないとはおそろしい・・・

 

PICkit2 と EEPROM(種別による) の結線方法は ReadMe に出ていますので、付属基盤の空きパターンエリアに8ピンソケットを半田付け&線の引き回しをしました。

 

SDA の PullUp は 2.2kΩのチップ抵抗、写真では小さすぎて見えないかも。

 

4倍拡大

 

PICkit2 の6ピンのうち6番目AUXはいつも使われないのでなんだろうと思っていましたが、EEPROM用SDAだったのですね、初めて使いました。

 

音楽データはいつもこんなテキストファイルを用意して、流し込んでいました。

(テキストファイルは自由に編集できる扱い易さが大きな利点)

 

今度はこれを BIN 形式に変換する必要があります。

Tcl/Tk で、15分程度で変換プログラムを書きました。たった13行なんでこんなもんでしょう。

(puts のオプション -nonewline 、マニュアル通り書くとエラーで怒られる。ハイフンを取って nonewline だとうまくいく。うーん、言語仕様ミス?)

 

このプログラムを実行すると、こんな感じで元のテキストファイルから BIN ファイルができあがります。↓

 

 

USART通信のための結線やターミナルソフトの使用といった煩わしさから開放されました^^。