mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
パラディウム、バグ持ちPMICのIfdefの削除
新フリーレジスタの実装 電源電圧で強制オフ(通知は行い、暫定でタイムアウト→強制断) 白箱からのリセットに対応を修正 フルカラーLEDの対応。 フルカラー版を現行で走らせるとショートで落ちるため。 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@130 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
eebc9f8aa6
commit
1f16a6ac8f
@ -12,23 +12,24 @@
|
||||
|
||||
//#define PM_CCIC_TIM
|
||||
|
||||
// 古い(C)電源ボード
|
||||
//#define _PM_BUG_
|
||||
|
||||
//#define _PARRADIUM_
|
||||
//#define _MODEL_TEG2_
|
||||
// <20>ªTEG2 CPU <20>{ Type-T
|
||||
//#define _MODEL_WM0_
|
||||
//#define _MODEL_WM0_TEG2_CTRC_
|
||||
//#define _MODEL_TS0_
|
||||
// <20>ªTEG2 CPU <20>{ Type-C
|
||||
//#define _MODEL_CTR_TS_
|
||||
// ↑FINAL SoC + Type-C
|
||||
|
||||
#define _MODEL_CTR_
|
||||
#define _NOTIFY_FULLCOLOR_
|
||||
// ↑TS board, WM1,1 TS-CTRC
|
||||
//#define _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
// ↑TS board, WM1,1 TS-CTRC
|
||||
|
||||
|
||||
// 特殊仕様 //
|
||||
//#define _SW_HOME_ENABLE_
|
||||
//#define _PARRADIUM_ 廃止
|
||||
//#define _PM_BUG_ // バグ持ち CTR PMIC 廃止
|
||||
|
||||
|
||||
// ---------------------------------- //
|
||||
@ -56,4 +57,11 @@
|
||||
#define _SW_HOME_ENABLE_
|
||||
#endif
|
||||
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
#define _MODEL_CTR_
|
||||
#define _PMIC_CTR_
|
||||
#define _MCU_BSR_
|
||||
#define _SW_HOME_ENABLE_
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@ -199,7 +199,7 @@ __interrupt void int_iic_ctr( )
|
||||
/// アクセスポインタを進めない特殊なレジスタ
|
||||
if( ( reg_adrs != VREG_C_ACC_HOSU_HIST )
|
||||
&& ( reg_adrs != VREG_C_INFO )
|
||||
&& ( reg_adrs != VREG_C_FREE_ADDRESS )
|
||||
&& ( reg_adrs != VREG_C_FREE_DATA )
|
||||
)
|
||||
{
|
||||
reg_adrs += 1;
|
||||
|
||||
14
trunk/led.c
14
trunk/led.c
@ -9,6 +9,8 @@
|
||||
#include "led.h"
|
||||
|
||||
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
|
||||
// ========================================================
|
||||
// TPS0
|
||||
@ -33,9 +35,9 @@ static void led_pow_hotaru( );
|
||||
// ========================================================
|
||||
// お知らせLEDのパターンデータ
|
||||
uni_info_LED info_LED = {
|
||||
32,
|
||||
32,
|
||||
0,
|
||||
32, // 1フレームの長さ
|
||||
32, // グラデーション時間
|
||||
0, // 最終フレームをn回繰り返す
|
||||
{
|
||||
{255, 0,0},
|
||||
{0,0,0},
|
||||
@ -75,6 +77,7 @@ uni_info_LED info_LED = {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//調光可能LEDのワークというか
|
||||
/*
|
||||
typedef struct{
|
||||
@ -494,12 +497,12 @@ void tsk_led_notify( )
|
||||
|
||||
frame += 1;
|
||||
// 最後のフレームリピート
|
||||
if( frame > NOTIFY_LED_TERM + 1 + info_LED.info_LED.last_loop )
|
||||
if( frame > NOTIFY_LED_TERM + info_LED.info_LED.last_loop )
|
||||
{
|
||||
frame = 0;
|
||||
}
|
||||
|
||||
if( frame <= NOTIFY_LED_TERM )
|
||||
if( frame < NOTIFY_LED_TERM )
|
||||
{
|
||||
temp = info_LED.info_LED.ptn[ frame ];
|
||||
|
||||
@ -630,3 +633,4 @@ void tsk_led_cam( )
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
25
trunk/led.h
25
trunk/led.h
@ -1,11 +1,11 @@
|
||||
#ifndef __led__
|
||||
#define __led__
|
||||
|
||||
|
||||
// ====================================
|
||||
|
||||
|
||||
#ifdef _NOTIFY_FULLCOLOR_
|
||||
#ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_blu TDR06
|
||||
#define LED_duty_WiFi TDR03
|
||||
@ -17,13 +17,26 @@
|
||||
// これらはduty変えられません
|
||||
#define LED_pow_red P7.5
|
||||
#define LED_CAM P4.2
|
||||
|
||||
#else
|
||||
|
||||
// LED_DUTY
|
||||
#define LED_duty_pow_L TDR07
|
||||
#define LED_duty_pow_blu TDR06
|
||||
#define LED_duty_WiFi TDR03
|
||||
#define LED_duty_NOTIFY TDR05
|
||||
#define LED_duty_CAM TDR02
|
||||
#define LED_duty_3d TDR01
|
||||
// wifi2はPWMできません。
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define LED_BRIGHT_MAX 0x00FF
|
||||
#define NOTIFY_LED_TERM 32
|
||||
|
||||
#define NOTIFY_LED_TERM 32 - 1
|
||||
|
||||
#define LED_BRIGHT_MAX 0x00FF
|
||||
|
||||
// ====================================
|
||||
#ifdef _MCU_BSR_ // 電波送信パルス
|
||||
@ -99,8 +112,8 @@ typedef struct{
|
||||
typedef struct{
|
||||
u8 term; // 1フレーム何チック?
|
||||
u8 fade_time; // 何チックで次のフレームの色に達するか
|
||||
u8 last_loop; // 最終フレームをn回繰り返す(0=1回)
|
||||
st_info_LED_ptn ptn[32];
|
||||
u8 last_loop; // 最終フレームを
|
||||
st_info_LED_ptn ptn[ NOTIFY_LED_TERM ];
|
||||
}st_info_LED;
|
||||
|
||||
typedef union{
|
||||
|
||||
@ -236,7 +236,11 @@ void hdwinit2( )
|
||||
PM2 = 0b11101001;
|
||||
|
||||
#ifdef _PMIC_CTR_
|
||||
# ifdef _MODEL_CTR_NOTIFY_FULLCOLOR_
|
||||
PM4 = 0b11110011;
|
||||
# else
|
||||
PM4 = 0b11110111;
|
||||
# endif
|
||||
#else
|
||||
PM4 = 0b11111011;
|
||||
#endif
|
||||
@ -268,15 +272,15 @@ void hdwinit2( )
|
||||
PU14 = 0b00000000;
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
#ifdef _MODEL_CTR_
|
||||
#ifdef _SW_HOME_ENABLE_
|
||||
# ifdef _MODEL_CTR_
|
||||
# ifdef _SW_HOME_ENABLE_
|
||||
PU20 = 0b00010001;
|
||||
#else
|
||||
# else
|
||||
PU20 = 0b00000001;
|
||||
#endif
|
||||
#else
|
||||
# endif
|
||||
# else
|
||||
PU20 = 0b00000000;
|
||||
#endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// ポート入力モード・レジスタ設定 /////////////////////
|
||||
|
||||
@ -58,9 +58,6 @@ void main_loop( void )
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
}
|
||||
|
||||
#ifdef _PARRADIUM_
|
||||
system_status.pwr_state = OFF;
|
||||
#endif
|
||||
vreg_ctr_init( );
|
||||
vreg_twl_init( );
|
||||
|
||||
|
||||
158
trunk/pm.c
158
trunk/pm.c
@ -39,7 +39,6 @@ BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED;
|
||||
u8 blset;
|
||||
#endif
|
||||
|
||||
#ifndef _PARRADIUM_
|
||||
/* ========================================================
|
||||
液晶系の電源制御
|
||||
ステータスフラグはすぐに立ててしまう。
|
||||
@ -63,9 +62,6 @@ err PM_LCD_on( )
|
||||
PM_VCS_on( );
|
||||
|
||||
wait_ms( DELAY_PM_VCS_TO_BL );
|
||||
#ifdef _PM_BUG_
|
||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x22, 0x4A ); // バグ持ちPMIC対策
|
||||
#endif
|
||||
|
||||
rv = PM_chk_LDSW( );
|
||||
|
||||
@ -120,7 +116,7 @@ void PM_LCD_off()
|
||||
blset = 0;
|
||||
#endif
|
||||
|
||||
if( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_VDD_LCD ) != 0 )
|
||||
if( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 )
|
||||
{
|
||||
PM_TCOM_VCS_off( );
|
||||
wait_ms( DELAY_PM_LCD_OFF );
|
||||
@ -224,53 +220,13 @@ err PM_LCD_vcom_set( )
|
||||
{
|
||||
u8 rv;
|
||||
|
||||
rv = iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // がっかりなことに、PMICはバースト書き込み不可
|
||||
rv = iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // がっかりなことに、PMICはバースト書き込み不可
|
||||
rv |= iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] );
|
||||
return ( rv );
|
||||
}
|
||||
|
||||
|
||||
|
||||
#else
|
||||
// パラディウム上のSoCでチェックしたいとき、PMICも液晶もつながってないので
|
||||
// 異常終了しないようにダミー関数にする
|
||||
err PM_LCD_on( )
|
||||
{
|
||||
vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW;
|
||||
set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON );
|
||||
SND_DEPOP_SND_ENABLE; // 1でミュート
|
||||
return ( ERR_SUCCESS );
|
||||
}
|
||||
|
||||
|
||||
void PM_LCD_off( )
|
||||
{
|
||||
SND_DEPOP_SND_MUTE;
|
||||
vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW;
|
||||
set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF );
|
||||
}
|
||||
|
||||
|
||||
err PM_BL_set( u8 )
|
||||
{
|
||||
wait_ms( 10 );
|
||||
vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & ~( REG_BIT_BL_U | REG_BIT_BL_L )
|
||||
| ( command_bl_set & REG_BIT_CMD_BL_U_ON )? REG_BIT_BL_U
|
||||
| ( command_bl_set & REG_BIT_CMD_BL_L_ON )? REG_BIT_BL_L
|
||||
);
|
||||
return ( PM_chk_LDSW( ) );
|
||||
}
|
||||
|
||||
|
||||
err PM_LCD_vcom_set( )
|
||||
{
|
||||
return ( ERR_SUCCESS );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* ========================================================
|
||||
↑で、レジスタ書き込みから呼び出される時のため
|
||||
I2Cの取り合いの関係でここから呼ぶ
|
||||
@ -303,9 +259,6 @@ err PM_sys_pow_on( )
|
||||
PM_LDSW_on( );
|
||||
|
||||
wait_ms( 1 );
|
||||
#ifdef _PM_BUG_
|
||||
iic_mcu_write_a_byte( 0x22, 0xCA ); // バグ持ちPMIC対策 OVP解除
|
||||
#endif
|
||||
|
||||
wait_ms( DELAY_PM_TW_PWUP );
|
||||
|
||||
@ -317,10 +270,6 @@ err PM_sys_pow_on( )
|
||||
|
||||
wait_ms( DELAY_PM_TW_PWUP );
|
||||
|
||||
#ifdef _PM_BUG_
|
||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x03 ); // バグ持ちPMIC対策 強制PWM
|
||||
#endif
|
||||
|
||||
// 無事電源が起動したかチェック。
|
||||
#ifdef _PMIC_CTR_
|
||||
if( !PM_chk_LDSW() )
|
||||
@ -642,7 +591,7 @@ task_status_immed tski_PM_BL_set()
|
||||
void tsk_batt( )
|
||||
{
|
||||
static u8 task_interval = 0;
|
||||
static u8 temp_area = 0; // 温度で充電停止する時にヒステリシスを付けるため
|
||||
static u8 temp_zone_charge_enable = 0; // 温度で充電停止する時にヒステリシスを付けるため
|
||||
static bit pm_extdc_old;
|
||||
|
||||
if( task_interval-- != 0 )
|
||||
@ -655,7 +604,7 @@ void tsk_batt( )
|
||||
}
|
||||
|
||||
|
||||
// アダプタ? //
|
||||
// アダプタ? /////////////////////
|
||||
if( pm_extdc_old != !PM_EXTDC_n )
|
||||
{
|
||||
pm_extdc_old = !PM_EXTDC_n;
|
||||
@ -677,19 +626,19 @@ void tsk_batt( )
|
||||
if(( 86 < vreg_ctr[VREG_C_BT_TEMP] )
|
||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < 185 ))
|
||||
{
|
||||
temp_area = 1; // 充電許可
|
||||
temp_zone_charge_enable = 1; // 充電許可
|
||||
}
|
||||
else if(( vreg_ctr[VREG_C_BT_TEMP] < 70 )
|
||||
|| ( 189 < vreg_ctr[VREG_C_BT_TEMP] ))
|
||||
{
|
||||
temp_area = 0; // 充電禁止
|
||||
temp_zone_charge_enable = 0; // 充電禁止
|
||||
}
|
||||
else
|
||||
{
|
||||
// temp_area そのまま
|
||||
// temp_zone_charge_enable そのまま
|
||||
}
|
||||
|
||||
if(( temp_area == 1 )
|
||||
if(( temp_zone_charge_enable == 1 )
|
||||
&& ( battery_manufacturer <= BT_VENDER_6 ))
|
||||
{
|
||||
#ifndef _MODEL_WM0_
|
||||
@ -972,44 +921,63 @@ void BT_get_left(){
|
||||
if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 )
|
||||
{
|
||||
// 電池残量の取得
|
||||
{
|
||||
static u8 bt_left_state; // バッテリ残量で割り込みのため
|
||||
u8 temp[2];
|
||||
static u8 bt_left_state; // バッテリ残量で割り込みのため
|
||||
static u8 bt_voltage_low_count; // todo どうにかせんとね
|
||||
u8 temp[2];
|
||||
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
||||
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
||||
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
||||
|
||||
// 残量で割り込み
|
||||
switch( bt_left_state )
|
||||
{
|
||||
case( 0 ): // 前回、バッテリーは十分にあった
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 1; // 突然バッテリ残量が減っても、Lo割り込みを入れる
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
case( 1 ):
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY )
|
||||
{
|
||||
bt_left_state = 2;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
// 電池電圧で強制断が優先される
|
||||
vreg_ctr[ VREG_C_BT_VOLTAGE ] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
|
||||
if( vreg_ctr[ VREG_C_BT_VOLTAGE ] > ( 3100 / 16 / 1.25 ) )
|
||||
{
|
||||
bt_voltage_low_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
bt_voltage_low_count += 1;
|
||||
|
||||
if( bt_voltage_low_count == 12 ) // およそ3sec
|
||||
{
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
else if( bt_voltage_low_count == 12 + 3 * 5 )
|
||||
{ // …時間切れ。強制的に切る
|
||||
vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_ONLY_RED;
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
}
|
||||
}
|
||||
|
||||
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp );
|
||||
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
|
||||
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
|
||||
|
||||
// 残量で割り込み
|
||||
switch( bt_left_state )
|
||||
{
|
||||
case( 0 ): // 前回、バッテリーは十分にあった
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 1; // 突然バッテリ残量が減っても、Lo割り込みを入れる
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
case( 1 ):
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY )
|
||||
{
|
||||
bt_left_state = 2;
|
||||
set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN );
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO )
|
||||
{
|
||||
bt_left_state = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
13
trunk/pm.h
13
trunk/pm.h
@ -11,6 +11,9 @@
|
||||
#define BATT_TH_LO 8
|
||||
#define BATT_TH_EMPTY 3
|
||||
|
||||
#define VCOM_DEFAULT_T 92
|
||||
#define VCOM_DEFAULT_B 95
|
||||
|
||||
|
||||
|
||||
//=========================================================
|
||||
@ -79,7 +82,7 @@ typedef enum
|
||||
#define PM_REG_BIT_VDD50A ( 1 << 4 )
|
||||
|
||||
// 0x02 pw cnt2
|
||||
#define PM_REG_BIT_VDDLCD 0x07
|
||||
#define PM_REG_BIT_VDDLCD 0x07
|
||||
#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 )
|
||||
#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 )
|
||||
|
||||
@ -153,17 +156,9 @@ task_status_immed tski_PM_BL_set();
|
||||
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R15 | PM_REG_BIT_VDD_PWM ))
|
||||
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO ))
|
||||
|
||||
#else
|
||||
// 本番チップ待ち
|
||||
#ifdef _PM_BUG_
|
||||
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO ))
|
||||
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R10 | PM_REG_BIT_VDD_PWM ))
|
||||
|
||||
#else
|
||||
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R05 | PM_REG_BIT_VDD_AUTO ))
|
||||
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R05 | PM_REG_BIT_VDD_PWM ))
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ‚Ù‚© //
|
||||
|
||||
@ -110,7 +110,7 @@ void tsk_sw( )
|
||||
#endif
|
||||
}
|
||||
else if( SW_pow_count == ( HOLD_THREASHOLD * 4 ) )
|
||||
{ // todo
|
||||
{// 長押しによる強制OFF
|
||||
vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_ONLY_RED;
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
|
||||
@ -40,7 +40,6 @@ void tsk_sys( )
|
||||
case OFF: //-------------------------------------------------------
|
||||
// スイッチ操作などで割り込みが発生し、スリープが解除されるとここに来ます。
|
||||
|
||||
#ifndef _PARRADIUM_
|
||||
switch ( system_status.poweron_reason )
|
||||
{
|
||||
default:
|
||||
@ -107,11 +106,6 @@ void tsk_sys( )
|
||||
return;
|
||||
}
|
||||
|
||||
#else
|
||||
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
|
||||
system_status.poweron_reason = PWSW;
|
||||
#endif // _PARADDIUM_
|
||||
|
||||
PM_LCD_vcom_set( ); // LCDの対向電圧値など書き込み
|
||||
#ifdef _PMIC_TWL_
|
||||
PM_TEG_LCD_dis( 0 );
|
||||
@ -314,19 +308,17 @@ void tsk_sys( )
|
||||
|
||||
// 割り込み待ちで寝る //
|
||||
RTCIMK = 1;
|
||||
#ifndef _PARRADIUM_
|
||||
|
||||
#ifdef _MCU_BSR_
|
||||
# ifdef _MCU_BSR_
|
||||
CKC = 0b00001001;
|
||||
OSMC = 0x00;
|
||||
#endif
|
||||
# endif
|
||||
STOP( );
|
||||
#ifdef _MCU_BSR_
|
||||
# ifdef _MCU_BSR_
|
||||
OSMC = 0x01;
|
||||
CKC = 0b00001000;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
#endif
|
||||
RTCIMK = 0;
|
||||
// 起きる //
|
||||
|
||||
@ -356,10 +348,9 @@ void tsk_sys( )
|
||||
PMICが電源異常で止めたか確認
|
||||
**********************************************************/
|
||||
static void chk_emergencyExit(){
|
||||
#ifndef _PARRADIUM_
|
||||
static u8 shirobako_power_control;
|
||||
static u8 shirobako_power_control_count;
|
||||
|
||||
if( shirobako_power_control == 0 ) // PM_chk_LDSW() ‚ÍI2C_m‚ðŽg—p‚µ<E2809A>A<EFBFBD>‚ƒRƒXƒg
|
||||
if( shirobako_power_control_count == 0 ) // PM_chk_LDSW() ‚ÍI2C_m‚ðŽg—p‚µ<E2809A>A<EFBFBD>‚ƒRƒXƒg
|
||||
{
|
||||
if( !RESET1_n )
|
||||
{
|
||||
@ -373,46 +364,44 @@ static void chk_emergencyExit(){
|
||||
else
|
||||
{
|
||||
// 白箱の仕業
|
||||
shirobako_power_control = 1;
|
||||
shirobako_power_control_count = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( shirobako_power_control == 240 )
|
||||
if( shirobako_power_control_count == 240 )
|
||||
// デバッガが何かした。reset1を解除するまでは無視
|
||||
{
|
||||
if( RESET1_n )
|
||||
{
|
||||
shirobako_power_control = 0;
|
||||
shirobako_power_control_count = 0;
|
||||
}
|
||||
}else if( shirobako_power_control == 200 )
|
||||
}else if( shirobako_power_control_count == 200 )
|
||||
// デバッガが何かしたいらしい
|
||||
{
|
||||
// 白箱は電源を切りたいらしい
|
||||
system_status.pwr_state = OFF_TRIG;
|
||||
renge_task_interval_run_force = 1;
|
||||
shirobako_power_control = 240;
|
||||
shirobako_power_control_count = 240;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !RESET1_n )
|
||||
{
|
||||
shirobako_power_control += 1;
|
||||
shirobako_power_control_count += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// リセットをかけたらしい
|
||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, 0 );
|
||||
vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & 0b10011111 );
|
||||
vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ;
|
||||
renge_task_immed_add( do_command0 );
|
||||
shirobako_power_control = 240;
|
||||
shirobako_power_control_count = 240;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -83,11 +83,7 @@
|
||||
#define RESET2_ast { P0.1 = 0; PM0.1 = 0; }
|
||||
#define RESET2_neg { PM0.1 = 1; }
|
||||
|
||||
#ifndef _PARRADIUM_
|
||||
#define SLP_REQ P12.0
|
||||
#else
|
||||
#define SLP_REQ 0
|
||||
#endif
|
||||
|
||||
// FCRAM
|
||||
#ifdef _MODEL_TEG2_
|
||||
@ -138,6 +134,7 @@
|
||||
|
||||
// <20>[“d‚¹‚æ(out)
|
||||
#ifdef _PMIC_CTR_
|
||||
// 負論理です。注意。
|
||||
#define BT_CHG_ENABLE() ( P4.3 = 0 )
|
||||
#define BT_CHG_DISABLE() ( P4.3 = 1 )
|
||||
#else
|
||||
|
||||
@ -47,8 +47,8 @@ void vreg_ctr_init( )
|
||||
#endif
|
||||
vreg_ctr[VREG_C_MCU_VER_MINOR] = MCU_VER_MINOR;
|
||||
|
||||
vreg_ctr[VREG_C_VCOM_T] = 92;
|
||||
vreg_ctr[VREG_C_VCOM_B] = 95;
|
||||
vreg_ctr[VREG_C_VCOM_T] = VCOM_DEFAULT_T;
|
||||
vreg_ctr[VREG_C_VCOM_B] = VCOM_DEFAULT_B;
|
||||
}
|
||||
|
||||
|
||||
@ -155,21 +155,6 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_FREE_ADDRESS ):
|
||||
if( iic_burst_state == 0 )
|
||||
{
|
||||
iic_burst_state = 1;
|
||||
vreg_ctr[adrs] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( vreg_ctr[ VREG_C_FREE_ADDRESS ] >= VREG_C_FREE_SIZE )
|
||||
{
|
||||
vreg_ctr[ VREG_C_FREE_ADDRESS ] = 0;
|
||||
}
|
||||
pool.vreg_c_ext.vreg_c_free[ vreg_ctr[ VREG_C_FREE_ADDRESS ]++ ] = data;
|
||||
}
|
||||
|
||||
case ( VREG_C_LED_BRIGHT ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
@ -289,6 +274,18 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_FREE_ADRS ):
|
||||
vreg_ctr[adrs] = data;
|
||||
break;
|
||||
|
||||
case ( VREG_C_FREE_DATA ):
|
||||
if( vreg_ctr[ VREG_C_FREE_ADRS ] < VREG_C_FREE_SIZE )
|
||||
{
|
||||
pool.vreg_c_ext.vreg_c_free[ vreg_ctr[ VREG_C_FREE_ADRS ] ] = data;
|
||||
vreg_ctr[ VREG_C_FREE_ADRS ] += 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case ( VREG_C_COMMAND3 ):
|
||||
switch ( data )
|
||||
{
|
||||
@ -331,9 +328,9 @@ u8 vreg_ctr_read( u8 adrs )
|
||||
{
|
||||
return( hosu_read() );
|
||||
}
|
||||
else if( adrs == VREG_C_FREE_ADDRESS )
|
||||
else if( adrs == VREG_C_FREE_DATA )
|
||||
{
|
||||
return( pool.vreg_c_ext.vreg_c_free[ vreg_ctr[VREG_C_FREE_ADDRESS]++ ] );
|
||||
return( pool.vreg_c_ext.vreg_c_free[ vreg_ctr[VREG_C_FREE_ADRS]++ ] );
|
||||
}
|
||||
else if( adrs == VREG_C_RTC_SEC_FINE_L )
|
||||
{
|
||||
|
||||
@ -237,7 +237,8 @@ enum VREG_C
|
||||
|
||||
// VREG_C_AMBIENT_BRIGHTNESS = 0xXX,
|
||||
|
||||
VREG_C_FREE_ADDRESS = 0x50,
|
||||
VREG_C_FREE_ADRS = 0x50,
|
||||
VREG_C_FREE_DATA,
|
||||
|
||||
VREG_C_ENDMARK_
|
||||
};
|
||||
|
||||
@ -520,64 +520,6 @@ Tool3=ID78K0R-QB|V3.60
|
||||
[BuildBefore-AfterCmd]
|
||||
Before1=touch magic.c
|
||||
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include27=i2c_twl_defs.h
|
||||
Include28=renge\renge_task_intval.h
|
||||
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
Include30=i2c_twl.h
|
||||
Include31=sw.h
|
||||
Include32=self_flash.h
|
||||
Include33=pool.h
|
||||
Include34=pedo_lpf_coeff.h
|
||||
[Options.CC78K0R 0]
|
||||
Version=210
|
||||
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
@ -788,7 +730,7 @@ Intunexpand=0
|
||||
Kanjicode=1210
|
||||
Verbose=0
|
||||
CommandFile=0
|
||||
Warninglevel=2
|
||||
Warninglevel=1
|
||||
Startupchk=1
|
||||
Fixation=0
|
||||
FarROMization=0
|
||||
@ -815,7 +757,7 @@ Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\in
|
||||
Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include2=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include3=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include4=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Include4=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
|
||||
Memorymodel=1
|
||||
Flashobj=0
|
||||
FlashStartadr=
|
||||
@ -871,7 +813,7 @@ Intunexpand=0
|
||||
Kanjicode=1210
|
||||
Verbose=0
|
||||
CommandFile=0
|
||||
Warninglevel=2
|
||||
Warninglevel=1
|
||||
Startupchk=1
|
||||
Fixation=0
|
||||
FarROMization=0
|
||||
@ -1127,3 +1069,62 @@ VfiFileBoot0=
|
||||
VfiFileBoot1=boot.vfi
|
||||
VF78K0Rchk=0
|
||||
VF78K0Rvs=
|
||||
[SrcFile]
|
||||
Source1=loader.c
|
||||
Source2=pm.c
|
||||
Source3=i2c_ctr.c
|
||||
Source4=main.c
|
||||
Source5=magic.c
|
||||
Source6=WDT.c
|
||||
Source7=i2c_mcu.c
|
||||
Source8=i2c_twl.c
|
||||
Source9=led.c
|
||||
Source10=rtc.c
|
||||
Source11=vreg_ctr.c
|
||||
Source12=vreg_twl.c
|
||||
Source13=adc.c
|
||||
Source14=renge\renge.c
|
||||
Source15=accero.c
|
||||
Source16=self_flash.c
|
||||
Source17=sw.c
|
||||
Source18=task_debug.c
|
||||
Source19=task_misc.c
|
||||
Source20=task_sys.c
|
||||
Source21=pedo_alg_thre_det2.c
|
||||
Source22=ini_VECT.c
|
||||
Source23=led_old.c
|
||||
[IncFile]
|
||||
Include1=incs_loader.h
|
||||
Include2=jhl_defs.h
|
||||
Include3=config.h
|
||||
Include4=user_define.h
|
||||
Include5=bsr_system.h
|
||||
Include6=renge\renge.h
|
||||
Include7=renge\renge_defs.h
|
||||
Include8=renge\renge_task_immediate.h
|
||||
Include9=vreg_ctr.h
|
||||
Include10=vreg_twl.h
|
||||
Include11=loader.h
|
||||
Include12=i2c_mcu.h
|
||||
Include13=WDT.h
|
||||
Include14=fsl.h
|
||||
Include15=fsl_user.h
|
||||
Include16=i2c_ctr.h
|
||||
Include17=pm.h
|
||||
Include18=rtc.h
|
||||
Include19=reboot.h
|
||||
Include20=incs.h
|
||||
Include21=accero.h
|
||||
Include22=pedometer.h
|
||||
Include23=adc.h
|
||||
Include24=led.h
|
||||
Include25=batt_params.h
|
||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||
Include27=i2c_twl_defs.h
|
||||
Include28=renge\renge_task_intval.h
|
||||
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||
Include30=i2c_twl.h
|
||||
Include31=sw.h
|
||||
Include32=self_flash.h
|
||||
Include33=pool.h
|
||||
Include34=pedo_lpf_coeff.h
|
||||
|
||||
Loading…
Reference in New Issue
Block a user