Si5351Aを使ってみる
みなさんから周回遅れもいいとこだが、Si5351Aを使ってみた。Arudinoを使ったものは、ネットのスケッチを入れると難なく、動作した。ではということで、PICに移植してみた。
PICは8pinのPIC12F1822を使う。8pinだと部品感覚で使うことができるし、3V動作も可能なので便利だ。ツールはMikroC PRO。有料だから今は流行らないかもしれない。今でも定期的にバージョンアップしているので、それなりにユーザーがいるのだろう。
I2Cで躓いいて、放ったらかしになっていた。仕方がないの、ロジアナを持ち出して、様子を見る。Si5351Aのアドレスは0x60だが、MikoroC PROのI2Cの関数を使う場合は、0xC0を設定しないとダメらしい。ビットの送信順が頭から詰めるのか?。
ロジアナを見て気がついた。やはり、道具は大事だ。
周波数設定は難解だ。特に100MHzを超えると面倒だ、DIVBY4を使って、それらしい出力を得るが、もっといい方法があるのか、分解能の設定が上手くない。人様のプログラムも難解だし、どうしたものか。とりあえず、今日はここまでだ。
| 固定リンク
「電子工作」カテゴリの記事
- Si5351Aを使ってみる(2021.01.31)
- エッチング液を買った(2018.03.29)
- PICを使ったエレキーを作る(2017.03.25)
- DC-DC Converter for PC(2017.01.29)
- FH-2を作る(2017.01.01)
コメント
こんにちは。
Si5351のI2Cアドレスは0x60ですが、8ビットではなくて7ビットなのです。
I2CバスでSi5351にコマンドやデータを送る際、最初にアドレスを送るのですが、まずアドレスを1ビット左シフトし、Si5351にデータを書き込む場合空いたLSBに0を、Si5351からデータを読み込むときには1を加えて送信します。
ですのでプログラムを書く時、Si5351にデータを書き込むための最初の送信は0xC0になるというわけです。
詳しくはSi5351A/B/C-BデータシートRev.1.3の18~19ページに記載されていますのでご参考まで。
投稿: ぶんきゅう | 2021/02/02 12:13
ぶんきゅうさん、そうなんですよ。
Arudinoのスケッチは、ちゃんと処理しているようで、0x60を設定しているのですが、直接I2Cのバイト送信するときは、意識する必要があるんですね。
オシロを見て信号が出ていることは、確認したのですが、原因がわからずでした。
ロジアナを見ると、アドレスを送信しているにも拘らずSi5351Aから、NAKが返っていることで気がつきました。やれやれ、です。
周波数設定も難易度が高く、ぶんきゅうさんのサイトも読み返しているのですが、難解でもがいています(笑
投稿: JK1LSE | 2021/02/02 12:35
他のI2Cデバイスも同じような手順です。
アドレスの表記は確かに混乱を招きますよね。
周波数設定については基本同じですが、Si5351のハードリビジョンがBになってからブログの記事の方法に少し変更加えています。多分いつかどこかで改めて紹介するかもしれません。
ご質問ありましたらDMでもメールでもお気軽に^^
投稿: ぶんきゅう | 2021/02/02 12:58
なるほど。I2Cのアドレスは7bitなんですね。調べると色々ヒットしました。
秋月のペラ紙には、親切に0xC0の表記になっていました。やっと理解できました。
もう少し、悩んでみます。また教えて下さい。よろしくおねがいします。
投稿: JK1LSE | 2021/02/02 13:24