• 締切済み

H8/3069Rでパルス時間間隔測定

 放射線をGM管を使ってパルス信号に変換し、そのパルス時間間隔を測定しようとしています。  パルス信号に変換するまでは成功し、H8/3069Rを搭載したイエローソフト社のYH3069RU-1ボードを購入してマイコンの使い方を学んだのですが、マイコンだけでなく電気回路においても初心者なのでボードのどの機能を用いて回路を設計すればいいのかわかりません。

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.6

>(1)16ビットITUでオーバーフロー割り込みが可能なら、割り込みでカウントアップする事で16ビット以上の桁のカウントが出来ます。 >イエローソフトさんが教えてくれた方法とどちらが一般的な方法ですか? どちらかと言うと外部クロックでタイマ周期を適正にする方が正解だと思います。外部クロックを用意する手間がありますが。 >またまた見当違いなことを言っていたらごめんなさい。もし外部クロックを使っての測定の場合は外部SRAMを使う必要ってなくなりますか? USBで転送が間に合うなら確かに大きなバッファは必要ないですね。 >マイコンボードに複数の穴がありすぎてどれがIOポートでどこにパルス信号を送る線をつなげればいいかわかりません。 インプットキャプチャできる端子に接続する必要があります。 TIOCA2~0,TIOCB2~0の端子に接続してください。CN2の 19 PA7/TP7/TIOCB2/A20 20 PA6/TP6/TIOCA2/A21 21 PA5/TP5/TIOCB1/A22 22 PA4/TP4/TIOCA1/A23 23 PA3/TP2/TIOCB0/TCLKD 24 PA2/TP2/TIOCA0/TCLKC です。どれでも良いと思うんですがH8マイコンは概要しか知らないんで罠があるかも知れません。とりあえずは実験なのでダメなら接続しなおすだけですからね。兼用端子なので、入力端子の切替とかでレジスタ設定が必要なのでお忘れなく。

j16ac08
質問者

お礼

度々ありがとうございます!! おかげ様で説明書の端子の見方が何となくわかってきました! 説明書によると 23 PA3/TP2/TIOCB0/TCLKD 24 PA2/TP2/TIOCA0/TCLKC を使えば外部クロックを使って測定できそうです。 zwiさんのおかげでようやくプログラミングのほうに突入できそうです。なんせ初めてのプログラミングなので相当苦労すると思いますがとにかく頑張ります! またお世話になる可能性がありますがその時はよろしくお願いいたします。本当に本当にありがとうございました!!!!

j16ac08
質問者

補足

先ほど書き忘れたのですがイエローソフトさんによればマイコン自体に外部クロックの機能が付いているそうなのでそれを使ってみます。正直説明書を読んでも外部クロックのことはよくわかりませんがとにかく頑張ります!

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.5

すいません、教えてgooを使っているのですが書き込まれたときの通知メールが届きません。今お礼が書かれていることに気づきました(^_^;) ってokwaveの通知メールに障害があったと返事が来ましたね。あはは(^_^;) じゃあ、気になるポイントを書くと。 (1)16ビットITUでオーバーフロー割り込みが可能なら、割り込みでカウントアップする事で16ビット以上の桁のカウントが出来ます。 (2)10万点測定って事で256KBでは足りませんが、512KBでは足りそうな感じですのでメモリを増設することを考えた方が解決が簡単です。 (3)転送の問題ですが、転送速度を計測速度が上回るとやがてはオーバーフローします。RS232Cだとかなり不安ですね。USBでバースト転送すれば間に合いそうな気もしますが今度は割り込み等でじゃまをして計測の精度を下げないか不安です。このあたりは実験して妥協点を探ってみた方が良さそうです。 今後更に精度等が必要になった場合は、計測マイコンとパソコンへの通信マイコンを分ける(マイコン同士は高速なリンクで接続)とか手も有りますので状況に合わせて考えて行けば良いと思います。

j16ac08
質問者

補足

