ATTiny10でSi5351Aを設定する
- 2022/12/21 12:04
- カテゴリー:make:
ATTiny10でSi5351Aを設定するお話,先日の続きです。
今回はKiCadで図面を書いて中国の基板メーカーに発注するということを1つの目的に,せっかく基板を作るんだからと小さなものを作ってみようと考えました。
Si5351Aはどんな周波数でも作る事の出来る魔法のICです。これに周波数が変わらないTCXOを組み合わせれば,超高精度・超高安定な任意の周波数を(しかも動じに3つまで)作り出すことができます。
以前も書きましたが,Si5351Aは25MHzか27MHzの水晶発振子を繋ぐことしか出来ないバージョンですが,安価に売られている26MHzのTCXOを突っ込む事に成功しています。
これを使えば通常の水晶発振子の20ppmからTCXOの1ppmの精度を持つ,様々な周波数のb発振器を作る事が出来るわけです。
ただ,設定には200近いパラメータをI2Cを通じて書き込む必要があり,それなりの大きさのマイコンが必要になるという点がシステム全体の規模を押し上げています。しかも一度設定してしまえばもうマイコンは不要になるので,これがなかなかもったいないのです。
そこで安価な8ピンマイコンであるATTiny13Aをかつて使ったわけですが,それでも結構面積は大きく,20ピンのDIPくらいの大きさになってしまっていました。そこでATTiny10を使い,専用の基板を起こすことで,14ピンDIPと同じ大きさにして,良くある発振器とピンコンパチにしてみようと考えました。
回路は出来るだけ部品点数を減らしています。I2Cのプルアップは内蔵で代用したので,抵抗はステータスを示すLEDのために1つだけしかありません。
マイコンのATTiny10とSi5351Aは表面に配置,26MHzのTCXOは裏面です。TCXOは電源が2.8Vなので3.3Vから落とすためLDOが必要になりますが,これも秋月で売られていたBH28PB1WHFVを使いました。
LDOには0.47uFのパスコン,Si5351には0.1uFのパスコン,それからTCXOの出力とSi5351の入力の間に0.1uFのコンデンサを挟んで,部品はたったこれだけです。
基板を描いていたときには狭いなと思ったものですが,出来上がった基板を見るとスカスカです。
早速実装していきますが,自分の回路は信用出来ないので,1つずつマウントして動作確認をして進めます。LDOの動作,TCXOの発振,ここまで出来たらあとは一気にSi5351AとATTiny10とLEDを取り付けて完成です。
向きを間違えたりしましたが,動作は問題なし。違う周波数のバージョンをもう1つ作っておきましょう。
さて,測定です。
まず1つ目は,デジタルオーディオの世界ではなにかと目にする,256fsという奴を3つ出すモジュールです。かつてサンプルレートコンバータを作った時,3つの異なる周波数が必要になり,1つ600円もする水晶発振器を3つも買った覚えがありますが,この時私がこのモジュールを作っていればどんなに安く簡単に作る事が出来たでしょう。
TCXOの周波数 : 25.9999683MHz(-1.219ppm)
12.288MHz : 12.2879856MHz(-1.172ppm)
11.2896MHz : 11.2895864MHz(-1.205ppm)
8.192MHz : 8.19199016MHz(-1.201ppm)
TCXOの初期周波数偏差は2ppmですので十分規格内,それぞれの周波数もこれに準じた偏差となっています。成功ですね。
次によく使う周波数を3つ出すものを作りました。10MHzや20MHzは測定器などのタイムベースでもおなじみです。
TCXOの周波数 : 25.9999754MHz(-0.946ppm)
10MHz : 9.9999912MHz(-0.880ppm)
12MHz : 9.9999894MHz(-0.883ppm)
20MHz : 19.9999823MHz(-0.885ppm)
これもなかなかよいではありませんか。
TCXOの安定度は1ppmから2ppmですので,普通の水晶発振子よりもヒトケタ小さいです。
つくづく惜しいのは,Si5351が秋月で買えなくなってしまっていることです。かつてはなんと150円で買えましたが,今は基板とセットでしか買えません。Digikeyで探してみると1つ360円か・・・円安を考えるとそんなもんかも。
Si5351Aは壊れやすいので,実験中に何度も壊しましたし,もっと買っておけば良かったと後悔しています・・・