ヤマハcodec対策ブランチ(C:\78k_data\yav-mcu-basara\branches)から手動マージ

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@444 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2012-01-26 08:10:44 +00:00
parent b16a237b49
commit 8aa11a947a
7 changed files with 24 additions and 10 deletions

Binary file not shown.

Binary file not shown.

View File

@ -137,7 +137,8 @@ task_status_immed tski_cbk_accero( )
}
if( (( system_status.pwr_state == ON )
||( system_status.pwr_state == SLEEP ))
&&( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ))
&&( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
)
{
pedometer(); // •à<E280A2>”Œv
}

View File

@ -284,17 +284,20 @@ __interrupt void int_adc( )
switch ( ADS )
{
/*
case ( ADC_SEL_AMB_BRIT ): // 環境明るさ
case ( ADC_SEL_AMB_BRIT ):
// 環境明るさ //
vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data;
break;
*/
case ( ADC_SEL_3D ):
// 3Dボリューム //
EI();
adc_raw_dep = adc_data;
break;
case ( ADC_SEL_VOL ):
// 音量スライダ //
EI();
if( system_status.model == MODEL_TS_BOARD )
{
@ -308,6 +311,7 @@ case ( ADC_SEL_AMB_BRIT ): //
break;
case ( ADC_SEL_BATT_TEMP ):
// バッテリ温度 //
EI();
#ifdef _ENABLE_HAL_
if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // HAL無効
@ -334,6 +338,7 @@ case ( ADC_SEL_AMB_BRIT ): //
/* 呼ばれません
case ( ADC_SEL_BATT_DET ):
// バッテリメーカー識別 //
break;
*/
}

View File

@ -7,7 +7,7 @@
*/
#define MCU_VER_MAJOR 0x02
#define MCU_VER_MINOR 0x19
#define MCU_VER_MINOR 0x1x ( Eより大きいこと)
// デバッグ向けスイッチ

View File

@ -43,10 +43,11 @@ extern i2c_err iic_mcu_call_slave( u8 slave );
iic_mcu_write_a_byte CODEC不具合ワークアラウンド
***********************************************/
#define YAMAHA_CODEC_ERRATA_CHECK_MASK ( 0x7D )
i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
{
u8 pm_reg_original;
u8 rv;
i2c_err rv;
// ヤマハcodecワークアラウンド SPIとの共用レジスタの中身を取得
if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK )
@ -62,7 +63,12 @@ i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
}
// ヤマハcodecワークアラウンド
if( dat != 0 ) // 書き込むのが0だったらチェックもしない
if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // はじめから共有レジスタが0だったらテストもしない
// (& リセット要求が立ってたらどうせリセットかかるので)
{
return( I2C_ERR_OK );
}
{
// 共有レジスタが 0x00 に書き換わっている(エラッタ発生!)ようなら書き戻す
u8 pm_reg_after;
@ -72,16 +78,18 @@ i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
return( rv );
}
if( ( pm_reg_after & 0x7C ) != 0x00 )
if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 )
{
// コンフリクトはなかった or リセット要求など
return( I2C_ERR_OK );
}
// else {
return iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original );
rv = iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original ); // 書き戻すが、再チェックはしない
return ( rv ); // エラーが返ることもあるかも
// リトライなどは無し
}
return( I2C_ERR_OK );
return( rv ); // no reach //
}

View File

@ -1051,7 +1051,7 @@ err PM_sys_pow_on( )
RESET2_neg;
codec_reg_init(); // CODEC 不定レジスタ初期化(reset2の後でないといけないので)
ntr_pm_reg_shadow = 3<<2; //  〃 こんなところで... 0x00はヤマハcodecバグ対策で書けないので、影響のない値
ntr_pm_reg_shadow = 0; //  〃 こんなところで...
return ( ERR_SUCCESS );
}
@ -1125,7 +1125,7 @@ __interrupt void intp6_PM_irq( )
/********************************************//**
PMICからの割り込みを受けてNTR PMIC互換レジスタからリード
CODECからの割り込みを受けてNTR PMIC互換レジスタからリード
***********************************************/
task_status_immed tski_ntr_pmic_comm( )
{