機種判定レジスタの定義変更に対応

実機とTS、白箱を自動判別

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@103 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
fujita_ryohei 2010-03-25 09:50:03 +00:00
parent 6044c2fdc3
commit 52c14bcfdd
15 changed files with 97 additions and 70 deletions

View File

@ -139,7 +139,7 @@ void tsk_adc( )
// codecに伝える // codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp );
#ifndef _MODEL_CTR_JIKKI_ #ifndef _MODEL_CTR_
iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - adc_raw_vol ) / 4 ] ); // todo iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - adc_raw_vol ) / 4 ] ); // todo
#endif #endif
set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE );

View File

@ -22,6 +22,18 @@ enum poweron_reason_
}; };
enum model_
{
MODEL_JIKKI = 0,
MODEL_TS_BOARD,
MODEL_SHIROBAKO,
MODEL_RESERVED1,
MODEL_RESERVED2,
MODEL_RESERVED3,
};
// タスクシステムの状態情報など // タスクシステムの状態情報など
typedef struct typedef struct
{ {
@ -31,10 +43,12 @@ typedef struct
unsigned char dipsw1:1; unsigned char dipsw1:1;
unsigned char dipsw2:1; unsigned char dipsw2:1;
unsigned char reboot:1; unsigned char reboot:1;
enum model_ model;
} }
system_status_; system_status_;
extern system_status_ system_status; extern system_status_ system_status;

View File

@ -245,11 +245,7 @@ void hdwinit2( )
#endif #endif
PM1 = 0b00000000; PM1 = 0b00000000;
#ifdef _MODEL_CTR_JIKKI_
PM2 = 0b11101001; PM2 = 0b11101001;
#else
PM2 = 0b11101111;
#endif
#ifdef _PMIC_CTR_ #ifdef _PMIC_CTR_
PM4 = 0b11110111; PM4 = 0b11110111;

View File

@ -38,6 +38,8 @@ void main_loop( void )
renge_init( ); renge_init( );
iic_mcu_start( ); iic_mcu_start( );
EI( );
PM_init(); PM_init();
if( system_status.reboot ) if( system_status.reboot )
@ -73,8 +75,6 @@ void main_loop( void )
renge_task_interval_run_force = 1; renge_task_interval_run_force = 1;
EI( );
RTCIMK = 0; /* 割り込み(アラーム&インターバル)許可 */ RTCIMK = 0; /* 割り込み(アラーム&インターバル)許可 */
// メインループ // // メインループ //

View File

@ -49,21 +49,22 @@ void PM_init( )
}chars; }chars;
}dat_16; }dat_16;
system_status.model = MODEL_JIKKI;
wait_ms( 150 ); wait_ms( 150 );
// -1. なんかおかしい… リセットをかけてみる // -1. なんかおかしい… リセットをかけてみる
dat_16._u16 = swap_endian_16( 0x5400 ); // reset dat_16._u16 = swap_endian_16( 0x5400 ); // reset
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16 ); iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16 ); // こいつはNACKを返す
// 0. バッテリ残量IC クイックスタート // 0. バッテリ残量IC クイックスタート
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 ) != ERR_SUCCESS ) if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 ) != ERR_SUCCESS )
{ {
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
system_status.model = MODEL_TS_BOARD;
} }
else else
{ {
// 1. ロック解除 // 1. ロック解除
dat_16._u16 = swap_endian_16( 0x4057 ); // unlock key dat_16._u16 = swap_endian_16( 0x4057 ); // unlock key
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 ); iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 );
@ -88,9 +89,14 @@ void PM_init( )
// 5.メーカー別パラメータのロード // 5.メーカー別パラメータのロード
switch ( temp ) switch ( temp )
{ {
// case( BT_VENDER_PANA ): case( BT_VENDER_SHIROBAKO ):
system_status.model = MODEL_SHIROBAKO;
break;
case( BT_VENDER_PANA ):
case( BT_VENDER_MAXELL ):
default: default:
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM, 64, &BT_PARAM[0] ); iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM, 64, &BT_PARAM[0] );
rcomp = BT_PANA_RCOMP; rcomp = BT_PANA_RCOMP;
temp_co_up = BT_PANA_TEMPCOUP; temp_co_up = BT_PANA_TEMPCOUP;
temp_co_dn = BT_PANA_TEMPCODN; temp_co_dn = BT_PANA_TEMPCODN;
@ -134,7 +140,7 @@ void PM_init( )
// PMIC バージョン読み出し // PMIC バージョン読み出し
// temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); // temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER );
// vreg_ctr[ VREG_C_PM_INFO ] = temp; // vreg_ctr[ VREG_C_PM_INFO ] = temp;
// デバッグ用 // デバッグ用は別にまとめた
} }

