バッテリ無しで電源onとかしてしまっていた。 リファクタリング時のポカミス
off中のCCICからのリーク対策を削除 これをやるといろいろ悪影響があるとのこと


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@246 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2010-10-19 07:48:21 +00:00
parent b4a395305d
commit e6bffe69da
11 changed files with 169 additions and 180 deletions

View File

@ -209,7 +209,7 @@ task_status_immed tski_vol_update()
// レジスタの更新 //
vreg_ctr[ VREG_C_SND_VOL ] = sent_index;
if( sent_index == 1 )
if( sent_index == 1 ) // スケーリング
{
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 1;
}
@ -291,16 +291,11 @@ case ( ADC_SEL_AMB_BRIT ): //
case ( ADC_SEL_TUNE ):
EI();
#ifdef _MODEL_WM0_
adc_raw_dep = 255 - adc_data;
#else
adc_raw_dep = adc_data;
#endif
break;
case ( ADC_SEL_VOL ):
EI();
#ifdef _MODEL_CTR_
if( system_status.model == MODEL_TS_BOARD )
{
adc_raw_vol = adc_data;
@ -309,9 +304,6 @@ case ( ADC_SEL_AMB_BRIT ): //
{
adc_raw_vol = 255 - adc_data;
}
#else
adc_raw_vol = adc_data;
#endif
break;

View File

@ -13,7 +13,7 @@
//#define _FORCE_TAIKENDAI_
#define MCU_VER_MAJOR 0x01
#define MCU_VER_MINOR 10
#define MCU_VER_MINOR 11
#define _firm_format_v3_

Binary file not shown.

View File

@ -51,7 +51,7 @@ const u8 BT_MANUF_BORDER[] = {
const u8 TWL_BATT_LEFT_BOUNDARY[] = {
80, 50, BATT_TH_LO, BATT_TH_EMPTY, 0
};
@ -127,7 +127,6 @@ void tsk_batt( )
heikinka_l = 0;
}
#ifndef _MODEL_WM0_
// WM0ではCHG_ENABLEピンは /WL_RST に配線されており、充電制御しない
if( !temp_zone_charge_disable && bt_chg_ready && !PM_EXTDC_n )
{
@ -137,18 +136,13 @@ void tsk_batt( )
{
BT_CHG_DISABLE(); // 温度危険! 充電停止
}
#endif
// 充電 //
// →割り込み。
{
static u8 anti_chatter;
u8 temp_CHARGE;
temp_CHARGE = (u8)!BT_IN_CHG_n; // volatileのため。このピンはチャタらない。
if( !temp_CHARGE )
if( BT_IN_CHG_n ) // 充電 *してない* (論理がわかりづらいな!)
{
anti_chatter = 0;
set_bit( 0, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bitのみ。
@ -304,14 +298,15 @@ void BT_model_detect()
else
{
// 実機、残量IC NACK( バッテリ無しまたは残量IC故障 )
system_status.model = MODEL_JIKKI;
system_status.model = MODEL_JIKKI; // バッテリ無しの時は↓で上書きする
}
// 電池メーカーの識別 //
{
BT_VENDER i;
for(i=0; i<7; i++)
battery_manufacturer = BT_VENDER_OPEN;
for(i=0; i<=7; i++)
{
if( temp <= BT_MANUF_BORDER[ i ] )
{
@ -581,7 +576,7 @@ void BT_get_left(){
// 残量リード
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp_fuel ) != ERR_SUCCESS )
{
// 残量ICがNACK
// 残量ICがNACK …バッテリはずれた
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
bt_chg_ready = false;
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;

View File

@ -49,12 +49,11 @@
bit twl_ver_read;
bit going_to_sleep;
u8 vol_soc_readed; // 最後にSoCが読んだVol。TWLとの不整合防止
u8 vol_twl_readed; // 最後にSoCが読んだVol。TWLとの不整合防止
// twl の8段階volのリニア値からの境界 ×2 (分解能が倍になっているので)
// twl の8段階volのリニア値からの境界
const u8 TWL_VOL_BOUNDARY[] = {
// 0, 4, 12, 22, 32, 42, 52, 62 // mute付近で気に入らない感じになるかも...
0, 1, 12, 22, 32, 42, 52, 62
0, 1, 6, 11, 16, 21, 26, 31
};
@ -100,29 +99,42 @@ void tsk_misc( )
/* ========================================================
TWLがVolを書くのと
TWLでは8通常時8
======================================================== */
{
static u8 vol_soc_readed_old;
static u8 vol_soc_readed_twl_level;
static u8 vol_level_old;
u8 new_level = 31;
u8 i;
static u8 mabiki;
if( vol_soc_readed != vol_soc_readed_old )
if( mabiki != 0 )
{
u8 new_level;
u8 i;
mabiki--;
}
else
{
mabiki = 4;
vol_soc_readed_old = vol_soc_readed;
for( i=0; i<=7; i++ )
if( is_TWL )
{
if( vol_soc_readed <= TWL_VOL_BOUNDARY[ i ] )
// if( vol_twl_readed != vreg_twl[ REG_TWL_INT_ADRS_VOL ] )
{
new_level = i;
break;
// 8段レベルに変換
for( i=0; i<=7; i++ )
{
if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] <= TWL_VOL_BOUNDARY[ i ] )
{
new_level = i;
break;
}
}
if( vol_level_old != new_level )
{
vol_level_old = new_level;
set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY );
}
}
}
if( vol_soc_readed_twl_level != new_level )
{
set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY );
}
}
}
}

View File

@ -383,14 +383,14 @@ void tsk_sys( )
}
else
{
static bit chg_ena_orig;
// / static bit chg_ena_orig;
if( chg_led_override != 0 ) // これがゼロになるまで待つ
{
return;
};
chg_ena_orig = BT_CHG_Ena_n;
// / chg_ena_orig = BT_CHG_Ena_n;
// 省電力へ移行
system_status.poweron_reason = NONE;
@ -406,11 +406,10 @@ void tsk_sys( )
// 割り込み待ちで寝る //
RTCIMK = 1;
# ifdef _MCU_BSR_
CKC = 0b00001001;
OSMC = 0x00;
# endif
BT_CHG_ENABLE(); // リークを減らすため
// / BT_CHG_ENABLE(); // リークを減らすため
STOP( );
// 起きる //
@ -419,7 +418,7 @@ void tsk_sys( )
// ・RTCアラーム
// ・アダプタ挿抜
// BT_CHG_Ena_n = chg_ena_orig; // todo rom足りない
// / BT_CHG_Ena_n = chg_ena_orig;
if( PM_EXTDC_n )
{
@ -427,10 +426,10 @@ void tsk_sys( )
// 電源ボタンのタイムアウトで返ってくる
SW_pow_mask = false;
}
# ifdef _MCU_BSR_
OSMC = 0x01;
CKC = 0b00001000;
# endif
RTCIMK = 0;
system_status.pwr_state = OFF;

View File

@ -22,7 +22,7 @@ extern bit twl_ver_read;
extern bit cam_led_update;
extern bit vol_changed_by_twl;
extern u8 vol_soc_readed; // SoC が最後に読んだVol値
extern u8 vol_twl_readed; // SoC が最後に読んだVol値
/* ========================================================
@ -117,16 +117,8 @@ u8 vreg_twl_read( u8 phy_adrs )
return( temp );
case( REG_TWL_INT_ADRS_VOL ):
// TWLとスライダと不整合が起きないように
vol_soc_readed = vreg_ctr[ VREG_C_SND_VOL ];
if( vreg_ctr[ VREG_C_SND_VOL ] != 1 ){
return( vreg_ctr[ VREG_C_SND_VOL ] /2 );
}
else
{
return( 1 );
}
vol_twl_readed = vreg_twl[ REG_TWL_INT_ADRS_VOL ]; // TWLとスライダと不整合が起きないように
return( vol_twl_readed );
case( REG_TWL_INT_ADRS_VER_INFO ):
// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // 速度的に無理なので

View File

@ -94,12 +94,12 @@ enum REG_TWL_ADRS_INT
/* ========================================================================= */
#define is_TWL ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x01 )
#define with_NAND ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x02 )
#define volSteps32 ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x80 )
#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 )
#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 )
#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 )
#define reg_wifi_led ( vregs[ REG_TWL_INT_ADRS_WIFI ] & 0x01 )
#define reg_wifi_led_blink ( vregs[ REG_TWL_INT_ADRS_WIFI ] & 0x02 )
#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 )
#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 )
#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 )

View File

@ -50,7 +50,7 @@ LoadFilter1=5
Offset1=0
Object1=ON
Symbol1=ON
Erase1=OFF
Erase1=ON
HighSpeed1=OFF
CPU Reset1=ON
Symbol Reset1=ON
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=19, 18, 1021, 817
Geometry=37, 16, 1021, 817
Window=Normal
DispStart=70
CaretPos=71,0
DispStart=274
CaretPos=327,0
Mode=Normal
DispFile=
Address1=
@ -142,8 +142,8 @@ Accumulative=ON
[Assemble]
Geometry=30, 440, 968, 626
Window=Normal
DispStart=3351
CaretPos=3351,27
DispStart=712
CaretPos=712,27
Address1=
Address2=
Address3=
@ -965,53 +965,51 @@ Boundary=18088086
2=.chg_led_override,P,N,A,+,1
3=.vreg_twl,P,N,A,+,1
4=.infos,P,N,A,+,1
5=.bt_remain_old_ctr,P,N,A,+,1
6=.bt_remain_old_ntr,P,N,A,+,1
7=.bt_remain_old_ntr,P,N,A,+,1
8=.vreg_ctr,P,N,A,+,1
9=.info_led_override,P,N,A,+,1
10=.TDR07,P,S,A,+,1
11=.PM4.2,P,S,A,+,1
12=.P4.2,P,S,A,+,1
13=.PM1.5,P,S,A,+,1
14=.P1.5,P,S,A,+,1
15=.SW_pow_count,P,N,A,+,1
16=.battery_manufacturer,P,N,A,+,1
17=.system_status,.,N,A,+,1
18=.info_LED,.,N,A,+,1
19=.time_to_next_frame,P,N,A,+,1
Line=20
5=.vreg_ctr,P,N,A,+,1
6=.info_led_override,P,N,A,+,1
7=.battery_manufacturer,P,N,A,+,1
8=.battery_manufacturer,P,N,A,+,1
9=.system_status,.,N,A,+,1
10=.info_LED,.,N,A,+,1
11=.time_to_next_frame,P,N,A,+,1
12=.vol_level_old,P,N,A,+,1
13=.new_level,P,N,A,+,1
14=.vreg_twl[6],P,N,A,+,1
15=.bt_chg_ready,P,N,A,+,1
16=.P5.1,P,S,A,+,1
17=.p4.3,P,S,A,+,1
Line=18
[Quick Watch]
0=vreg_ctr,P,A,1
1=P4.2,P,A,1
2=PM4.2,P,A,1
3=TDR07,P,A,1
4=info_led_override,P,A,1
5=P1.5,P,A,1
6=PM1.6,P,A,1
7=PM1.5,P,A,1
8=SW_pow_count,P,A,1
9=bt_remain_old_ntr,P,A,1
10=infos,P,A,1
11=battery_manufacturer,P,A,1
12=vreg_twl,P,A,1
13=chg_led_override,P,A,1
14=bt_remain_old_ctr,P,A,1
15=temp_twl_bt_level,P,A,1
0=vol_twl_readed,P,A,1
1=vreg_twl[6],P,A,1
2=new_level,P,A,1
3=vol_level_old,P,A,1
4=battery_manufacturer,P,A,1
5=bt_chg_ready,P,A,1
6=PM_EXTDC_n,P,A,1
7=chg_led_override,P,A,1
8=LED_CHARGE,P,A,1
9=P4.3,P,A,1
10=P5.1,P,A,1
11=PU4,P,A,1
12=PU4.3,P,A,1
13=p4.3,P,A,1
14=PU5.1,P,A,1
15=PM4.3,P,A,1
[Software Break]
Geometry=709, 826, 445, 260
Window=Normal
Width=150 30 200 100
Name0=Swb00001
Address0=loader.c#_main+0xac
Address0=task_misc.c#_tsk_misc+0x6b
Window0=ASM
Status0=ON
Name1=Swb00002
Address1=loader.c#_main+0xaf
Address1=pm.c#_tsk_batt+0x56
Window1=ASM
Status1=ON
Name2=Swb00003
Address2=loader.c#_main+0xa5
Address2=pm.c#_tsk_batt+0x71
Window2=ASM
Status2=ON
Count=3

View File

@ -713,37 +713,47 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[Options.LCNV78K0R 0]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 1]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 2]
Version=100
LCNV_GO=0
O0=inter_asm
E=0
CommandFile=0
[Options.LCNV78K0R 3]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 4]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 5]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|E3.60f
[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_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=voltable.h
Include33=magic.h
Include34=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include35=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
[Options.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
@ -828,7 +838,7 @@ G=1
E=0
E0=flash.elk
E1=a.elk
GO=0
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
@ -995,6 +1005,37 @@ ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LCNV78K0R 0]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 1]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 2]
Version=100
LCNV_GO=0
O0=inter_asm
E=0
CommandFile=0
[Options.LCNV78K0R 3]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 4]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.LCNV78K0R 5]
Version=100
LCNV_GO=0
E=0
CommandFile=0
[Options.78K0R]
BuildMode=2
BuildMode2=K0R_dbg
@ -1005,44 +1046,3 @@ DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|E3.60f
[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_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=voltable.h
Include33=magic.h
Include34=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include35=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h

View File

@ -9,10 +9,11 @@ OpenFile2=ProjectWindow
PrjPos=0,0,1039,0,345
OpenFile3=self_flash.c,0,352,352,1596,1078,0,142,5,0
OpenFile4=ini_VECT.c,0,330,330,1574,1056,6,93,6,0
OpenFile5=renge\renge.c,0,348,332,1592,1058,33,121,33,0
OpenFile6=OutputWindow
OpenFile5=renge\renge.c,0,348,332,1592,1058,0,140,0,0
OpenFile6=pm.c,0,176,176,1420,902,5,285,9,0
OpenFile7=config.h,0,198,198,1442,924,27,16,27,0
OpenFile8=OutputWindow
OutputPos=0,3,734,347,1591
OpenFile7=config.h,0,220,220,1464,946,12,48,12,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0