安井です。こんにちは。 > それぞれの相の出力パターンをテーブルにつくり、DMAを使って(?) > ネクストデータレジスタ→ポートレジスタを経てパルスを出力 H8-300H シリーズアプリケーションノートでは、プログラマブル タイミングパターンコントローラ(TPC)を使って、モーターの 各相のON/OFFを直接制御していますが、CW,CCWク ロック入力の市販ドライバを使いましたので、TPCで励磁パ ターンを出力するのではなく、タイマーの出力をそのままCW、 CCWパルスとしてドライバに入れています。 > ・DMAってどう使って、テーブルのデータをNDRに渡すの NDRは使っていませんが、タイマーのコンペアマッチでDMAを 起動でき、DMAでタイマー値を転送できますので、その機能を 使ってタイマーのタイムアップ毎に違うタイマー値をDMA転送 しタイマーの時間を変えています。 > ・数のコントロールをタイマーの減算カウントで行うって何 これは間違っていました。DMAコントローラへの転送数を 制御することで、出力するクロックパルスの数を制御しています。 1回の動作の中で、加速運転時、定速運転時、減速運転時で DMAの動作モードを変えてDMAを起動しています。 > ・スルーアップ・ダウン等のパルス幅を変えるのはどうしているの クロックを作っているタイマーの設定値を変えています。 最低速度から最高速度までのクロックのタイマー値を計算して、 タイマー設定値テーブルを作っておき、DMAでタイマーに転送 するデータを持ってくる場所を変えていけば、タイマーがタイム アップする度にタイムアップ時間を変えることができますよね。 > ・コントローラを使うと、4相分のパルスを生成しなくて済むの モータードライバを使うと?かな。 モータードライバを使うと、CW、CCWクロックをドライバに 与えれば、モーター各相の駆動制御をうまくやってくれます。 モーターの性能を最大限引き出す様な定電流駆動回路を作る自信が 無かったのと、5相ステッピングモーターの励磁方式に関する特許 のこともあり、市販のドライバを使っています。モーター1台分で 1万円〜はしますが。 ドライバを使わないで直接モーターを駆動 したい。との事でしたら、TPCを使った方法の方が良いかな? いじょ