diff --git a/trunk/i2c_ctr.c b/trunk/i2c_ctr.c index dedbeda..15fde2a 100644 --- a/trunk/i2c_ctr.c +++ b/trunk/i2c_ctr.c @@ -6,7 +6,6 @@ #include "incs.h" #include "accero.h" - #ifdef _MCU_BSR_ // #ifdef _MODEL_TS0_ || _MODEL_WM0_ @@ -70,7 +69,7 @@ __interrupt void int_iic_ctr( ) static u8 tx_buf; u8 rx_buf; -// EI(); + EI(); // 読み出し終了 if( !ACKD ) // 割り込み要因はNAK(データ送信の最後) @@ -137,7 +136,14 @@ __interrupt void int_iic_ctr( ) // レジスタアドレス受信 reg_adrs = IICA; tx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく - state = IIC_TX_OR_RX; + if( reg_adrs != VREG_C_INFO ) + { + state = IIC_TX_OR_RX; + } + else + { + state = IIC_IDLE; + } WREL = 1; break; @@ -250,3 +256,6 @@ void IIC_ctr_Stop( void ) IICE = 0; /* IICA disable */ IICAEN = 0; } + + + diff --git a/trunk/pm.c b/trunk/pm.c index a781d91..95fc999 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -134,7 +134,7 @@ void PM_init( ) // PMIC バージョン読み出し // temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); // vreg_ctr[ VREG_C_PM_INFO ] = temp; - +// デバッグ用INFOレジスタリード時に逐次 } @@ -802,7 +802,8 @@ task_status_immed ntr_pmic_comm( ) { // CODECバグ回避 // リセット単品でなかったら無視 - if( ( reg1_old ^ reg_shadow ) == REG_BIT_TWL_REQ_RST_REQ ) +// codec 修正済↓ +// if( ( reg1_old ^ reg_shadow ) == REG_BIT_TWL_REQ_RST_REQ ) { set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); } diff --git a/trunk/renge/renge_task_immediate.h b/trunk/renge/renge_task_immediate.h index ff076e4..501e12d 100644 --- a/trunk/renge/renge_task_immediate.h +++ b/trunk/renge/renge_task_immediate.h @@ -11,6 +11,7 @@ extern task_status_immed do_command0( ); extern task_status_immed ntr_pmic_comm(); extern task_status_immed acc_read(); extern task_status_immed acc_write(); +extern task_status_immed tski_mcu_info_read(); //extern task_status_immed acc_hosu_set(); diff --git a/trunk/self_flash.c b/trunk/self_flash.c index 4b6859c..507f9a9 100644 --- a/trunk/self_flash.c +++ b/trunk/self_flash.c @@ -98,9 +98,6 @@ err firm_update( ) u8 target_block; u8 split_write_count; // ブロックへちまちま書き込むカウンタ - TOE0 = 0x0000; - TOE0 = 0x0020; - // 書き替え前準備 ///////////////////////////////////// my_FSL_Init(); diff --git a/trunk/task_misc.c b/trunk/task_misc.c index c9d06f2..00349a7 100644 --- a/trunk/task_misc.c +++ b/trunk/task_misc.c @@ -12,6 +12,38 @@ #include "i2c_mcu.h" +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + + + // ======================================================== #define INTERVAL_TSK_MISC_STAT 4 @@ -181,34 +213,68 @@ extern u8 iic_burst_state;  デバッグ用にいろいろ読んできます。  返値はデータそのもの ======================================================== */ -u8 mcu_info_read() +task_status_immed tski_mcu_info_read() { u8 temp; + + if( SPD ) + { + goto end; + } + + if( STD ) + { + SPIE = 1; + } + + if( IICAIF == 0 ) + { + return( ERR_CONTINUE ); + } + else + { + IICAIF = 0; + } + switch( iic_burst_state++ ){ case( 0 ): // IICがなにかエラーでも知らない。00かFFならエラーの可能性が高い - return( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ) ); + IICA = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); + break; case( 1 ): // 電池メーカーの識別 BT_DET_P = 1; - temp = ( u8 ) ( get_adc( ADC_SEL_BATT_DET ) >> 5 ); + IICA = ( u8 ) ( get_adc( ADC_SEL_BATT_DET ) >> 5 ); BT_DET_P = 0; - return( temp ); + break; case( 2 ): // ガスゲージバージョン - return( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ) ); + IICA = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ); + break; case( 3 ): - return( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION + 1 ) ); + IICA = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION + 1 ); + break; default: - return( 0xEE ); +/* + IICA = 0xEE; +/*/ + goto end; +//*/ + break; } + return( ERR_CONTINUE ); - +end: + LREL = 1; + SPIE = 0; + IICAMK = 0; + iic_burst_state = 0; + return( ERR_FINISED ); } diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index 1f7ce0d..9ececdb 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -28,6 +28,7 @@ extern u16 pool[]; // ******************************************************** extern task_status_immed tski_firm_update(); +extern task_status_immed tski_mcu_info_read(); // ******************************************************** #ifdef _MCU_BSR_ @@ -329,7 +330,9 @@ u8 vreg_ctr_read( u8 adrs ) } else if( adrs == VREG_C_INFO ) { - return( mcu_info_read() ); + renge_task_immed_add( tski_mcu_info_read ); + IICAMK = 1; + return( 0x4A ); } #if 1 diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index 5348c75..b71ea2f 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -1,5 +1,5 @@ C:\WINDOWS\system32\cmd.exe /c touch magic.c -"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl3wt -sainter_asm -zp -no magic.c +"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl2wtg -sainter_asm -zp -no magic.c Compilation complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\magic.asm Assembly complete, 0 error(s) and 0 warning(s) found. diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index c70da55..a47618c 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -78,10 +78,10 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=438, 5, 673, 1042 +Geometry=438, 5, 678, 804 Window=Normal -DispStart=280 -CaretPos=281,0 +DispStart=68 +CaretPos=69,0 Mode=Normal DispFile= Address1= @@ -140,18 +140,18 @@ SaveStart= SaveEnd= Accumulative=ON [Source1] -Geometry=0, 0, 673, 1042 +Geometry=0, 0, 678, 804 Window=Normal -DispStart=145 -CaretPos=166,14 +DispStart=773 +CaretPos=819,1 Mode=Normal -DispFile=task_sys.c +DispFile=pm.c Accumulative=ON [Assemble] Geometry=24, 657, 600, 400 Window=Normal -DispStart=17241 -CaretPos=17241,27 +DispStart=1208 +CaretPos=1208,27 Address1= Address2= Address3= @@ -288,7 +288,7 @@ Attribute=Show Sort=Unsort Pickup=OFF SelectSort=Address -Last Name= +Last Name=PR00 Line=531 L1=P0 L2=P1 @@ -822,9 +822,9 @@ L529=IICWL1 L530=IICWH1 L531=SVA1 [Local Variable] -Geometry=0, 0, 0, 0 -Window=Hide -Boundary=0 +Geometry=850, 793, 400, 300 +Window=Normal +Boundary=13041851 Mode=Proper [Trace View] Geometry=0, 0, 0, 0 @@ -968,70 +968,76 @@ Count=0 Geometry=1146, 11, 440, 793 Window=Normal Boundary=13762700 -0=.P3.3,P,S,A,+,1 -1=.PU3.3,P,S,A,+,1 -2=.PM3.3,P,S,A,+,1 -3=.SW_home_mask,P,N,A,+,1 -4=.SW_home_mask,P,N,A,+,1 -5=.SW_home_count,P,N,A,+,1 -6=.PU20,B,S,A,+,1 -7=.P2.0,P,S,A,+,1 -8=.PM2.0,P,S,A,+,1 -9=.P20.4,B,S,A,+,1 -10=.PM20.4,B,S,A,+,1 -11=.PM3,B,S,A,+,1 -12=.P3,B,S,A,+,1 -13=.adc_raw_vol,P,N,A,+,1 -14=.vol_old,P,N,A,+,1 -15=.acc_norm_temp,P,N,A,+,1 -16=.acc_norm,P,N,A,+,1 -17=.temp2,P,N,A,+,1 -18=.temp1,P,N,A,+,1 -19=.filterd,P,N,A,+,1 -Line=20 +0=.p12.0,P,S,A,+,1 +1=.pm12.0,P,S,A,+,1 +2=.SPD1,P,S,A,+,1 +3=.STD1,P,S,A,+,1 +4=.pr10,B,S,A,+,1 +5=.pr00,B,S,A,+,1 +6=.pr11,B,S,A,+,1 +7=.pr01,B,S,A,+,1 +8=.iics1,P,S,A,+,1 +9=.iicf1,P,S,A,+,1 +10=.P3.3,P,S,A,+,1 +11=.PU3.3,P,S,A,+,1 +12=.PM3.3,P,S,A,+,1 +13=.SW_home_mask,P,N,A,+,1 +14=.SW_home_mask,P,N,A,+,1 +15=.SW_home_count,P,N,A,+,1 +16=.PU20,B,S,A,+,1 +17=.P2.0,P,S,A,+,1 +18=.PM2.0,P,S,A,+,1 +19=.P20.4,B,S,A,+,1 +20=.PM20.4,B,S,A,+,1 +21=.PM3,B,S,A,+,1 +22=.P3,B,S,A,+,1 +23=.adc_raw_vol,P,N,A,+,1 +24=.vol_old,P,N,A,+,1 +25=.iic_burst_state,P,N,A,+,1 +Line=26 [Quick Watch] -0=acc_norm_temp,P,A,1 -1=vol_old,P,A,1 -2=adc_raw_vol,P,A,1 -3=P3,B,A,1 -4=PM3,P,A,1 -5=PM20.4,B,A,1 -6=P20.4,B,A,1 -7=PU20,B,A,1 -8=SW_home_count,P,A,1 -9=PM3.3,P,A,1 -10=PU3.3,P,A,1 -11=P3.3,P,A,1 -12=PM2.0,P,A,1 -13=P2.0,P,A,1 -14=SW_HOME_n,P,A,1 -15=SW_home_mask,P,A,1 +0=SW_home_mask,P,A,1 +1=iicf1,P,A,1 +2=iics1,P,A,1 +3=pr010,P,A,1 +4=pr01,P,A,1 +5=pr00,P,A,1 +6=pr11,P,A,1 +7=pr10,B,A,1 +8=iic_burst_state,P,A,1 +9=STD1,P,A,1 +10=SPD1,P,A,1 +11=IICA,P,A,1 +12=IICA1,P,A,1 +13=temp,P,A,1 +14=pm12.0,P,A,1 +15=p12.0,P,A,1 [Software Break] -Geometry=1085, 899, 500, 200 +Geometry=1085, 803, 500, 296 Window=Normal Width=150 30 200 100 -Name0=Swb00003 -Address0=adc.c#es_F0072+0xa7 +Name0=Swb00001 +Address0=task_misc.c#_tski_mcu_info_read+0x4a Window0=ASM -Status0=OFF -Name1=Swb00004 -Address1=adc.c#es_F0072+0xc4 +Status0=ON +Name1=Swb00002 +Address1=task_misc.c#_tski_mcu_info_read+0x5e Window1=ASM -Status1=OFF -Name2=Swb00002 -Address2=task_sys.c#es_F0052+0xeb +Status1=ON +Name2=Swb00003 +Address2=task_misc.c#_tski_mcu_info_read+0x66 Window2=ASM Status2=ON -Name3=Swb00001 -Address3=task_sys.c#es_F0052+0xdd +Name3=Swb00005 +Address3=task_misc.c#_tski_mcu_info_read+0x6b Window3=ASM Status3=ON -Name4=Swb00005 -Address4=task_sys.c#es_F0052+0xcf +Name4=Swb00004 +Address4=task_misc.c#_tski_mcu_info_read+0x3e Window4=ASM Status4=ON Name5=Swb00006 -Address5=task_sys.c#es_F0052+0xc7 +Address5=pm.c#_ntr_pmic_comm+0x8c Window5=ASM Status5=ON Count=6 diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 5e9cd20..2a1ba74 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -571,6 +571,11 @@ Include28=sw.h Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h Include30=batt_params.h Include31=pedometer.h +[ToolSet] +ToolSetName=(変更)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.10 +Tool2=RA78K0R|W1.31 +Tool3=ID78K0R-QB|V3.60 [Options.CC78K0R 0] Version=210 Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r @@ -748,10 +753,10 @@ Usesaddrchk=0 Autoallocationchk=1 Jumpoptimize=1 Librarycallchk=1 -Librarycall=1132 +Librarycall=1129 Aggressivechk=1 Relativebranchchk=1 -Debugoptchk=0 +Debugoptchk=1 Outdebugchk=1 Outdebug=1153 Outasmsrccmb0=inter_asm @@ -1037,8 +1042,3 @@ VfiFileBoot0= VfiFileBoot1=boot.vfi VF78K0Rchk=0 VF78K0Rvs= -[ToolSet] -ToolSetName=(変更)78K0R Software Package V1.10 -Tool1=CC78K0R|W2.10 -Tool2=RA78K0R|W1.31 -Tool3=ID78K0R-QB|V3.60 diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 5a90285..1721b56 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -1,6 +1,6 @@ [ProjectManager] FrameMax=1 -FrameX=-1421 +FrameX=0 FrameY=43 FrameCX=1299 FrameCY=1044 @@ -15,10 +15,10 @@ OpenFile8=adc.c,0,286,286,1530,1012,24,134,50,0 OpenFile9=task_misc.c,0,308,308,1552,1034,16,137,29,0 OpenFile10=ProjectWindow PrjPos=0,2,754,3,253 -OpenFile11=config.h,0,257,193,1501,919,19,22,8,0 -OpenFile12=task_sys.c,0,330,330,1574,1056,0,172,37,0 -OpenFile13=pm.h,0,44,44,1034,660,0,115,0,0 -OpenFile14=loader.c,0,66,66,1056,682,0,235,0,0 +OpenFile11=task_sys.c,0,330,330,1574,1056,0,172,37,0 +OpenFile12=loader.c,0,296,307,1286,923,20,214,20,0 +OpenFile13=pm.h,0,254,446,1244,1062,0,115,0,0 +OpenFile14=config.h,0,257,193,1501,919,0,22,21,0 OpenFile15=OutputWindow OutputPos=0,390,856,19,1077 ActivePRJ=yav_mcu_bsr.prj diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index 7d4ba41..b608239 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -11,7 +11,7 @@ T=4ba2fdb7 7=rtc.h 8=reboot.h [pm.c] -T=4b95eb6d +T=4ba33e23 1=incs.h 2=adc.h 3=led.h @@ -19,7 +19,7 @@ T=4b95eb6d 5=renge\renge.h 6=batt_params.h [i2c_ctr.c] -T=4b7decbc +T=4ba33e23 1=incs.h 2=accero.h [main.c] @@ -32,7 +32,7 @@ T=4b999c7e 6=led.h 7=adc.h [magic.c] -T=4ba2fe88 +T=4ba3494f 1=config.h [WDT.c] T=4afd21ca @@ -56,7 +56,7 @@ T=4b4438bb T=4b6a6fa4 1=incs.h [vreg_ctr.c] -T=4b999c7e +T=4ba33e84 1=incs.h 2=vreg_ctr.h 3=rtc.h @@ -116,11 +116,13 @@ T=4b95d5a4 3=pm.h 4=accero.h [task_misc.c] -T=4b6a6fb1 +T=4ba33f3a 1=incs.h 2=renge\renge.h 3=pm.h 4=accero.h +5=adc.h +6=i2c_mcu.h [task_sys.c] T=4b9dbbcc 1=incs.h @@ -133,7 +135,7 @@ T=4b9dbbcc 8=sw.h 9=adc.h [pedo_alg_thre_det2.c] -T=4ba1d48a +T=4ba33e23 1=incs.h 2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h 3=accero.h @@ -153,9 +155,9 @@ T=4b25f1a9 T=4b90c1b8 1=config.h [user_define.h] -T=4ba2fe2d +T=4ba3126b [config.h] -T=4ba2fec7 +T=4ba3494e [bsr_system.h] T=4b3064de [renge\renge.h] @@ -168,7 +170,7 @@ T=4b90c2bc T=4b42ee65 1=renge\renge_defs.h [vreg_ctr.h] -T=4b95fb8d +T=4ba3395f 1=config.h [loader.h] T=4afd21ca