何度もお答え頂きありがとうございます。 本日イエローソフトさんへ電話をしさまざまなお話を頂きました。 まずそのことについて書かせていただきます。 ・外部クロックを3kHz~4kHz程度に設定し、内部クロックに接続することにより数十秒の測定も可能とのこと。 ・インプットキャプチャを使うことによりパルス時間間隔の測定をする。 ・USBでデータ送信を行い割り込みで時間間隔を測定するだけならばCPUへの負担も少なくミリセックオーダーならば測定できる。 とのことでした。 >(1)16ビットITUでオーバーフロー割り込みが可能なら、割り込みでカウントアップする事で16ビット以上の桁のカウントが出来ます。 イエローソフトさんが教えてくれた方法とどちらが一般的な方法ですか? >(2)10万点測定って事で256KBでは足りませんが、512KBでは足りそうな感じですのでメモリを増設することを考えた方が解決が簡単です。 またまた見当違いなことを言っていたらごめんなさい。もし外部クロックを使っての測定の場合は外部SRAMを使う必要ってなくなりますか? >3)転送の問題ですが、転送速度を計測速度が上回るとやがてはオーバーフローします。RS232Cだとかなり不安ですね。USBでバースト転送すれば間に合いそうな気もしますが今度は割り込み等でじゃまをして計測の精度を下げないか不安です。このあたりは実験して妥協点を探ってみた方が良さそうです。 バースト転送ですね。勉強しておきます。 あと追加で質問させていただきます。 マイコンボードに複数の穴がありすぎてどれがIOポートでどこにパルス信号を送る線をつなげればいいかわかりません。H8マイコンのハードウェアマニュアルとボードの説明書を読んでみたのですが全く理解できませんでした。恐らく初歩的すぎる質問だと思いますが教えて頂けると幸いです。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

>ごめんなさい。パルス幅ですよね…。勘違いして平均パルス時間間隔を記述してしまいました。パルス幅は本日中にオシロスコープで測定してからご報告します。 私なりの想像として計測と言うことで、パルスの幅とパルスの時間間隔を記録する必要があると勝手に思っているのですが違いますか? で、パルスの幅を最低単位1msで計測するとして最大幅が2秒以上と言うことで想定すると値の範囲は1~2000と成りますので2バイトのメモリを1パルスに付き必要とします。 更にパルス間隔と言うことで、「最大でも数10秒」と想定しますが最低単位1msだと1~40000ですか。2バイトだと最大65535msが上限と成りますので2バイトだと足らなくなる可能性があります。 とりあえず合わせて4バイトで、これは1パルス分の記録に必要なメモリ量としてみます。 >256秒ぐらいですね。これで足りますでしょうか? 私が気にしたのは、何パルス記録したいかです。 1msのパルス幅とパルス間隔でパルスが連続した場合は、256KB/4バイト*2msで約128秒でメモリを使い果たします。まぁ、ここまで極端な例は無いのでそれ以上に使えるとは思いますが。こういう設計の問題は作り出す前に色々と考えておく必要がありますね。 >あと思いついたのですがパソコンにデータを送信せずにボードにSDカード等のフラッシュメモリを取り付けて測定して方が処理速度はあがりますか? フラッシュの記録もとても高速とは言えません。 SRAM > フラッシュ > USB > RS232C って感じでしょうか。SRAMが一番早いです。SDフラッシュは書き込み専用ハードじゃないマイコンが制御すると遅いので実測してみないと実用になるかは良くわからんです。SDフラッシュへの書き込みライブラリや回路が既に使った実績が有るなら難しくはないでしょうが、実績が無いと苦労すると思いますよ。イエローソフト社だとSDフラッシュのパーツとライブラリが有るみたいなので、多少難易度は低いかなと思いますが導入してみないと難易度は分りませんしね。記録停止後、RS232Cでパソコンに転送するのが一番簡単だと思います。 それとフラッシュを使うかどうかは、SRAMで足りるかどうか、電源断などの記録保護のために必要かどうか、技術的・時間的に可能かどうかで判断されると良いと思います。

j16ac08
質問者

補足

