Zeekon4Aを組み立てる(その4)

ZeeKon4Aはとっくに完成していましたが更新をさぼってました。

ディジタル部分のヒューマンインターフェースを担当しているPIC16F877Aにプログラムを書き込み中。

画像


ICSPのための端子を基板に設けると、手前の基板が邪魔になるので、中継コネクタで出してあります。プログラマーはPICSTART Plusの互換機(というか純正品を作っている会社が自社のケースで売っているんだと思いますが)です。ちなみにCコンパイラはPICCを使っていますが、6年かそこら前のバージョンなので、プログラマーなども含めて開発環境を一新するか、今後はAVRマイコンだけにするか迷っています。

次にそのAVRのプログラミング風景。

画像


使っているのはATmega64Lです。AVRのほうが焼きこみが速いです。開発環境はCodeVisionAVRです。

ただ、AVRマイコンにはじめてプログラムを転送するとき、いきなり書き込み禁止がセットされてしまうことが何回かありました。表面実装してあるとすごい痛手です。

たぶんこういうことだろうと思います。ATmega64を使うときはたいていクロックを内臓RC発振器で周波数は8MHzに再設定して使っているのですが、バージン状態ではクロックが内臓RC発振器で1MHzに設定されているため、はじめから8MHzのつもりでプログラムしようとすると、AVRマイコンから見たらなんかめちゃくちゃなコードが送られて来て、それがたまたま(というか高い確率で)書込み禁止フラグを立てるコマンドになってしまうのではないでしょうか。

書き込み禁止になったやつもガンマ線を当てれば元に戻るのではないかと思います。こんどTEM(透過型電子顕微鏡)をやってる学生にたのんでTEMのどこかに入れておいてもらおうか。でも内臓RCクロックの校正データも消えるかも知れません。

ところでこの装置ではATmega64Lが同じ基板に2個載っていてI2Cで通信しています。一つでは速度が足りないという理由もありますが、ピン数が足りないということもあります。マイコンは8ビットしか使ったことがありませんが、そろそろ32ビットを使ってみようと思っています。

今回の仕事では24ビットのデータ(±200Vの範囲を十分小さい刻み幅で分割するため24ビットDACを使用している)をマイコンの間でI2Cで通信したり、CPLDとの間では16ビットのバスでやり取りしています。通信は他の動作とは非同期で発生するため、24ビットを3分割して扱う必要がある8ビットマシンでは、上位バイトと下位バイトを同期させる工夫が必要になり、面倒なだけでなく無駄な時間がかかります。

チップの値段はATmega64が700円くらいでSH2が3000円くらいだとすると、だいたいビット数に比例程度ですが、性能の差はそれ以上ですからね。使わない理由がわからないということろですが、新規の設計に取り掛かるときに時間の余裕がないと、結局使ったことがある技術だけで構成することになってしまいがちです。

次に(といっても必ずしもこの順番でプログラムしたわけではありませんが)CPLDをプログラムしているところ。

画像


プログラマはXilinxの純正品です。
実際にはプログラムや基板の手直しなどで何日か費やし完成を迎えました。

画像

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック