検査用 PMICなどのバージョン読み出し追加(割と大がかりになった)
 CODECの修正がなされたので、PMIC互換レジスタの不完全ワークアラウンド削除


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@100 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
fujita_ryohei 2010-03-24 07:39:20 +00:00
parent 9d24f9337c
commit 9fd7d74a18
11 changed files with 188 additions and 103 deletions

View File

@ -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;
}

View File

@ -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 );
}

View File

@ -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();

View File

@ -98,9 +98,6 @@ err firm_update( )
u8 target_block;
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
TOE0 = 0x0000;
TOE0 = 0x0020;
// 書き替え前準備 /////////////////////////////////////
my_FSL_Init();

View File

@ -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 );
}

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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=(•ĎŤX)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=(•ĎŤX)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60

View File

@ -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

View File

@ -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