コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

乱数発生器を自分で作ってみたくなった。
Raspberry Pi にはハードウェア乱数発生器が乗っているらしいけれども、そういうのを自分で作るとしたらどういうふうになるのだろうと言う感じ。

検索したところ「GR-KURUMIを用いて物理現象に基づくお手軽乱数発生器をつくってみた」という記事が見つかった。
まさにこれがそのものなのだけれども、理論は分かるものの自分の手で試してみたいというのが今回の趣旨なのでトレスでもいいから試してみる事にした。

■ 電子雪崩現象によるノイズ

ダイオードやトランジスタといった半導体は基本的に一方向にしか電流を通さないという性質を持っている。
逆方向には電流を通さないのだけれども、その通さない状態でも電圧が高いと限界を突破して流れてしまう。これが電子雪崩現象。
この時の電子が通ったり通らなかったりの加減でノイズが発生するらしい。

さっそくトランジスタやツェナーダイオードを用意して色々試してみる。
んが、ちっともノイズっぽいのが出てこない。
dsc_0086

これに電圧を加えるも見た目普通の直流っぽい。電圧を上げてみるとあまり挙がらないので電子雪崩現象は起きているっぽい。といってもノイズが小さそうなので出力にコンデンサを繋いでAC成分だけ見ることにした。
でもなんとなく期待しているような感じではなく
2016-11-03_050352

はて困った。ここで詰まってさんざんいじくり倒した。
ちなみに電圧が低いときはノイズらしいノイズもなく。
2016-11-03_050307
なんとなく雪崩は起きている様なのでどの電圧で起きるのかなと、直流安定化電源の出力を少しずつ上げていったら………
2016-11-03_050431
ノイズ来た!!

どうやら電子雪崩現象が起きるか起きないかといった境界部分の電圧で盛大にノイズが発生するらしい。
越えるか越えないかの不安定さがノイズになるのだな。
それ以上の電圧をかけると大量の電子が常に流れ続ける事になるのでかえってノイズは目立たないらしい。

ではどのくらいの電圧がその境界かという話になるのだけれども、2SC1815GR で 8.9V、2SC2120Y で 11.5V と違いがある。どっちもデータシート上はエミッタベース間電圧 5V なのにね。温度で変化とかもしそう。
ノイズが増える領域というのも狭くて 2SC1815GR では 8.3V から増え始めて 8.9V でピーク、9.2V でまたおとなしくなるといった感じ。使用する電源も安定していないと連続的に使うのは難しそうだ。

最終的な回路としてはこんな感じ
sch01

出力としてはホワイトノイズで良い感じなのだけれども AC 出力の振幅は 160mV くらいなのでそのままではマイコン回路に取り込むのは難しそう。

■ ノイズの増幅

結局 GR-KURUMI の記事に沿う形になってしまうのだけれども、オペアンプでノイズ成分を増幅させることにした。
アナログ回路は苦手なのでオペアンプもあまり使ったことが無くブレッドボード上で四苦八苦。お手本通り反転増幅回路で組んだり、非反転増幅回路で組み直したり。
dsc_0087

回路や抵抗値をとっかえひっかえしながらあーでもないこーでもないと試作。
最終的に良い感じになった回路がこんな感じ。
sch02

2016-11-04_010146
振幅も 0~3.6V とまずまず。
ただオペアンプの特性から 100kHz 以上は減衰する一方のピンクノイズっぽくなってしまうのはいかんともしがたく。そこそこ低速でサンプルすれば乱数として扱えるかな。
増幅しなくても使えるならそのほうがより良いノイズなんだけれどもね。

取りあえず今回はここまで。

Leave a Reply