パルス発生器(H8マイコン型)


(概要) 最初に作ったNMR用パルサーです。ワンチップマイコン(Renesas H8-3052F)だけで作ることができウルトラローコスト(1万円ぐらい)、かつ十分実用的です。基本機能は市販品に対しても遜色ないはず。これまでに3台作製。
Specifications
ポート数 16
パルス分解能 40ns
最小パルス幅 1μs
最長パルス幅 6000年ぐらい、少なくとも数時間までは確認済み。

ソースコード

ファームウェアのソース。ファームウェアのモトローラバイナリはこちら
ホスト側のプログラム実装(これの一部です)はこの辺り

解説

上の写真に写っている基板は自作ですが、かの有名なAKI-H8/3052F等 を使えばハードウェア的にはTPCの線をBNCにとりだして、シリアルポート(SCI0)を配線するだけでパルサーになります。 最近、予備機として一台作成しました。USBから電源をとり、USB-シリアル変換機をダイキャストボックスの中に入れてしまっています。ポートも半分し か取り出していないので結構手を抜いてます。ノイズやグリッチが気になる場合はバッファとEMC対策部品を追加した方がいいでしょう。

手抜きパルサー外観

手抜きパルサー内部

3052FのTPC(タイミングパターンコントローラ)は16bitの信号線をもち、DMAコ ントローラと組み合わせることでハードウェアだけで16チャンネル、256系列のパルスを出せます。25MHzのクロックでは1us程度の短さでパルス を変化できるようです。長いパルスや256系列以上のパルスを出す場合、割り込みによるソフトウェアの助けが必要です。NMRのパルサーとして動作させる ためには 次のような割り込み動作をリアルタイムに行うファームウェアが必要となります。
  1. PCとのシリアル通信。SCI0をDMAで使うと115200bpsで通信できます。
  2. パルスをTPCから出す。ITU0でDMAを起動させて、ITU0自身のGRAとTPCにデータを書き込んでいます。
  3. ITUとTPCのためのパルス系列の生成。上記のDMAのデータ転送元にパルス間隔とパターンを用意し続けます。
柔軟性とデバッグのためにファームウェアはモニタソフトの形をとっています。シリアル通信とパルス発生のみ割り込みを用い、他はシリアルからのコマンドで 逐次実行しています。ファームウェアのブートモードでの書き込みは、SCI0ではなくSCI1を使うので、注意してください。

参考文献

Copyright (C) 2002-2008 Kentaro KITAGAWA.

Valid HTML 4.01 Strict 正当なCSSです!