• 締切済み

AD変換したデジタル信号をFPGAに用いたい

AD変換専用の半導体から出力された信号(8bit信号)を用いて、FPGAに取り込む方法が分かりません。FPGAの出力には、2桁の7セグメントとして表示したいです。 このような条件でやりたいのですが、まず、AD変換からFPGAに入力するにあたりVHDLでコーディングして使いたいです。 なにか参考になる資料等はありますか?

みんなの回答

回答No.2

正直、AD変換の種類(方式)から勉強した方が良いと思います・・・。 http://www.acoust.rise.waseda.ac.jp/publications/yamasaki/jas/JAS30-9-1990.pdf その上で、どの方式のICを使用するか決定しましょう。 ICの販売経路も考慮して、あなたが購入しやすいメーカを選択してください。 http://www.indexpro.co.jp/search/search-ctg.asp?dcode=100510

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.1

前の質問で PIC を使うか、ADC + FPGA するか決めたのですか sampling 速度 や 精度 をどの様にするか 決めないと、素子も決まりません。 >FPGAに取り込む方法が分かりません それはそうですよ。何にも決まっていないのだから。 hardware 的なものも必要です。 timing chart 書かないと >このような条件でやりたいのですが まあ条件になっていませんね。

関連するQ&A

  • AD変換する方法が分かりません

    真空計の出力端子にアナログ出力端子があります。そのアナログ信号をAD変換してFPGAに取り込み、真空計と同じ真空値をFPGA側にも表示させたいのです。 第1歩として、アナログ信号をAD変換させる方法が分かりません。 デジタル側は8bitで出力させたいです。 AD変換としてPICを使うべきか、それともAD変換専用の半導体を使えば良いかわかりません。 AD変換専用の半導体素子は、何を使えば宜しいでしょうか? 教えて下さい。

  • FPGAにおけるバスの引き回し

    よろしくお願い致します。 現在、アルテラ製「CycloneIII」のFPGA設計を行っております。 使用言語はVHDLです。 FPGAにはマイコンからのアドレスバス(26bit)、データバス(16bit)、 nWR、nRD、nCSが接続されます。 さらにFPGA内部には120個のレジスタが用意され、 マイコンはこのレジスタに対してアクセスを行います。 当初、FPGAは正常に動作していました。 しかし、仕様追加でレジスタを数個追加しただけで 今まで正常に動作していたレジスタが動作しなくなりました。 (書き込みができない、出力データに抜けが生じる等) そこで皆様に質問ですが、 FPGA内部に100を超えるレジスタを用意する場合 一般的にバスや制御信号をどのようにして引き回しているのでしょうか。 (ファンアウトを減らすためにnWR信号を各レジスタごとに用意する等・・・) 何卒よろしくお願い致します。

  • FPGAによるデジタルフィルタ計算方法

    AD変換でアナログ値をデジタルに変換して、演算をして、DAでアナログ値に変換して、出力したいと考えています。 そこで、デジタル演算をFPGAで行いたいと考えていますが、以下の計算を行う場合、何か良い方法ありませんでしょうか。 係数に小数点があり、どのように演算すればいいのか、良く分かりません。 計算式は、Y=Y[n-1]+(1-a)*n   (RCフィルタ演算)とありました。 Yは、出力値、nはサンプリングデータの場所、 Y[n-1]は、一個前の演算結果の出力データ、 aが係数で、小数点0.9878等の値が入ります。 この小数点を含む計算をFPGAで実現する方法を教えてください。 あと、FPGAにこだわらず、 他に実現する良い方法ご存じでしたら、教えてください。 宜しくお願い致します。

  • FPGAについて

    最近VHDLを勉強し始めて教科書に載っている 加算器やカウンター、DFFなど基本的な事柄を覚えました。 そこで次にやりたいことが音(できれば音階)の出せるようなプログラムを組み、実際にFPGAに焼いて音を出してみたいと思っているのですが、質問がいくつかあります。初歩的なことかもしれませんがわかる方教えていただきたいです。 (1)音が出せるようなFPGAはどのようなものを使えばいいのか (2)音の出るようなプログラムをどう書けばよいのか   ※一応、自分の頭の中の構想は下の通りです。   ⅰ)まずボタンなどで出したい音を選択(例えば「ラ」)   ⅱ)次にラが押されたという情報を取り込む   ⅲ)D/A変換してLPFを通してアナログ波形にする   ⅳ)スピーカーからラの音を出力   ・・・大まかにこんな流れではないかと自分では   思っているのですが。(間違っていたらご指摘ください)    参考になるHPの情報など些細なことでもよいのでよろしくお願いします。

  • PICでのAD変換について

    PIC16F873を使って、入力信号のAD変換をして、基準値との差により、PWM信号を生成しようとしています。 変換結果の上位8bitがADRESHレジスタに格納されるということなのですが、PWMの周波数を確保するため、できればこの8bitの値をを7bitに落としたいと考えています。 何か方法があれば教えてください。

  • 交流電源からの信号を,AD変換したいのです.

    交流安定化電源から,実効値で45V,60Hz,0.17Aの信号を出力しています.この信号を入力インピーダンス1MΩ以上,入力レンジ±10VのAD変換器に入力したいのですが,位相遅れがでないように,実行値だけを落とす良い方法は無いでしょうか?また,交流電圧を直流電圧に変換するにはどのようにすればいいのでしょうか? 助けてください.よろしくお願い致します.

  • コンポジットビデオ信号の変換チップ

    コンポジットビデオ信号(1.0Vp-p 75Ω不平衡)の信号をRGB 8bitパラレル信号とH/V sync 信号に変換するチップ(IC)ご存知ありませんか? 変換ユニットでコンポジットビデオ信号をいろんなフォーマットに変換するものはあり ますが、上記RGB パラレル8bitのI/Fで用意されているLCDパネルを使ってコンポジット ビデオ信号を映したい。 ついでに、LCDパネルでCPU I/F信号(16bit/8bit)対応のタイプもあるのですが、この タイプを使うときはAD変換して16bitパラレルにして使うのでしょうか?変換するチップが何処からかリリースされているのでしょうか? 情報頂けると助かります。

  • H8/3664FのAD変換について

    初めまして。 現在大学でH8/3664FでのAD変換を行っているのですが、 AD変換とその値に対する出力への動作が上手くいきません。 分かる方、ご教授お願いいたします。 現状は、1.7V程度の信号をADコンバータ端子(AN1)に入力しています。 AD変換を行い、条件として1V以上のときは出力に設定した 端子(P11)から5V出力しダイオードを光らせようと思っています。 プログラムは以下のように組んでいます。 おかしいところがあればご指摘お願いします。 void main(void){ IO.PMR1.BYTE=0x00; /* ポート1入出力ポート*/ IO.PCR1=0xff; /* ポート1出力*/ /*AD変換の初期設定*/ AD.CSR.BIT.ADST=0; /*AD変換機能停止*/ AD.CSR.BIT.SCAN=1; /*スキャンモード*/ AD.CSR.BIT.CKS=1; /*高速変換*/ TW.TCRW.BIT.CCLR=1; /* TCNTがGRAでクリア */ TW.TCRW.BIT.CKS=3; /* クロックφ/8 */ TW.GRA=40000; /* パルスの周期20ミリ秒 */ TW.TMRW.BIT.CTS=1; /* カウントスタート */ while(1){ /* 20ミリ秒間のカウントは約8880となる. */ if(TW.TSRW.BIT.IMFA==1){ TW.TSRW.BIT.IMFA=0; AD.CSR.BIT.ADST=1; /*AD変換機能開始*/ while(AD.CSR.BIT.ADF==0){}; /*AD変換終了待ち*/ AD.CSR.BIT.ADF=0; /*変換終了フラグクリア*/ AD.CSR.BIT.ADST=0; /*AD変換機能停止*/ x0=(int)(AD.DRA>>6); /*x0に値を格納*/ if(x0>100){/*1V以上の場合*/ IO.PDR1.BIT.B2=1; }else{ IO.PDR1.BIT.B2=0; }

  • PIC18F4550でAD変換

    PIC18のAD変換を使用しているのですが わからない部分があるので質問させていただきます。 ・現象  リファレンス電圧は電源電圧+5V(Vdd)を使用し10bit分解能で行っているのですが90mV位(低い電圧のAD変換)の時の変換値がずれます。 ・測定方法  測定はテスターでPICのVss端子にGND、アナログ信号入力端子に+側を当て直接PICの足をさわっています。 ・結果  1023=5Vですので1=約0.0049V  0.097V=19を示して欲しいのですが17となります。  5V時は1023を示し2.5V時は511が出ており電圧を上げると計算通りに示します。  リファレンス(電源電圧)を意図的に変えてみたのですが低い電圧の時は変化がありませんでした。 上記点より低い電圧での変換では精度が出ないという事なのでしょうか。 またこのあたりの仕様が記載されている資料などありましたら宜しくお願い致します。

  • PIC16F877を用いたC言語でのAD変換について

    PICを用いてAD変換をしようとしていますが,思うように出力が出ず困っています. 可変抵抗を用いて0-5V間を調整可能な入力をAN0ピンに接続し,AD変換の結果をBポートに出力しようとしています. 使用条件は,mikroC使用,PIC16F877使用,C言語使用,水晶20MHz,Aポート入力(AN0ピンアナログ入力),Bポート出力,Tad=1.6μsです. 以下のプログラムで間違っている点をご指摘いただきたいと考えています. unsigned int out_b; void port_initialize() { INTCON=0; //割り込みなし ADCON0=0x81; ADCON1=0x8E; //AD変換中の入力範囲設定は電源と共有 TRISA = 0x3f; //AD変換用ポート(1で入力) TRISB = 0; //出力用ポート(0で出力) PORTB = 0; } void value_initialize() { out_b=0; PORTB=out_b; } void main() { port_initialize(); value_initialize(); while(1){ //endless ADCON0=0x81; //AD変換bitを選択 Delay_us(24); //アクィジション時間+AD変換後の待ち時間 ADCON0=0x85; //AD変換開始 Delay_us(20); //AD変換待ち時間 out_b=ADC_Read(0); PORTB=out_b; } }