PICマイコンによるMARK-X用モータードライブコントローラの自作2009年09月11日 23時16分00秒

自作基板とPICKit2を接続したところ
どうせPICマイコンの開発になれるために何か作るのなら実益がある方がいいということで、GOTOマークX用のモータードライブコントローラ作成を試みだしました。

基本方針

  • 手持ちのCCSコンパイラ(PCH)ではコンパイルできないPICマイコンであるPIC16Fを使用する
  • ピン数をぎりぎりにしてどこまで出来るかを試す
  • モータードライブコントローラとしては機能てんこ盛りにする
  • PICKit2でデバッグできるようにピン出しする

モータードライブコントローラ基本仕様

以下の機能を持ちます。
  • 恒星時追尾(当たり前)
  • キングスレート追尾
  • 太陽時追尾
  • 月時追尾
  • 1/2恒星時追尾
  • 赤緯コントロール
    ※通常は停止していて、PUSH SWを押した時だけ順方向と逆方向の回転パルスを発生させる機能
  • いわゆる、コメットトラッカー機能
  • RS-232C接続機能
  • リモートスイッチはEOS E3用ケーブル利用を前提
    ※半押しスピードアップ、全押し停止
    ※えと、EOSのリモートスイッチ全押し時は2接点両方同時にCOMと接続されるので、要は両方押された状態でどっちを優先させるかという機能を実装するといういみ。
  • MARK-X純正モータと日本電産サーボなどの1/600ギアードモータ直結の両方を切り替える機能
    ※EEPROMの定義テーブルで切り替え可能とする
  • 任意のメーカの組み合わせ歯数(減速比)対応を容易にする
    ※EEPROMの定義テーブルで切り替え可能とする
  • 1-2相励磁と2-2相励磁切り替え機能
    ※基本は1-2相励磁のクロック計算で2-2相励磁時にはソフトカウンタで1/2分周して対応。
  • 正転・逆転
  • 基本追尾機能の切り替えはロータリーDIPスイッチで行う

PICの選定

Yahoo!オークションでPICマイコンによるモータードライブコントローラの出品が目立っていることもあって、とある品物を研究用に落札しました。
落札品はPIC16F648Aを使っていました。これは秋月で購入すると180円です。これとピンコンパチでプログラム領域が半分のPIC16F628Aというものがありますが、これは1個160円です。

一方、私が持っているCコンパイラはCCSのPCHなので、PIC16Fのコンパイルは出来ません。

というわけで、HITECH-CのLite版なども含めて容量制限にも耐えられるように容量の小さいPIC16F628Aでの開発を試みます。 どうせ、タイマー割り込みと通信機能だけなのでそれほどステップ数は食わない前提です。

実験用基板の作成

部品を集めて自作します。 解説抜きで写真のみ載せておきます。 実は、この基板ではプログラムの書き込みは出来ていますが、PICKit2でのインサーキットデバッグ(ICD)が出来ていない状況です。これについては別途整理します。
基板作成中
部品をほとんど載せたところ
ごちゃごちゃな配線

ちょっとだけデバッグエラーの状況

ターゲットのVDDが検出できないということでICDできない状況の画面です。PK2Error0024というエラーコードです。

ぐちゃぐちゃな配線をきちんと見直して対応するのも面倒なので、もっとシンプルな基板を別途作って実験予定です。

PK2Error0024