PLAYERはそれこそ、カラーLCDもついてSDカードも搭載しているし、フラッシュROMなんかもあって、MP3が再生できる素敵なプロジェクトなんだけど、カラーLCDもいつまで入手できるかわからないし、先日上げたとおり色々な種類のものが手元に来てしまっていて扱いづらい。Clockでは以下にフォーカスしてお手軽プロジェクトとしてまとめたい。RTCを搭載して時計にしよう。入手性の良い汎用キャラクタモジュールを採用してお手軽にしよう。イヤホンから音楽が流れるのではなくて、スピーカで直接鳴らそう。上記の特徴を活かして目覚まし時計に仕立てよう。検討中のブロック図はこんな感じ。だいたいの外観も検討。一応検討のみという段階。mkIIは便利なのですがオンフィールドで書き換えるには不便ですし、ユーザに書き変えを頼むわけにもいきません。Atmelが公開しているアプリケーションノートAVR109に自己プログラミングがありましたので試してみました。ターゲットMPUはATmega8とATmega328Pです。preprocessor.shを使うとdefines.hに記述する内容を吐き出してくれるようになっています。baud_rateデバイス名とブートコードサイズ、プログラミングモードに入るポート名とポート番号、CPU周波数とUSARTのボーレートを指定します。defines.hと言った感じです。このケースの場合、PORTBのビット0がLOWレベルになっていたらプログラミングモードに入ります。ブートローダ内部では対象ポートのプルアップレジスタを有効にしますので、外付け抵抗は必要ありません。ピンにスイッチを付けておくだけでこの機能をサポートするボードが完成します。(ブートローダはこれ以外のI/O設定は一切行いません。要するにすべてのピンが入力のままです。)ターゲットにブートローダを書き込んで一度電源を切り、PORTBのビット0をLOWにして電源を入れます。ブートローダが起動したはずですのでminicomを使って接続してみましょう。コンソールに大文字Sを入力した時にAVRBOOTという文字列が帰ってくればブートローダが期待通りに動作しています。ホストは特定のプロトコルに従って書き換え対象プログラムをブートローダに渡すことで、ブートローダが自身のフラッシュを書き換えてくれるというわけです。ここで疑問が湧いてきます。ユーザプログラムはどこに配置するのでしょう?何か特別な配慮が必要になるのでしょうか?ブートローダは上書きできないようにできるのでしょうか?さて、疑問を一つずつみていきましょう。試しに、ブートローダのことを意識せず従来のユーザプログラムを書き込んでみましょう。?とすると対応しているプログラマを表示できます。Loader」というのがあります。flash:w:sdcmod.hex書き込んでみました。respondingあれれ。プログラマIDやソフトウェアバージョンは取得できているようです。書き込めませんでしたね。プログラマからの応答がないようです。ここで言うプログラマとはまさにブートローダの事です。プロトコルの仕様では0x13を返すようになっています。ブートローダのソースを見るとまさにそういう実装になっています。あれれ?ちょっと何か思い違いがありそうですね。ここからは次回のデバッグ編に続くことになりそうです。Redmineソースファイルの管理はSubversionを使っています。Redmineを試してみました。以前はそれこそ半日かけてインストールという感じでしたが、何の苦労もなく完了。気になる点は一点だけ。startした時に何やら怒られます。start.これはメッセージどおりにこれらを削除してやれば良さそうです。startで再起動できます。いった事が起こることを想定してctlscript.shに同様の処理があると良いかもしれません。6610と呼ばれている液晶モジュールについての続編2つの商社から2回のオーダで入手した液晶の外見の違いから見る種類は、なんと5種類。2回のオーダだから当然集めたくてこうなったわけではない。ここではこれらの違いについて「基板」と「LCDとFPCの接続押さえ金具の外形」から整理してみたい。国内外のサイトでは単に「緑色のPCB」とかで区別しているところが多い。実際に手元にある5種類を見る限り、PCBの色で適切に分類できるわけではなさそうだ。デバッグの過程で判明したコントローラに関しては型名を明らかにするつもり。金具:中央に対照的に配置され比較的小型。白色のジェルで埋まっている。