PICマイコンを使った分解能1μsの時間差測定とPCへのデータ取込み方法について
PICマイコンを使って、レベル0-5Vの2つの信号A、Bの立ち上がり時間の差を、分解能1μs・最大時間100ms程度で測定し、USBコネクタでPCに時間差データを転送する方法を教えてください。
信号A、B は通常はLレベルで、Hレベルのパルス幅が10μsから1ms程度の単発パルスです。信号A、B のパルス幅は同じですが、Bのほうが数μs から数10msの遅延があります。
マイコンのクロックに10MHzとか20MHzなどの切りのいい周波数を使い、PICマイコンの割り込みを使う方法があるようなのですが、適切なPICマイコンの型番とプログラミング法、PCとインターフェースの方法などが書かれたサイトなど紹介して頂けると助かります。
No.7ベストアンサー
- 回答日時:
んー、そのボードだとI/Oポート系が見当たらないように見えますが、信号A/Bをどうやってとりこみます?
オペアンプに限らず、マイコンにアナログ信号を入れたいときはA/Dコンバータを経由します。
H8だと内蔵しているものが多く、アナログ信号入力用のポートも存在しますが、内蔵していない場合は外部にA/Dチップを付けてそちらを通してデジタル化した信号をマイコンに送るようにしましょう。
ところで、あまり本格的なのでなくても、おそらくこんなのでもある程度は目的を達せられると思いますが、どうですか?
http://toragi.cqpub.co.jp/tabid/284/Default.aspx
雑誌付録の基盤ですがUSBでプログラム転送できるのでフラッシュライター不要ですし、使い方は雑誌本体に書いてありますし。
この回答への補足
回答ありがとうございます。
何回もの質問に答えてくださりありがとうございます。
休日中にとりあえずH83048Fのマニュアルを読み込んでふさわしいのかを調べたいと思います。
また、トランジスタ技術のページの紹介ありがとうございます。
H83048Fが適さない場合には検討して購入したいともいます。
休日中にマニュアル読んだのですが、I/Oポートはない感じでした。
どうすればいいのか別途で質問したいと思います。
回答しだいで、お勧めされたhttp://toragi.cqpub.co.jp/tabid/284/Default.aspxを購入しようと思います。
何回も質問に答えてくださりありがとうございました。大変参考になりました。
No.6
- 回答日時:
そうそう、まさしくこんな感じのです。
ちょっと私が考えてる動作クロックよりは低いですが、なんとかならないこともないでしょう。
RS-232Cの信号もピンホールから出てるようなので、そこからD-Sub9ピンコネクタに変換する必要はあります。
手間を考えるとUSB(-UART変換付き)かD-Sub9ピンの口が付いてるのが理想ではあるんですが、なかなか見当たりませんねぇ。
この回答への補足
素早い回答ありがとうございます。
http://www.yellowsoft.com/products/h8gset2.htmlに載っているH83048Fのマイコンがありました。
このマイコンで機能は果たせますか?
また、PDの光のデータをオペアンプ(ブレッドボード上で)を使ってマイコンに接続し転送できますか?
PDはhttp://akizukidenshi.com/catalog/g/gI-02984/
オペアンプはhttp://akizukidenshi.com/catalog/g/gI-03112/を使おうと考えています。
回答・解説・指摘お願いします。
No.5
- 回答日時:
UARTというのはPCのCOMポートに繋いで通信を行うためのもの、と解釈しておけばとりあえずはいいでしょう。
クロックは内部の8MHzでは厳しいので外部供給の必要がありそうです。
個人的にはブレッドボードで自力実装もいいけど、適当なマイコン評価キットを使った方が楽じゃないかなーと思ったりもしますが……
この回答への補足
回答ありがとうございます。
マイコン自体触ったこともないので、今、本を読んで勉強中です。
マイコン評価キットというのはhttp://akizukidenshi.com/catalog/g/gK-00162/でいいのでしょうか?
見当違いだったら申し訳ないです。
また、おすすめの評価キットがあれば紹介お願いします。
No.4
- 回答日時:
こんにちは。
そこからですかー・・・。
という事は、PICをさわるのも初めてという事でしょうか。
一問一答でやっていけるレベルでは無いと思います。
素直に、入門書を買ってくるのが吉かと。
USBまでは、とても長い道のりかとは思いますが、頑張って下さい。
この回答への補足
回答ありがとうございます。
PICに関しては触ったこともないです。
とりあえずPICの入門書、買ってみたいと思います。
ありがとうございました。
No.3
- 回答日時:
こんにちは。
UART機能は、お察しの通りシリアル通信の事です。
PICに内蔵されています。
詳しくは、検索してください。
その質問が出るところを見ると、ますますUARTをお勧めします。
まずはUARTで作って、USBはその後で考えられるのが吉かと思います。
候補に挙げられたPICは、バッチシではないでしょうか。
私もそれを買うと思います。
本当に満足のいく結果が得られるかどうかは、実験してみないとわかりませんが。
この回答への補足
素早い回答ありがとうございます。
UART今まで調べてみたんですが、いまいち理解できなくて・・・
UARTの前にとりあえずhttp://akizukidenshi.com/catalog/g/gI-01775/のマイコンを買ってみようと思います。
そこでまた質問になるのですが、マイコンのクロック周波数の設定はどのようにするのでしょうか?
ブレッドボード上で水晶発振器などと接続して操作するのでしょうか?
またマイコンとPCの配線の仕方や回路図など、できれば教えていただきたいです。お願いします。
No.2
- 回答日時:
こんにちは。
パルスの時間差測定については、PICの割と高級な機種を使えば、そんなに難しくはないと思います。
選定については、そりゃ本家のサイトが間違いないんじゃないでしょうか。
MICROCHIP
http://www.microchip.com/
ここから、Products → 8-bit → PIC18 Familyと辿れば、機種比較ページにいけます。
本件の場合の選定ポイントは、
・CCPが2個
・USB搭載
という感じでしょうか。
PCとインターフェースのプログラム方法は、「PIC USB」で検索すれば、結構でてきました。
ところで、大きなお世話かもしれませんが、本件ではどうしてもUSBを使わなければならないのでしょうか。
PCに放り出すデータ量も少ないし、USBは開発の手間に対しての効果が薄いような気がします。
#1さんの言われるように、UARTを使われた方が良いと感じますが・・・。
USBでつなぐ、もうひとつの方法として、FTDI等のSerial-USB変換チップを使う手もあります。
こちらはスピードも出せますし、ご検討されてみては、いかがでしょうか。
この回答への補足
こんにちは
回答ありがとうございます。
素人質問で申し訳ないのですがUARTというものが良くわかりません。
シリアル通信をするものみたいなのですが、意味が良くわからないです。
それはPICなんでしょうか?
PCとはどのような方法で接続するのでしょうか?
申し訳ないのですが回答・解説・指摘お願いします。参考になるサイトがあれば紹介もお願いします。
また、使うマイコンとしてはhttp://akizukidenshi.com/catalog/g/gI-01775/のようなマイコンでは機能は果たせないのでしょうか?
見当違いだったら申し訳ないです。
No.1
- 回答日時:
最小遅延が数usとなると、1サイクル辺り10nsくらいで動けないと厳しいでしょう。
必然的に100MHz程度の速度で動作できるマイコンが必要、ということになります。
PICは使ったことがないのでこの手がそのまま使えるかどうかはわかりません。
H8辺りなら問題ないはずです。
・メインスレッドは送信処理以外何もしない
・フリーランタイマを1us以上の精度で走らせておく
・ポート入力、もしくはインプットキャプチャのLo→Hiエッジでハンドラを起動
・割り込み時にフリーランタイマのカウンタ値を取得
・Bの割り込み時に、Bで取得したカウンタ値とAで取得したカウンタ値の差分から遅延時間を算出
・算出したらフラグ等でメインスレッドへ通知し、算出結果をPCへ送信
送信はUSB-UART変換経由で行うのが楽かと思います。
この回答への補足
回答ありがとうございます。
素人質問で申し訳ないのですがUARTというものが良くわかりません。
シリアル通信をするものみたいなのですが、意味が良くわからないです。
それはPICなんでしょうか?
PCとはどのような方法で接続するのでしょうか?
申し訳ないのですが回答・解説・指摘お願いします。参考になるサイトがあれば紹介もお願いします。
また、使うマイコンとしてはhttp://akizukidenshi.com/catalog/g/gI-01775/のようなマイコンでは機能は果たせないのでしょうか?
見当違いだったら申し訳ないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonでAmazonのほしいものリ...
-
プログラミングについて プログ...
-
プログラミングを学ぼうと思い...
-
プログラミングの進学について
-
AIのプログラムについて教えて...
-
Web初心者です。 簡易的なWebペ...
-
python エラー
-
ネットワークフォルダの中身を...
-
近年誕生したプログラミング言語
-
google Colabでmatplotlibの描...
-
インターフェースとトレイトっ...
-
paiza python03 ランクC獲得
-
Google ColaboでGUI作成
-
vba クリップボードクリアにつ...
-
以下の技能を無料で受講できる...
-
プログラマーに向いている人の...
-
ホログラムを作ってくれる会社...
-
Pythonでの文字列からfloatへの...
-
プログラミング言語について
-
長門有希のようにコンピュータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PICでパルス数をカウントし、カ...
-
C言語によるウェイト
-
PICでパルス数をカウントする方法
-
16 bit timerで1秒を計る
-
H8/3052 ディップスイッチについて
-
PICの入出力切り替えの時間がプ...
-
H8/3048 マイコンのプログラム...
-
C言語による赤外線受信
-
RTCの通信方法(I2C、S...
-
入力回数のカウントをする方法
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
エクセルVBAのIf,Then 構...
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
レジストってなんですか?
-
一般のソフトで画像を扱う場合...
-
ビットシフトってどんな時使うの?
-
シーケンサのデータレジスタD...
-
実行ファイルからソースはみれる?
おすすめ情報