>私なりの想像として計測と言うことで、パルスの幅とパルスの時間間隔を記録する必要があると勝手に思っているのですが違いますか? パルスの時間間隔のみを測定しようとしています。確かにパルス幅も測定できれば理想的なのですが。ちなみにオシロスコープで計測したところ波形整形する前のパルス幅は約1msでした。 >私が気にしたのは、何パルス記録したいかです。 申し訳ありません。パルス時間間隔を最低1000点、ゆくゆくは10万点測定したいと考えています。ですので全然足りません…。 ごめんなさい。頭が混乱してきたのでzwiさんに教えて頂いたことも含めて私が考えているプランを書かせていただきます。 1.整形されたロジックパルスをマイコンボード(IOポート)に接続、IOポートからパルスを検知 2.16ビットITUにより(L->H)を計測 3.私の計算では分周回路を使ってもTCNTは21ミリ秒でオーバーフーを起こすので外部SRAMに時間間隔を記録 4. 次の(L->H)までの時間(パルス幅くらいと考えています)にRS232Cで外部SRAMに記録されたデータをパソコンに転送(ゆくゆくはUSB)及びカウンタ(外部SRAM)リセット 5.次の(L->H)を検知… と考えています。恐らくご指摘頂いたとおり256KBでは足りないので測定するたびにパソコンに送信するしかないのかと思い上記にのように考えてみました。 何度も何度も本当にありがとうございます。 私なりに考えたプランの間違い、もっとこうするべきなどのご指摘を頂けると幸いです。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

H8では無くPICマイコンですが参考例を見つけました。 http://www.asahi-net.or.jp/~gt6s-sbic/electro/gm-count4/index.html この例では、カウントしてるだけですが回路とかは参考になると思います。 >また質問となってしまうのですが割り込みを使えばパソコンにデータを送信しつつパルス幅を連続で測定することができるということでしょうか? パルス入力に割り込みを使う事でパルスが立ち上がるときに自動的に他の事を中断してパルス処理に移れます。その分ほかの事が後回しになりますけど。 遅れても良い処理、例えばパソコン等に情報を送っている処理を後回しにします。ただ、プログラムの難易度が高くなるので最初は避けた方がよいでしょう。 >平均パルス幅は文献によると約2秒なのですが長いものは数秒、短いものでは数ミリ秒とかなり幅が広いです。おそらくオーバーフローを起こしてしまうので外部SRAMを使おうと考えているのですが…。的外れなことを言っていたらごめんなさい。 そうですね・・・。最初は無理せず外部SRAMに溜め込んで、パルスの計測止めてからパソコンに転送する仕組みにした方が簡単だと思います。パソコンへの転送はUSBの方が早いですが難易度が高いので、最初はRS232Cをお勧めします。 それと気になるのは512KBの外部SRAMで足りる計測時間かです。最悪1ms1パルスとして、1パルスを2バイトだとすると256x1024ミリ秒ぐらい計測できます。256秒ぐらいですね。これで足りますでしょうか?

j16ac08
質問者

補足

本当にありがとうございます。私自身このサイトを初めて使わせて頂いたのですがここまで親切に対応してくださる方がいらっしゃるのですね。本当に感謝しています。 >平均パルス幅は文献によると約2秒なのですが長いものは数秒、短いものでは数ミリ秒とかなり幅が広いです。おそらくオーバーフローを起こしてしまうので外部SRAMを使おうと考えているのですが…。 ごめんなさい。パルス幅ですよね…。勘違いして平均パルス時間間隔を記述してしまいました。パルス幅は本日中にオシロスコープで測定してからご報告します。 >それと気になるのは512KBの外部SRAMで足りる計測時間かです。最悪1ms1パルスとして、1パルスを2バイトだとすると256x1024ミリ秒ぐらい計測できます。256秒ぐらいですね。これで足りますでしょうか? 度々ごめんなさい。これはパルス時間間隔のお話ですよね?恐らく最大でも数10秒なので問題ないです。 あと思いついたのですがパソコンにデータを送信せずにボードにSDカード等のフラッシュメモリを取り付けて測定して方が処理速度はあがりますか? 質問ばかりで申し訳ないです。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

あっ、パルス時間間隔でしたね。 だとすると付け加えで、(H->L)を検知したあと、(L->H)に戻る時間もタイマで計ってください。それでパルスの間隔が得られます。 ガイガー=ミュラー計数管って使った事が無いので、どんなパルス幅の信号が流れるの実感が無いので最適な方法を書いてないかもしれません。パルス幅って何ミリ秒台なんでしょうか?それともマイクロ秒ですか?

j16ac08
質問者

お礼

