AitendoのDSPラジオIC(その2)
昨夜からBK1088制御ソフトを作成中です。
とりあえず、BK1088のデータシートとこちらのページを参考にしてI2CでデバイスIDを読んでLCDに表示するソフトを作ってみたのですが、うまくいっていないようで、0000表示となっています。
問題がハードなのかソフトなのかはI2Cの波形を見ればすぐわかるのですが、いま帰省中で手元にオシロがないのでそうもいきません。戻ってからということにしました。
動かないソフトをアップしても意味がないので、ソースアップも動いてからにします。
なお、ネットで検索したところBK1088のレジスタ設定値がこの中国語ページにあるらしいです。ここにあるFM用設定らしいところを抜粋してデータシートと照らし合わせました。
code UINT16 HW_Reg[]=
{
0x8000,//0 デバイスID
0x1080, チップID
0x0281, Power Configration ※bit0 = Power ON
0x0000, Channel
0x60C0, Systen Configuration1
0x37DA,//5 System Configuration2 ※バンドとチャンネル間隔
0x086E, Systen Configuration3
0x0901, Test1 ※AM/FMの切り替えはここらしい
0x9C90, Test2 ※AFC関係?
0x17A0, Status1 ※AFC/SNRリード
0x402B,//10 Status2 ※Seek状態、RSSIリード
0x0040, Read Channel ※現在のチャネル
0x0000, RDS1
0x0000, RDS2
0x0000, RDS3
0x0000,//15 RDS4
0x7B11, Boot Confirutation1 ※リザーブ機能?
0x0800, Boot Confirutation2 ※リザーブ機能?
0x4000, Boot Confirutation3 ※リザーブ機能?
0x4144, Boot Confirutation4 ※リザーブ機能(リセット値と違う)
0x829A,//20 Boot Confirutation5 ※ミュート設定らしい
0x7812, Boot Confirutation6 ※リザーブ機能(リセット値と違う)
0x43BB, Boot Confirutation7 ※リザーブ機能(リセット値と違う)
0x0B41, Boot Confirutation8 ※リザーブ機能(リセット値と違う)
0x143C, Boot Confirutation9 ※リザーブ機能(リセット値と違う)
0x000E,//25 Boot Confirutation10 ※リザーブ機能(リセット値と違う)
0x0000, Boot Confirutation11 ※リザーブ機能?
0x48D4, Analog Configuration1 ※リザーブ機能?
0x0000, Analog Configuration2 ※Clock Divider
0x0200, Analog Configuration3 ※Clock Divider control
0x80AA,//30 ※以下(0x1E〜0x28)はテスト用レジスタで設定不要らしい
0x0000,
0x0EF7,
0x0600,
0x0000,
0x7000,//35
0x0880,
0x8D83,
0x8000,
0x0000,
0x4400//40
};
どうやらこれだけ設定すれば良いみたいです。これならI2Cさえちゃんと動けばそう大変でもないかな。
あとは変な順番がなければ良いのですが。
それではまたです。
Hello! Thank you for visiting my Blog.
Please check my code in the URL below, as reference.
http://crystal-radio.blogzine.jp/blog/files/BK1088_AMtest.txt
This source code includes I2C routine and register setting for BK1088. It seems to be working.
If able, may I ask about more information regarding your trouble?
What address of register in BK1088 causes the problem when you write?
投稿 Blog owner | 2013/05/13 12:51
Hello,
I very much like the progress you have made with BK1088, I am trying to implement something like it for Arduino but im having trouble at the moment when i2c hangs if i write some registers
投稿 Shaun | 2013/05/12 00:56