mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
ヤマハ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:
parent
b16a237b49
commit
8aa11a947a
Binary file not shown.
Binary file not shown.
@ -137,7 +137,8 @@ task_status_immed tski_cbk_accero( )
|
|||||||
}
|
}
|
||||||
if( (( system_status.pwr_state == ON )
|
if( (( system_status.pwr_state == ON )
|
||||||
||( system_status.pwr_state == SLEEP ))
|
||( 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
|
pedometer(); // •à<E280A2>”Œv
|
||||||
}
|
}
|
||||||
|
|||||||
@ -284,17 +284,20 @@ __interrupt void int_adc( )
|
|||||||
switch ( ADS )
|
switch ( ADS )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
case ( ADC_SEL_AMB_BRIT ): // 環境明るさ
|
case ( ADC_SEL_AMB_BRIT ):
|
||||||
|
// 環境明るさ //
|
||||||
vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data;
|
vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data;
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
case ( ADC_SEL_3D ):
|
case ( ADC_SEL_3D ):
|
||||||
|
// 3Dボリューム //
|
||||||
EI();
|
EI();
|
||||||
adc_raw_dep = adc_data;
|
adc_raw_dep = adc_data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( ADC_SEL_VOL ):
|
case ( ADC_SEL_VOL ):
|
||||||
|
// 音量スライダ //
|
||||||
EI();
|
EI();
|
||||||
if( system_status.model == MODEL_TS_BOARD )
|
if( system_status.model == MODEL_TS_BOARD )
|
||||||
{
|
{
|
||||||
@ -308,6 +311,7 @@ case ( ADC_SEL_AMB_BRIT ): //
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ( ADC_SEL_BATT_TEMP ):
|
case ( ADC_SEL_BATT_TEMP ):
|
||||||
|
// バッテリ温度 //
|
||||||
EI();
|
EI();
|
||||||
#ifdef _ENABLE_HAL_
|
#ifdef _ENABLE_HAL_
|
||||||
if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // 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 ):
|
case ( ADC_SEL_BATT_DET ):
|
||||||
|
// バッテリメーカー識別 //
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define MCU_VER_MAJOR 0x02
|
#define MCU_VER_MAJOR 0x02
|
||||||
#define MCU_VER_MINOR 0x19
|
#define MCU_VER_MINOR 0x1x ( Eより大きいこと)
|
||||||
|
|
||||||
|
|
||||||
// デバッグ向けスイッチ
|
// デバッグ向けスイッチ
|
||||||
|
|||||||
@ -43,10 +43,11 @@ extern i2c_err iic_mcu_call_slave( u8 slave );
|
|||||||
|
|
||||||
iic_mcu_write_a_byte CODEC不具合ワークアラウンド
|
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 )
|
i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
|
||||||
{
|
{
|
||||||
u8 pm_reg_original;
|
u8 pm_reg_original;
|
||||||
u8 rv;
|
i2c_err rv;
|
||||||
|
|
||||||
// ヤマハcodecワークアラウンド SPIとの共用レジスタの中身を取得
|
// ヤマハcodecワークアラウンド SPIとの共用レジスタの中身を取得
|
||||||
if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK )
|
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ワークアラウンド
|
// ヤマハcodecワークアラウンド
|
||||||
if( dat != 0 ) // 書き込むのが0だったらチェックもしない
|
if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // はじめから共有レジスタが0だったらテストもしない
|
||||||
|
// (& リセット要求が立ってたらどうせリセットかかるので)
|
||||||
|
{
|
||||||
|
return( I2C_ERR_OK );
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// 共有レジスタが 0x00 に書き換わっている(エラッタ発生!)ようなら書き戻す
|
// 共有レジスタが 0x00 に書き換わっている(エラッタ発生!)ようなら書き戻す
|
||||||
u8 pm_reg_after;
|
u8 pm_reg_after;
|
||||||
@ -72,16 +78,18 @@ i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
|
|||||||
return( rv );
|
return( rv );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( pm_reg_after & 0x7C ) != 0x00 )
|
if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 )
|
||||||
{
|
{
|
||||||
|
// コンフリクトはなかった or リセット要求など
|
||||||
return( I2C_ERR_OK );
|
return( I2C_ERR_OK );
|
||||||
}
|
}
|
||||||
|
|
||||||
// else {
|
// 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 //
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1051,7 +1051,7 @@ err PM_sys_pow_on( )
|
|||||||
RESET2_neg;
|
RESET2_neg;
|
||||||
|
|
||||||
codec_reg_init(); // CODEC 不定レジスタ初期化(reset2の後でないといけないので)
|
codec_reg_init(); // CODEC 不定レジスタ初期化(reset2の後でないといけないので)
|
||||||
ntr_pm_reg_shadow = 3<<2; // 〃 こんなところで... 0x00はヤマハcodecバグ対策で書けないので、影響のない値
|
ntr_pm_reg_shadow = 0; // 〃 こんなところで...
|
||||||
|
|
||||||
return ( ERR_SUCCESS );
|
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( )
|
task_status_immed tski_ntr_pmic_comm( )
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user