diff --git a/trunk/adc.c b/trunk/adc.c index 43fa5c8..4acff1a 100644 --- a/trunk/adc.c +++ b/trunk/adc.c @@ -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; diff --git a/trunk/config.h b/trunk/config.h index 86214b8..fa980c4 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -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_ diff --git a/trunk/hoge.bin b/trunk/hoge.bin index 8e08963..7b29b7a 100644 Binary files a/trunk/hoge.bin and b/trunk/hoge.bin differ diff --git a/trunk/pm.c b/trunk/pm.c index a9ea284..bcfeef9 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -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; diff --git a/trunk/task_misc.c b/trunk/task_misc.c index 237cccd..17eb2c6 100644 --- a/trunk/task_misc.c +++ b/trunk/task_misc.c @@ -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 ); - } } } } diff --git a/trunk/task_sys.c b/trunk/task_sys.c index 4b42945..89b34e7 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -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; diff --git a/trunk/vreg_twl.c b/trunk/vreg_twl.c index 22d19d6..1a49fab 100644 --- a/trunk/vreg_twl.c +++ b/trunk/vreg_twl.c @@ -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 ); // 速度的に無理なので diff --git a/trunk/vreg_twl.h b/trunk/vreg_twl.h index b5f9004..01e4fa9 100644 --- a/trunk/vreg_twl.h +++ b/trunk/vreg_twl.h @@ -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 ) diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index ad77496..74681db 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -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 diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 05d3d2a..764c37d 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -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=(変更)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=(変更)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 diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 317e1df..0b55a23 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -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