2010年5月2日日曜日

マイコン基板に最低限欲しい要素

ここ最近Make: Tokyo Meeting 05関連で、5つの異なる基板を相手にファームウェアを書いています。
これら5つの基板は異なる時期に異なる目的で設計したものです。

中にはデバッグしづらいものがあります。
今まで自分の設計した複数の基板を同時に観察したことがありませんでしたが、良い機会です。
デバッグも楽でユーザも嬉しい基板にするにはどうしたら良いのかを整理してみましょう。

ハードウェア
  • シリアルポート。最近はUSBに変換してくれる便利なデバイスが主流。これで良いです。
  • 発振器。ブートローダ経由での書き込みやデバッグ時のインフラとしての信頼性が必要。
  • マイコンに直接つながったLED。ちょっとしたところで役立ちます。
  • リセットスイッチ。私はかなりの確率で付けない。(理由は後述。)
  • デバッグ用スイッチ。私はかなりの確率で付けない。(理由は後述。)

ファームウェア
  • デバッグ用ターミナル。自由に状態を制御できます。
  • ブートローダ。いちいちライタを持ち歩かなくて済みます。ユーザも楽です。

最低限欲しい要素としてはこのくらいでしょうか。
基板によって実現したいサイズは異なりますよね。
私の場合、リセットスイッチやデバッグスイッチを真っ先に取り除いてしまいます。

その代わりファームウェア側でターミナルを用意して、状態をターミナル経由で自由に制御できるようにします。リセットは関数ポインタで所定のアドレスに飛ばすだけですし、スイッチが無くてもコマンドを入力して内部状態を遷移させれば良いわけです。当然これには「きちんとブートすること」という前提があります。


設計では常に何らかのトレードオフがあるわけですが、制約条件にとらわれすぎて必要なものまで削ってしまうことがあります。5つの基板のうちいくつかはそんな状態になっています。良い悪いではなく、実際に少し使いづらいのが実際でした。

現状のところCuBeatSystemsで設計している基板は「作って楽しい」、「触れて楽しい」、「遊んで楽しい」とかなり基板に近いところにありますから設計者の視点に近いところの使い勝手は重要です。

この人の設計にはこういうインフラが整っているから何を買っても安心となれば嬉しいところです。
今後の設計に活かしたいと思います。

0 件のコメント:

コメントを投稿