丁寧な回答ありがとうございます。 私の担当教授がこの分野にあまり詳しくないのでできるだけ自力で頑張ってみます! 平均パルス幅は文献によると約2秒なのですが長いものは数秒、短いものでは数マイクロ秒とかなり幅が広いです。おそらくオーバーフローを起こしてしまうので外部SRAMを使おうと考えているのですが…。的外れなことを言っていたらごめんなさい。

j16ac08
質問者

補足

ごめんなさい!数マイクロ秒じゃなくて数ミリ秒です。     

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

ここで回路まで語るのは難しいんで概要だけ。 [回路側] ・パルスがロジックパルスに電気回路で整形されている必要があります。 ・整形されたロジックパルスをIOポートに接続します。 [プログラム側] ・接続されているIOポートをINに設定します。 ・タイマを初期設定してパルス時間計測の準備をします(タイマ周期と精度は必要に応じて調整してください)。 ・IOポートを監視して(L->H)を検知したら、タイマをスタートします。 ※L->HなのかH->Lなのかはパルス回路の都合で変わります。 ・IOポートを監視して(H->L)を検知したら、タイマ値を得ます。これがパルス幅です。 ・パルス幅をパソコン側にRS232C等で送信します。が、送信中はパルス幅が計れなくなるので割り込みを使うなど工夫が必要です。 ・タイマを停止して初期化。またIOポートの監視に戻ります。 出来ればIOポートの監視も割り込みで行ったほうが良いです。 話が難しいと感じたら、荷が重いと思いますので学校なら先生や先輩、会社なら上司等に相談した方が良いです。

j16ac08
質問者

お礼

丁寧な回答ありがとうございます。 正直難しいお話ですが全くわからないというわけでもないのでがんばります! また質問となってしまうのですが割り込みを使えばパソコンにデータを送信しつつパルス幅を連続で測定することができるということでしょうか?

