注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。今回は、RC回路を用いることで、FPGAに簡単にセンサーを接続する方法を紹介する。
筆者は「Sechack365」という若手セキュリティ高度人材育成事業にトレーナーという立場で関わっています。約1年を通してオンラインと対面を交えてトレーニングを行うのですが、実のところ教える立場であるトレーナーがトレーニーに育成されることも多々あります。
今回のテーマは、Sechack365のトレーニーの質問からヒントを得たものであり、最も簡単にFPGAにセンサーを接続する方法となります。FPGAにセンサーを接続する場合、A-Dコンバーターを用いたり、SPI、I2C、UARTなどのインタフェースを使ったりするのが一般的ですが、今回は抵抗とコンデンサーから成るRC回路でセンサーのアナログ値を取得します。
⇒連載「注目デバイスで組み込み開発をアップグレード」のバックナンバー
連載第18回と第19回では、ブレッドボードにFPGA評価ボードの「Tang Nano 9K」とLEDドットマトリクス、十字キー、Aボタン、Bボタンを搭載したガジェット「dpad2」を紹介しました。
今回はこのdpad2を用いますが、ガジェットの特徴である十字キー、Aボタン、Bボタンは使いません。別途用意する、後述のアナログセンサー、そして473k 16V 0.047μFのコンデンサーを使用します(図1)。
RC回路のRとCは、抵抗とキャパシター(コンデンサー)に由来しています。英語では“A resistor-capacitor circuit”となります。
図2に示すのが典型的な直列RC回路です。この回路のVinから電圧の入力があると、抵抗Rを通じてコンデンサーCに充電されます。コンデンサーへの充電が進むに従ってVcの電圧は上がっていきます。つまり、この回路はVinに入力した電圧がVcに出力されるまでには多少時間差が生じるという回路というわけです。これを応用して、ローパスフィルターやノイズ除去、またサージなどから高インピーダンス系の半導体の入力回路を保護する用途などに使われています。また、PWM(パルス幅変調)、要はD級アンプの波形整形にもこの回路が使われていますね。
このRC回路は、抵抗Rの抵抗値とコンデンサーCの静電容量によって、Vinの入力電圧がVcに出てくるまでの遅延時間が決まります。もし、コンデンサーCの容量が一定であれば、抵抗Rの抵抗値が大きくなるほど遅延時間が大きくなります。また、抵抗Rの抵抗値が一定であれば、コンデンサーCの静電容量が大きくなるほど遅延時間が大きくなります。
このRC回路の性質を利用して、アナログセンサーを抵抗RあるいはコンデンサーCに置き換えて、遅延時間をFPGAで計測することでアナログセンサーの値を同定する、というのが今回の試みになります。
Copyright © ITmedia, Inc. All Rights Reserved.