したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

電子回路/オーディオ回路掲示板

2276たかじん:2022/03/31(木) 07:04:11
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側エラーを表示させたことはありませんでした。






掲示板管理者へ連絡 無料レンタル掲示板