関連するQ&A

  • タイマーIC555を使ってパルス信号を1秒間隔でFETのゲートに入力す

    タイマーIC555を使ってパルス信号を1秒間隔でFETのゲートに入力する回路が欲しいのですが 555を2つ使ってパルス信号と1秒間隔のパルスは出来たのですが、 この先の回路がわかりません。1つ目のパルスを長周期のパルスでON、OFFするには どんな回路を組めば良いでしょうか。

  • H8/3664Fでパルス幅測定

    H8/3664でパルス幅を測定しようと思っています。 秋月の超音波距離計のT7の信号を取り込んでいます。 距離を測る前にパルスの立ち上がりと立下りがちゃんと拾えてるか調べようと思い、下記のようなプログラム(mainループのみですが)を作りました。 ・・・・ PUP:  BTST  #1,@PDR8 ;P81にパルス;立上がりか?      BEQ RED1       JMP @PUP RED1: BSET #3,@PDR5  ;P53にLED-1,ON      BTST #1,@PDR8 ;立下りか?      BNE RED2     JMP @RED1 RED2: BCLR #3,@PDR5 ;RED-1 OFF      BSET #4,@PDR5 ;RED-2 ON     JMP @RED2     .END  しかし、スイッチを入れるとRED-1はつくのですが、RED-1が消えRED-2がつくまでに5秒くらいかかります。最後は命令どうりになっているのでバグではないと思うのですが・・・なぜタイムラグがあるのかわかりません。  オシロスコープでマイコンに取り込む直前の信号を見たのですが、きれいな信号で問題なさそうです。  タイムラグがある原因を教えてください。どうかよろしくお願いします。

  • パルス信号について

    風速計の出力信号には、主にパルス信号式と接点信号式とあり、これまでは接点信号の風速計を用いてF/V変換して計測していましたが、今回パルス信号の風速計を利用することになりました。現在の回路を極力使用したいことから、パルス信号をリードスイッチ信号に変換出来ればと思うのですが、そのような方法はあるのでしょうか?よろしくお願いします。

  • パルス発信回路

    数百ミリ秒間隔で入ってくるTTL信号にの立ち上がりに同期させて、3マイクロ秒幅のパルス信号を2発だけ出すTTL回路を考えているのですが、皆様のアドバイスをお願いします。 入力信号___| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄         出力信号____| ̄|_| ̄|____       幅3マイクロ秒程度のパルスを続けて2発 入力信号に対して、最大10マイクロ秒くらい出力信号が遅れてもOK パルス幅、パルス間隔はともに3マイクロ秒程度としたいので、555やXtalでCLOCK信号を作って利用してもよいです。  よろしくお願いします。

  • TTL信号のパルス率(パルス/sec)を電圧に変…

    TTL信号のパルス率(パルス/sec)を電圧に変換するアナログ回路 時間幅500nsのTTLパルスがランダムでやってきます。 単位時間当たりにやってきたこのパルスの個数を 出力電圧に変換するような回路はどういうものになるのでしょう? やってくるパルスは通常、数10パルス/secですが、 数1000パルス/secでやってきたりします。 0のとき、出力電圧0Vで、200000パルス/sのとき10Vの出力を考えており、 なるべく精度が高いと助かります。 予算の都合上、抵抗やコンデンサーなどの簡単な部品のみでできる アナログ回路で作りたいです。

  • 放射線測定について

    福島事故の後、放射線測定器を手に入れていろいろ学んでいますが、疑問な点があり、専門の知識のある方に教えていただきたいことがあります。 ウィキペディアからの知識ですと放射線(原発事故による)とは、粒子線であったり、電磁波に近いなどとあります。ガイガーミューラー管などのセンサーで測定する場合、核崩壊による放射線が粒子であった場合(アルファ線)には、センサーを通過した時にのみ測定(パルスカウント)することになり、電磁波に近いもの(ガンマ線)であれば、放射点からあらゆる方向に影響を及ぼすと考えられるので、至近の距離であればどの位置でも測定できるものだと理解できます。ベータ線は電子の流れとして考えると粒子でもあり、電磁波でもあることになります。 量子理論についてはある程度の知識がありますが、数種類のガイガー管測定器では、同位置でもどれもパルスカウントが違います。測定器毎にアルファ線検出の可否もあり、ガンマ線しか検出しないものなどありますので当然かもしれませんが、同じ機種で測定しても違いが大きく出ます。パルスカウントの違いはどこから来るのか教えてください。

  • 放射線測定回路に関して

    放射線測定回路に関する質問です http://autolandtom.web.fc2.com/tex1.html 添付の図中の赤い四角で囲った抵抗RとコンデンサーCの役割とはなんでしょうか? ローパスフィルターとしての役割でしょうか?また過電流を防ぐためでしょうか? またGM計数管に放射線が入り、電流が流れたとき、抵抗で電圧降下が起きてVoはVHVより下がるのでしょうか? 宜しくお願い致します。

  • γ線吸収測定について

    大学の物理の実験でGM計数管を用いて、鉛でγ線吸収測定を行いました。 しかし、文献値より、実験値で求まるγ線の吸収係数のほうが小さくなりました。 調べてみたところ、一般的にはそうなるようなのですが、 なぜ、予想より多くの放射線がGM計数管に入ったのかわかりません。 どなたかわかる方いらっしゃいましたら、教えてください。 よろしくお願いします。

  • 電気パルスの反転の仕方

    0(V)と5(V)のアナログパルス信号を反転させて0(V)の入力信号を5(V)に、5(V)の入力を0(V)に変換したいのですが、どのような回路を組めばいいのでしょうか?

  • パルス入力回路について。

    適切な回路であるかどうか、ご検証頂けますでしょうか。(私なりに、少しずつ時間を掛けて、考えている最中です) バイクのイグニッションコイル(綺麗なパルスが出ているようです)へつなぎ、回転数に応じてスイッチオンをさせる回路を作りたいのです。 添付画像であるパルス入力回路の後に、FVコンバーターNJM4151へ入力させて電圧変換(メーカーでサンプルを挙げている5Vの回路構成にします)、その後、トランジスタ、さらには電磁リレーを用いたいと思っています。Vcc5Vとあるように、安定化電源回路も作る予定です。 1.パルス信号に整流ダイオードを入れる(念のため)。 2.R1とR2で12Vのパルス信号を分圧。 3.R3とR4で閾値を定めて、パルス信号と比較させる。 4.R5はプルアップ抵抗(プルアップ抵抗の意味はいまいち理解しきれていません)。 5.FVコンバータへ出力。 ここがおかしい、現実的にはこうしたほうが良い、こういった回路にしたほうがシンプルor簡単or確実である、その他etcがありましたら、アドバイス願います。