レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
電子回路/オーディオ回路掲示板
-
Re: Blue Snow DAC不調
天 婦羅夫さん
I2C解析、ありがとうございます。
アドレスは0x10がLch(U1)、0x12がRch(U2)です。
通信エラー時、特に繰り返さないプログラムのつもりでしたが、I2Cライブラリの方で繰り返し
するようになっているのかもしれません。
ソースコードでは
????led_set(0,0,1);// LED R,G,B
????oled_init();
????oled_dekamoji(1);????//デカ文字設定
????oled_setCursor(1,0);
????oled_sendStr("??Blue Snow DAC ");
????//ak4490_init(AK4490_ADDR1);
????err = i2cByteWrite(AK4490_ADDR1,AK4490_CLRL1,Ureg1.chr);
????if(err != 0){
????????gERROR_CODE = gERROR_CODE | AK4490_DAC1_ERR;
????}else {
????????i2cByteWrite(AK4490_ADDR1,AK4490_CLRL2,Ureg2.chr);
????????i2cByteWrite(AK4490_ADDR1,AK4490_CLRL3,Ureg3L.chr);
????????i2cByteWrite(AK4490_ADDR1,AK4490_CLRL4,Ureg4.chr);
????????i2cByteWrite(AK4490_ADDR1,AK4490_LchATT,gatt_value);
????????i2cByteWrite(AK4490_ADDR1,AK4490_RchATT,gatt_value);
????}
????err = i2cByteWrite(AK4490_ADDR2,AK4490_CLRL1,Ureg1.chr);
????if(err != 0){
????????gERROR_CODE = gERROR_CODE | AK4490_DAC2_ERR;
????}else{
????????i2cByteWrite(AK4490_ADDR2,AK4490_CLRL2,Ureg2.chr);
????????i2cByteWrite(AK4490_ADDR2,AK4490_CLRL3,Ureg3R.chr);
????????i2cByteWrite(AK4490_ADDR2,AK4490_CLRL4,Ureg4.chr);
????????i2cByteWrite(AK4490_ADDR2,AK4490_LchATT,gatt_value);
????????i2cByteWrite(AK4490_ADDR2,AK4490_RchATT,gatt_value);
????}
????__delay_ms(700);
????led_set(0,1,0);// LED R,G,B
????__delay_ms(700);
????led_set(1,0,1);// LED R,G,B
????if(gERROR_CODE != 0){
????????oled_dekamoji(0);????//デカ文字解除
????????sprintf(strings, "%02x",gERROR_CODE);
????????oled_setCursor(1,0);
????????oled_sendStr("ErrCode=0x");
????????oled_sendStr(strings);
????}
????__delay_ms(700);
????led_set(1,1,0);// LED R,G,B
という感じです。AK4490のイニシャライズの一発目だけエラーを拾って判定しています。
// ERROR CODE =================================
#define AK4490_DAC1_ERR 0x01
#define AK4490_DAC2_ERR 0x02
エラーコードの内容はこんな感じです。
実機テストではRchのAK4490を半田付けする前に0x02が出ることは確認していたのですが、
Lch側エラーを表示させたことはありませんでした。
|
|
掲示板管理者へ連絡
無料レンタル掲示板