マイコン工作実験日記

Microcontroller を用いての工作、実験記録

ハードの追加

2008-06-05 23:57:49 | W-SIM
製作実験中のタッチパネルジャケットですが、ハードウェアの追加をするために基板2階建てにすることにして、作業を開始しました。追加するハードウェアは、以前の携帯型ジャケットでの経験を基にしています。
  • 電池。リチウムポリマー電池とその充電機能を用意します。USB給電で充電することとし、コントローラとしてはMAX1555を使います。
  • LDO. 電池の出力から3.3Vを生成するために、低ドロップのレギュレータを使います。TIのTPS77833というものを使ってみます。
  • CODECとしてML7041を載せます。もちろんマイクとスピーカも接続予定。前回は、クロックをCPU側クロックから生成しましたが、今回は独立した2.048MHzを用意することにしました。
  • DataFlash. SPIでつなげられるフラッシュとしてAT45DB16を載せます。自動応答や録音機能を用意する際に使おうという目論見なのですが、はたしてそこまでソフトを作れるかどうか。。
  • W-SIMからのPCMを通話時はCODECへ、自動応答時はMCUへつなぎ替えるためのセレクタ。

ほんとは基板1枚に収めることができるといいんですが、何しろ思いつきで作っているし、ピッチ変換基板頼みで工作しているので、どうしても基板面積を消費してしまいます。一度ちゃんとハードが動くことを確認したら、プリント基板を起こしてみたい願望はあるのですが、いつになったら挑戦できることになるでしょうか。。

GIFでの地図表示

2008-06-03 00:07:41 | LCD
giftopnmのコードに手を入れてGIF形式で地図データをダウンロードしての表示ができるようになりました。Unix環境で動作するコードを使うためにありがちな修正を施しています。

まずは動的なメモリ取得。現在の動作環境ではmallocを用意していないので、静的にメモリを用意するように変更。幸いgiftopnmではmallocは1か所でしか使われていませんでした。局所変数の使われ方も確認。Unix用コードだと、平気で大きなバッファを関数内で局所的にとったりしているので、その関数が呼ばれた時にスタックがあふれて暴走する原因となります。staticに置き換えたり、タスクのスタックサイズを増やしたりして対応。

続いて、メッセージの表示。printfやfprintfを適宜、デバックやsyslogメッセージに書き換え。エラー発生時には、展開動作を終了するように修正。

バッファの使い方もざっと確認して、shortで用が足りそうなところは、intからshortに修正。Unix環境だとほとんど気にしないでとりあえずintで済ましていることが多いですが、メモリ消費量が半分になりますから、違いは大きいですよね。

そんなこんなでなんとかGIF形式から表示できるようになりました。所要時間は短い時は3, 4秒で済むのですが、多くの場合6, 7秒かかってしまうようです。うーん、もう少し快適にダウンロードできないものかなぁ。TINETでは各レイヤでの統計情報を採れるようになっているので、とりあえずHDLCとPPPでのエラー発生状況を確認してみましたが問題は発生していないようです。