今回も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通信のための結線やターミナルソフトの使用といった煩わしさから開放されました^^。