View File

@ -32,7 +32,12 @@ enum BT_GAUGE_REG_ADRS
BT_GAUGE_REG_COMMAND = 0xFE BT_GAUGE_REG_COMMAND = 0xFE
}; };
enum BT_VENDER
{
BT_VENDER_SHIROBAKO = 0,
BT_VENDER_PANA = 3,
BT_VENDER_MAXELL = 7
};
//========================================================= //=========================================================

View File

@ -25,6 +25,7 @@
u8 SW_pow_count, SW_home_count, SW_wifi_count; u8 SW_pow_count, SW_home_count, SW_wifi_count;
bit SW_pow_mask, SW_home_mask, SW_wifi_mask; bit SW_pow_mask, SW_home_mask, SW_wifi_mask;
bit SW_HOME_n;
//========================================================= //=========================================================
@ -133,6 +134,19 @@ void tsk_sw( )
} }
// HOME スイッチ // // HOME スイッチ //
switch( system_status.model )
{
case( MODEL_JIKKI ):
SW_HOME_n = SW_HOME_n_JIKKI;
break;
case( MODEL_TS_BOARD ):
case( MODEL_SHIROBAKO ):
SW_HOME_n = SW_HOME_n_TSBOARD;
break;
default:
SW_HOME_n = 1;
}
if( SW_HOME_n ) if( SW_HOME_n )
{ {
if( ( CLICK_THRESHOLD < SW_home_count ) && ( SW_home_count <= HOLD_THREASHOLD ) ) if( ( CLICK_THRESHOLD < SW_home_count ) && ( SW_home_count <= HOLD_THREASHOLD ) )

View File

@ -23,7 +23,7 @@ void tsk_debug( )
#ifdef _MODEL_WM0_ #ifdef _MODEL_WM0_
PM_CHG_TIMEOUT_DISABLE(); // /WL_RST に配線されています PM_CHG_TIMEOUT_DISABLE(); // /WL_RST に配線されています
#endif #endif
#ifndef _MODEL_CTR_JIKKI_ #ifndef _MODEL_CTR_
iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ
#endif #endif

View File

@ -259,13 +259,12 @@ task_status_immed tski_mcu_info_read()
IICA = 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; break;
default: case( 4 ):
/* IICA = (u8)system_status.model;
IICA = 0xEE;
/*/
goto end;
//*/
break; break;
default:
goto end;
} }
return( ERR_CONTINUE ); return( ERR_CONTINUE );

View File

@ -165,12 +165,9 @@
//#define VOL P2.7 //#define VOL P2.7
// ANI7 // ANI7
#ifdef _MODEL_CTR_JIKKI_ #define SW_HOME_n_JIKKI P20.4
#define SW_HOME_n P20.4
// INTP22 // INTP22
#else #define SW_HOME_n_TSBOARD P2.0
#define SW_HOME_n P2.0
#endif
// WiFi // WiFi
#ifndef _TEG_ #ifndef _TEG_

View File

@ -42,23 +42,11 @@ void vreg_ctr_init( )
{ {
vreg_ctr[VREG_C_LED_BRIGHT] = 0xFF; vreg_ctr[VREG_C_LED_BRIGHT] = 0xFF;
vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR;
#ifdef _MODEL_TEG2_ #ifdef _MODEL_TEG2_
vreg_ctr[VREG_C_MCU_VER_MAJOR] |= 0x00; vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR;
#else
vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR | 0x10;
#endif #endif
#ifdef _MODEL_WM0_
vreg_ctr[VREG_C_MCU_VER_MAJOR] |= 0x08;
#endif
#ifdef _MODEL_TS0_
vreg_ctr[VREG_C_MCU_VER_MAJOR] |= 0x10;
#endif
#ifdef _MODEL_CTR_TS_
vreg_ctr[VREG_C_MCU_VER_MAJOR] |= 0x18;
#endif
#ifdef _MODEL_CTR_JIKKI_
vreg_ctr[VREG_C_MCU_VER_MAJOR] |= 0x1C;
#endif
vreg_ctr[VREG_C_MCU_VER_MINOR] = MCU_VER_MINOR; vreg_ctr[VREG_C_MCU_VER_MINOR] = MCU_VER_MINOR;
vreg_ctr[VREG_C_VCOM_T] = 92; vreg_ctr[VREG_C_VCOM_T] = 92;

View File

@ -1,4 +1,16 @@
C:\WINDOWS\system32\cmd.exe /c touch magic.c 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 pm.c
pm.c(173) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(184) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(188) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(239) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(276) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(355) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(363) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(885) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 8 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\pm.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"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 -qvjl3wt -sainter_asm -zp -no magic.c
Compilation complete, 0 error(s) and 0 warning(s) found. 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 "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
@ -13,4 +25,4 @@ intel-HEX to bsr bin converter
file converted! file converted!
Build Total error(s) : 0 Total warning(s) : 0 Build Total error(s) : 0 Total warning(s) : 8

View File

@ -142,8 +142,8 @@ Accumulative=ON
[Assemble] [Assemble]
Geometry=24, 657, 600, 400 Geometry=24, 657, 600, 400
Window=Normal Window=Normal
DispStart=17413 DispStart=17446
CaretPos=17413,27 CaretPos=17446,27
Address1= Address1=
Address2= Address2=
Address3= Address3=
@ -1020,50 +1020,46 @@ Geometry=1085, 803, 500, 296
Window=Normal Window=Normal
Width=150 30 200 100 Width=150 30 200 100
Name0=Swb00001 Name0=Swb00001
Address0=task_misc.c#_tski_mcu_info_read+0x48 Address0=task_misc.c#_tski_mcu_info_read+0x3d
Window0=ASM Window0=ASM
Status0=ON Status0=ON
Name1=Swb00002 Name1=Swb00002
Address1=task_misc.c#_tski_mcu_info_read+0x5c Address1=task_misc.c#_tski_mcu_info_read+0x5a
Window1=ASM Window1=ASM
Status1=ON Status1=ON
Name2=Swb00003 Name2=Swb00003
Address2=task_misc.c#_tski_mcu_info_read+0x5c Address2=task_misc.c#_tski_mcu_info_read+0x5a
Window2=ASM Window2=ASM
Status2=ON Status2=ON
Name3=Swb00005 Name3=Swb00005
Address3=task_misc.c#_tski_mcu_info_read+0x5c Address3=task_misc.c#_tski_mcu_info_read+0x5a
Window3=ASM Window3=ASM
Status3=ON Status3=ON
Name4=Swb00004 Name4=Swb00004
Address4=task_misc.c#_tski_mcu_info_read+0x3a Address4=task_misc.c#_tski_mcu_info_read+0x21
Window4=ASM Window4=ASM
Status4=ON Status4=ON
Name5=Swb00015 Name5=Swb00015
Address5=pm.c#_ntr_pmic_comm+0x32 Address5=pm.c#_ntr_pmic_comm+0x32
Window5=ASM Window5=ASM
Status5=ON Status5=ON
Name6=Swb00006 Name6=Swb00008
Address6=task_misc.c#es_F0059+0xa4 Address6=pm.c#_ntr_pmic_comm+0x3e
Window6=ASM Window6=ASM
Status6=ON Status6=ON
Name7=Swb00008 Name7=Swb00012
Address7=pm.c#_ntr_pmic_comm+0x3e Address7=pm.c#_ntr_pmic_comm+0x51
Window7=ASM Window7=ASM
Status7=ON Status7=ON
Name8=Swb00012 Name8=Swb00013
Address8=pm.c#_ntr_pmic_comm+0x51 Address8=pm.c#_ntr_pmic_comm+0x59
Window8=ASM Window8=ASM
Status8=ON Status8=ON
Name9=Swb00013 Name9=Swb00014
Address9=pm.c#_ntr_pmic_comm+0x59 Address9=pm.c#_ntr_pmic_comm+0x65
Window9=ASM Window9=ASM
Status9=ON Status9=ON
Name10=Swb00014 Count=10
Address10=pm.c#_ntr_pmic_comm+0x65
Window10=ASM
Status10=ON
Count=11
[Reset] [Reset]
Debugger=ON Debugger=ON
Symbol=OFF Symbol=OFF

View File

@ -1,5 +1,5 @@
[ProjectManager] [ProjectManager]
FrameMax=1 FrameMax=0
FrameX=75 FrameX=75
FrameY=122 FrameY=122
FrameCX=1299 FrameCX=1299
@ -10,14 +10,14 @@ OpenFile3=renge\\renge_defs.h,0,293,307,1537,1033,18,37,18,0
OpenFile4=renge\renge_defs.h,0,667,22,1514,748,0,16,0,0 OpenFile4=renge\renge_defs.h,0,667,22,1514,748,0,16,0,0
OpenFile5=sw.c,0,264,264,1508,990,0,105,0,0 OpenFile5=sw.c,0,264,264,1508,990,0,105,0,0
OpenFile6=adc.c,0,286,286,1530,1012,24,134,50,0 OpenFile6=adc.c,0,286,286,1530,1012,24,134,50,0
OpenFile7=ProjectWindow OpenFile7=task_sys.c,0,330,330,1574,1056,0,172,37,0
OpenFile8=loader.c,0,296,307,1286,923,20,214,20,0
OpenFile9=pm.h,0,254,446,1244,1062,0,115,0,0
OpenFile10=ProjectWindow
PrjPos=0,2,754,3,253 PrjPos=0,2,754,3,253
OpenFile8=task_sys.c,0,330,330,1574,1056,0,172,37,0 OpenFile11=config.h,0,257,193,1501,919,22,24,0,0
OpenFile9=loader.c,0,296,307,1286,923,20,214,20,0
OpenFile10=pm.h,0,254,446,1244,1062,0,115,0,0
OpenFile11=config.h,0,257,193,1501,919,0,22,21,0
OpenFile12=OutputWindow OpenFile12=OutputWindow
OutputPos=0,544,1010,68,1126 OutputPos=0,438,904,19,1077
ActivePRJ=yav_mcu_bsr.prj ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow] [ProjectWindow]
ProjectWindowDispType=0 ProjectWindowDispType=0

View File

@ -32,7 +32,7 @@ T=4b999c7e
6=led.h 6=led.h
7=adc.h 7=adc.h
[magic.c] [magic.c]
T=4bab04b9 T=4bab0559
1=config.h 1=config.h
[WDT.c] [WDT.c]
T=4afd21ca T=4afd21ca
@ -157,7 +157,7 @@ T=4b90c1b8
[user_define.h] [user_define.h]
T=4ba9e8b6 T=4ba9e8b6
[config.h] [config.h]
T=4bab04b9 T=4bab0559
[bsr_system.h] [bsr_system.h]
T=4b3064de T=4b3064de
[renge\renge.h] [renge\renge.h]