■0.23改 もうすぐHorizonにコミット

温度で充電停止がうまく動かないのを少し対策
 温度のチャタリング除去など
本体判定を誤っていたのを修正
 TSで電源入らないとか
充電許可/停止 が誤っていた。...電池抜くな!
自己アップデータのデバッグコードをifdefで抜く
バッテリパラメータを最終仕様に
電池のリラックス待ち廃止。効果が認められないため



git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@201 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
N2232 2010-07-07 11:33:53 +00:00
parent 3da96fcad8
commit 510e8fb69b
14 changed files with 1082 additions and 1042 deletions

View File

@ -7,93 +7,81 @@
const u8 BT_PARAM[][64] = {
// ID = 0 GND マクセル
{
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
},
{ // ID = 1 120 ohm (ダミーでマクセル)
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
},
{ // ID = 2 360 hom (ダミーでマクセル)
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
},
{ // ID = 3 750 ohm ダミーでパナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50,
0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00,
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
},
{ // ID = 4 1.3kohm (ダミーでパナ)
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50,
0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00,
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
},
{ // ID = 5 2.7kohm パナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50,
0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00,
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
},
{ // ID = 6 8.2kohm (ダミーでパナ)
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10,
0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50,
0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00,
0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0,
0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0
}
@ -115,9 +103,9 @@ typedef struct _st_bt_comp
// 電池残量補正パラメータ
const st_bt_comp BT_COMP[] = {
// rcomp R_co_up R_co_down
{ 85, -256* 1.15, -256* 4.35 }, // maxell
{ 85, -256* 1.15, -256* 4.35 }, // dummy(M )
{ 85, -256* 1.15, -256* 4.35 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // maxell
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // panasonic
@ -126,17 +114,17 @@ const st_bt_comp BT_COMP[] = {
const u8 BT_VERIFY_H[] = {
0xFF, 0xFF, 0xFF, // maxell, dummy, dummy,
0x75, 0x75, 0x75, // maxell, dummy, dummy,
0x69, 0x69, 0x69, 0x69 // dummy, dummy, panaso, dummy
};
const u8 BT_VERIFY_L[] = {
0xFC, 0xFC, 0xFC, // maxell, dummy, dummy,
0x74, 0x74, 0x74, // maxell, dummy, dummy,
0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy
};
const u8 BT_RCOMP_SCALE[] = {
2, 2, 2, // maxell, dummy, dummy,
1, 1, 1, // maxell, dummy, dummy,
1, 1, 1, 1 // dummy, dummy, panaso, dummy
};

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,7 +1,7 @@
78K0R Linker W1.31 Date: 6 Jul 2010 Page: 1
78K0R Linker W1.31 Date: 7 Jul 2010 Page: 1
Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l
mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10
@ -24,8 +24,8 @@ Direc-file:bsr_mcu.dr
*** Link information ***
66 output segment(s)
3BC8H byte(s) real data
5417 symbol(s) defined
3B91H byte(s) real data
5392 symbol(s) defined
*** Memory map ***
@ -90,51 +90,51 @@ Direc-file:bsr_mcu.dr
000C4H 00000H
?CSEGSI 000C4H 0000AH CSEG
?OCDSTAD 000CEH 0000AH CSEG
LDR_CODE 000D8H 008B6H CSEG
LDR_CODE 000D8H 00841H CSEG
LDR_CODE loader 000D8H 001E0H
LDR_CODE main 002B8H 0006EH
LDR_CODE WDT 00326H 00000H
LDR_CODE i2c_mcu 00326H 002AAH
LDR_CODE self_flash
005D0H 003BEH
FSL_CODE 0098EH 00322H CSEG
005D0H 00349H
FSL_CODE 00919H 00322H CSEG
FSL_CODE fsl_block_cmd
0098EH 0002BH
00919H 0002BH
FSL_CODE fsl_block_check
009B9H 00013H
00944H 00013H
FSL_CODE fsl_common
009CCH 0014FH
00957H 0014FH
FSL_CODE fsl_reset
00B1BH 00001H
00AA6H 00001H
FSL_CODE fsl_si_ibf
00B1CH 00064H
00AA7H 00064H
FSL_CODE fsl_phySwap
00B80H 0004DH
00B0BH 0004DH
FSL_CODE fsl_si_common
00BCDH 00061H
FSL_CODE fsl_swap 00C2EH 00030H
00B58H 00061H
FSL_CODE fsl_swap 00BB9H 00030H
FSL_CODE fsl_write
00C5EH 00052H
@@LCODE 00CB0H 002AFH CSEG
@@LCODE @cstart 00CB0H 0006DH
@@LCODE @imul 00D1DH 00011H
@@LCODE @lumul 00D2EH 0002BH
@@LCODE @isdiv 00D59H 00022H
@@LCODE @iudiv 00D7BH 0002DH
@@LCODE @isrem 00DA8H 00021H
@@LCODE @iurem 00DC9H 0002FH
@@LCODE @lsdiv 00DF8H 00039H
@@LCODE @ludiv 00E31H 0003FH
@@LCODE @divuw 00E70H 00034H
@@LCODE @ladd 00EA4H 0000FH
@@LCODE @llsh 00EB3H 0001BH
@@LCODE @lursh 00ECEH 0001FH
@@LCODE @iscmp 00EEDH 0000CH
@@LCODE @lscmp 00EF9H 00014H
@@LCODE @lband 00F0DH 00014H
@@LCODE @bcdtob 00F21H 0001AH
@@LCODE @bbcd 00F3BH 00024H
* gap * 00F5FH 00097H
00BE9H 00052H
@@LCODE 00C3BH 002AFH CSEG
@@LCODE @cstart 00C3BH 0006DH
@@LCODE @imul 00CA8H 00011H
@@LCODE @lumul 00CB9H 0002BH
@@LCODE @isdiv 00CE4H 00022H
@@LCODE @iudiv 00D06H 0002DH
@@LCODE @isrem 00D33H 00021H
@@LCODE @iurem 00D54H 0002FH
@@LCODE @lsdiv 00D83H 00039H
@@LCODE @ludiv 00DBCH 0003FH
@@LCODE @divuw 00DFBH 00034H
@@LCODE @ladd 00E2FH 0000FH
@@LCODE @llsh 00E3EH 0001BH
@@LCODE @lursh 00E59H 0001FH
@@LCODE @iscmp 00E78H 0000CH
@@LCODE @lscmp 00E84H 00014H
@@LCODE @lband 00E98H 00014H
@@LCODE @bcdtob 00EACH 0001AH
@@LCODE @bbcd 00EC6H 00024H
* gap * 00EEAH 0010CH
MGC_LOAD 00FF6H 0000AH CSEG AT
MGC_LOAD magic 00FF6H 0000AH
@ -366,57 +366,57 @@ Direc-file:bsr_mcu.dr
@@CNST ini_VECT 0239AH 00000H
@@CNST task_status
0239AH 00000H
ROM_CODE 0239AH 0251AH CSEG
ROM_CODE pm 0239AH 0089FH
ROM_CODE i2c_ctr 02C39H 00060H
ROM_CODE i2c_twl 02C99H 0005EH
ROM_CODE led 02CF7H 004E8H
ROM_CODE rtc 031DFH 000E0H
ROM_CODE vreg_ctr 032BFH 00447H
ROM_CODE vreg_twl 03706H 00156H
ROM_CODE adc 0385CH 00249H
ROM_CODE renge 03AA5H 001C3H
ROM_CODE accero 03C68H 0013DH
ROM_CODE sw 03DA5H 000DDH
ROM_CODE 0239AH 02558H CSEG
ROM_CODE pm 0239AH 008FEH
ROM_CODE i2c_ctr 02C98H 00060H
ROM_CODE i2c_twl 02CF8H 0005EH
ROM_CODE led 02D56H 004E8H
ROM_CODE rtc 0323EH 000E0H
ROM_CODE vreg_ctr 0331EH 00447H
ROM_CODE vreg_twl 03765H 00156H
ROM_CODE adc 038BBH 00249H
ROM_CODE renge 03B04H 001C3H
ROM_CODE accero 03CC7H 0013DH
ROM_CODE sw 03E04H 000DDH
ROM_CODE task_debug
03E82H 0001BH
03EE1H 0001BH
ROM_CODE task_misc
03E9DH 001B1H
ROM_CODE task_sys 0404EH 00320H
03EFCH 001B1H
ROM_CODE task_sys 040ADH 002FFH
ROM_CODE pedo_alg_thre_det2
0436EH 004C1H
043ACH 004C1H
ROM_CODE task_status
0482FH 00085H
@@BASE 048B4H 004E7H CSEG BASE
@@BASE loader 048B4H 00000H
@@BASE pm 048B4H 00043H
@@BASE i2c_ctr 048F7H 00183H
@@BASE main 04A7AH 00000H
@@BASE magic 04A7AH 00000H
@@BASE WDT 04A7AH 00000H
@@BASE i2c_mcu 04A7AH 000D9H
@@BASE i2c_twl 04B53H 000CDH
@@BASE led 04C20H 00000H
@@BASE rtc 04C20H 00043H
@@BASE vreg_ctr 04C63H 00000H
@@BASE vreg_twl 04C63H 00000H
@@BASE adc 04C63H 000B3H
@@BASE renge 04D16H 00000H
@@BASE accero 04D16H 0004AH
0486DH 00085H
@@BASE 048F2H 004E7H CSEG BASE
@@BASE loader 048F2H 00000H
@@BASE pm 048F2H 00043H
@@BASE i2c_ctr 04935H 00183H
@@BASE main 04AB8H 00000H
@@BASE magic 04AB8H 00000H
@@BASE WDT 04AB8H 00000H
@@BASE i2c_mcu 04AB8H 000D9H
@@BASE i2c_twl 04B91H 000CDH
@@BASE led 04C5EH 00000H
@@BASE rtc 04C5EH 00043H
@@BASE vreg_ctr 04CA1H 00000H
@@BASE vreg_twl 04CA1H 00000H
@@BASE adc 04CA1H 000B3H
@@BASE renge 04D54H 00000H
@@BASE accero 04D54H 0004AH
@@BASE self_flash
04D60H 00000H
@@BASE sw 04D60H 00000H
04D9EH 00000H
@@BASE sw 04D9EH 00000H
@@BASE task_debug
04D60H 00000H
04D9EH 00000H
@@BASE task_misc
04D60H 00000H
@@BASE task_sys 04D60H 00000H
04D9EH 00000H
@@BASE task_sys 04D9EH 00000H
@@BASE pedo_alg_thre_det2
04D60H 00000H
@@BASE ini_VECT 04D60H 0003BH
04D9EH 00000H
@@BASE ini_VECT 04D9EH 0003BH
@@BASE task_status
04D9BH 00000H
* gap * 04D9BH 0025BH
04DD9H 00000H
* gap * 04DD9H 0021DH
MGC_TAIL 04FF6H 0000AH CSEG AT
MGC_TAIL magic 04FF6H 0000AH

View File

@ -8,6 +8,7 @@
//#define _DEBUG_BT_IRQ_
//#define _DEBUG_BT_TEMP_
//#define _DBG_PEDO_AUTO_ENABLE_
//#define _DBG_LED_PRINT_
#define MCU_VER_MAJOR 0x00

Binary file not shown.

View File

@ -597,6 +597,7 @@ void tsk_batt( )
{
static u8 task_interval = 0;
static bit pm_extdc_old;
static u8 heikinka_h,heikinka_l;
if( task_interval-- != 0 )
{
@ -631,16 +632,32 @@ void tsk_batt( )
if(( 75 <= raw_adc_temperature )
&& ( raw_adc_temperature <= 184 ))
{
temp_zone_charge_enable = 1; // 充電許可
if( heikinka_h < 40 )
{
heikinka_h++;
}
else
{
temp_zone_charge_enable = 1; // 充電許可
}
}
else if(( raw_adc_temperature <= 61 )
|| ( 189 <= raw_adc_temperature ))
{
temp_zone_charge_enable = 0; // 充電禁止
if( heikinka_l < 40 )
{
heikinka_l++;
}
else
{
temp_zone_charge_enable = 0; // 充電禁止
}
}
else
{
// temp_zone_charge_enable そのまま
heikinka_h = 0;
heikinka_l = 0;
}
#ifndef _MODEL_WM0_
@ -722,17 +739,33 @@ void BT_init( )
battery_manufacturer_old = battery_manufacturer;
BT_maker_detect();
/* ↑BT_maker_detect()に内包
if( battery_manufacturer != BT_VENDER_OPEN )
{
bt_chg_ready = 0;
}
*/
if( battery_manufacturer != battery_manufacturer_old )
if(
( battery_manufacturer != battery_manufacturer_old )
)
{
// バッテリが変わった //
BT_mgic_init(); // battery_manufacturer == BT_VENDER_OPEN 時は来ないのだ!
BT_mgic_init();
tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます
bt_chg_ready = 1;
}
// 電池温度監視スタート
renge_task_immed_add( tski_BT_temp_update );
if( battery_manufacturer != BT_VENDER_OPEN )
{
bt_chg_ready = 1;
// 電池温度監視スタート
renge_task_immed_add( tski_BT_temp_update );
}
else
{
bt_chg_ready = 0;
}
}
@ -745,6 +778,8 @@ void BT_maker_detect()
// 電池メーカーの識別
temp = get_adc( ADC_SEL_BATT_DET );
BT_DET_P = 0;
bt_chg_ready = 1;
if( temp > 233 )
battery_manufacturer = BT_VENDER_OPEN;
else if( temp > 197 )
@ -884,7 +919,7 @@ void BT_mgic_init()
// 9. SOCを読む。ベリファイのため。
temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC );
if(( temp >= BT_VERIFY_L[ battery_manufacturer ] ) && ( temp <= BT_VERIFY_H[ battery_manufacturer ] ))
if(( BT_VERIFY_L[ battery_manufacturer ] <= temp ) && ( temp <= BT_VERIFY_H[ battery_manufacturer ] ))
{
// カスタムモデル書き込みOK
}else{
@ -918,6 +953,7 @@ task_status_immed tski_BT_temp_update( )
static u8 rawdat_old;
static s8 temperature;
s16 newrcomp;
static u8 heikinka;
/*
- 10kΩ分圧点の時
@ -928,33 +964,49 @@ task_status_immed tski_BT_temp_update( )
if( rawdat_old != raw_adc_temperature )
{
rawdat_old = raw_adc_temperature;
// temperature = 81.45 - 111.9 * raw_adc_temperature/256.0;
// それぞれ256倍してある
temperature = ( 20851 - 112 * raw_adc_temperature + (256/2) ) /256;
vreg_ctr[VREG_C_BT_TEMP] = (u8)temperature;
newrcomp = 0;
if( temperature > 20 )
if( heikinka < 40 )
{
newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_up )/256;
heikinka++;
}
else
{
newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_dn )/256;
}
newrcomp = bt_comp.rcomp + newrcomp;
newrcomp = newrcomp;
_dbg_rcomp = newrcomp;
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &newrcomp ) == ERR_SUCCESS )
{
heikinka = 0;
rawdat_old = raw_adc_temperature;
}
else
{
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
// temperature = 81.45 - 111.9 * raw_adc_temperature/256.0;
// それぞれ256倍してある
temperature = ( 20851 - 112 * raw_adc_temperature + (256/2) ) /256;
vreg_ctr[VREG_C_BT_TEMP] = (u8)temperature;
newrcomp = 0;
if( temperature > 20 )
{
newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_up )/256;
}
else
{
newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_dn )/256;
}
newrcomp = bt_comp.rcomp + newrcomp;
if( newrcomp > 256 )
{
newrcomp = 235;
}
if( newrcomp < 0 )
{
newrcomp = 0;
}
newrcomp = newrcomp;
_dbg_rcomp = newrcomp;
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &newrcomp ) == ERR_SUCCESS )
{
rawdat_old = raw_adc_temperature;
}
else
{
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
}
}
}
return ( ERR_FINISED );
@ -970,6 +1022,7 @@ task_status_immed tski_BT_temp_update( )
**********************************************************/
void BT_get_left(){
u8 temp_fuel[2];
static u8 hysteresis;
#ifdef _DEBUG_BT_IRQ_
if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' )
@ -983,6 +1036,7 @@ void BT_get_left(){
{
// TS //
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
vreg_ctr[ VREG_C_BT_VOLTAGE ] = 200;
}
else if( system_status.model == MODEL_SHIROBAKO )
{
@ -997,6 +1051,7 @@ void BT_get_left(){
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
}
vreg_ctr[ VREG_C_BT_VOLTAGE ] = 200;
}
else
{
@ -1029,13 +1084,15 @@ void BT_get_left(){
temp16 = ( temp_v[0] << 8 ) + temp_v[1];
if( temp16 > V_TH_LO )
if( temp16 > V_TH_LO + hysteresis )
{
temp_force_fule_left = 100;
hysteresis = 0;
}
else if( temp16 > V_TH_EMPTY )
{
temp_force_fule_left = 10;
hysteresis = 600; // 1280; // 100mV
}
else if( temp16 > V_TH_ZERO )
{
@ -1097,34 +1154,3 @@ void BT_get_left(){
}
static unsigned long bt_relax_timer;
#define BT_RELAX_TIME_MIN (unsigned long)30
//#define BT_RELAX_TIME_MIN (unsigned long)3
/**********************************************************
 
PM_sys_power_offの時
**********************************************************/
void BT_set_relax_timer()
{
// RTCを使うと楽かと思ったがとんでもなかった
bt_relax_timer = (unsigned long)( BT_RELAX_TIME_MIN * 60 * 1000 / SYS_INTERVAL_TICK );
}
u8 BT_is_relaxed()
{
if( bt_relax_timer != 0 )
{
bt_relax_timer -= 1;
return( 0 );
}
else
{
return( 1 );
}
}

View File

@ -141,9 +141,6 @@ err PM_BL_set( u8 );
void BT_init();
void BT_get_left();
void BT_set_relax_timer();
u8 BT_is_relaxed();
task_status_immed tski_BT_temp_update( );
task_status_immed tski_vcom_set( );

View File

@ -76,9 +76,13 @@ void firm_restore( );
static err my_FSL_Init();
static err firm_duplicate( u8 block_src, u8 block_dest );
#ifdef _DBG_LED_PRINT_
void alert( u8 );
void led_print( u8 );
#else
# define alert() ;
# define led_print() ;
#endif
// ========================================================
@ -538,6 +542,7 @@ task_status_immed tski_mcu_reset()
}
#ifdef _DBG_LED_PRINT_
void alert( u8 num )
{
u8 i;
@ -568,3 +573,4 @@ void led_print( u8 num )
}
DBG_LED_off;
}
#endif

View File

@ -103,8 +103,10 @@ void tsk_sys( )
// 残量チェック
BT_get_left(); // 先に、BT_init()が実行されている必要があります。
if(( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) &&
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ))
if(
// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) &&
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) )
)
{
// 電池が少ないので起動させない(電圧チェックもされてる)
renge_task_interval_run_force = 1;
@ -301,7 +303,6 @@ void tsk_sys( )
IRQ0_disable;
PM_sys_pow_off( );
BT_set_relax_timer();
timeout = 0;
@ -312,7 +313,7 @@ void tsk_sys( )
// no break //
case BT_CHARGE:
if( !PM_EXTDC_n || ( BT_is_relaxed() == 0 ) )
if( !PM_EXTDC_n )
{
// アダプタが刺さってるときはこのブロックを繰り返す。
/// ↓は中で初期化フラグをもってるので呼びまくって良い
@ -326,10 +327,6 @@ void tsk_sys( )
system_status.poweron_reason = PWSW;
system_status.pwr_state = OFF;
}
if( !PM_EXTDC_n )
{
BT_set_relax_timer();
}
}
else
{

View File

@ -1,23 +1,35 @@
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 -qvjl2w -sainter_asm -zpb -no pm.c
pm.c(67) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(105) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(189) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(197) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(415) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(482) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(485) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(762) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(977) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1077) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1078) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1153) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(109) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(110) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(111) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(112) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 23 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 -qvjl2w -sainter_asm -zpb -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.
"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 -qvjl2w -sainter_asm -zpb -no adc.c
adc.c(121) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
adc.c(146) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(160) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(301) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(325) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
adc.c(345) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(422) : CC78K0R warning W0745: Expected function prototype
adc.c(446) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(451) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 11 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\adc.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel
Link complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf
@ -28,4 +40,4 @@ intel-HEX to bsr bin converter
file converted!
Build Total error(s) : 0 Total warning(s) : 11
Build Total error(s) : 0 Total warning(s) : 23

View File

@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=114, 70, 844, 790
Geometry=56, 72, 844, 790
Window=Normal
DispStart=247
CaretPos=281,0
DispStart=975
CaretPos=988,0
Mode=Normal
DispFile=
Address1=
@ -139,10 +139,18 @@ SaveRange=Screen
SaveStart=
SaveEnd=
Accumulative=ON
[Source1]
Geometry=0, 0, 844, 790
Window=Normal
DispStart=952
CaretPos=727,2
Mode=Normal
DispFile=pm.c
Accumulative=ON
[Assemble]
Geometry=282, 92, 968, 626
Window=Hide
DispStart=864338944
DispStart=864531456
CaretPos=0,0
Address1=
Address2=
@ -256,7 +264,7 @@ Window=Hide
Boundary=0
Mode=Proper
[Sfr]
Geometry=512, 0, 596, 915
Geometry=255, 105, 596, 915
Window=Hide
Address1=
Address2=
@ -816,7 +824,7 @@ L531=SVA1
[Local Variable]
Geometry=908, 594, 353, 335
Window=Normal
Boundary=11403429
Boundary=11468964
Mode=Proper
[Trace View]
Geometry=0, 0, 0, 0
@ -867,7 +875,7 @@ SaveStart=
SaveEnd=
[Register]
Geometry=975, 515, 272, 397
Window=Normal
Window=Hide
Mode=Hex
Boundary=174
Pickup=OFF
@ -960,54 +968,63 @@ Count=0
Geometry=854, -3, 441, 595
Window=Normal
Boundary=18088086
0=.vreg_ctr[11],D,N,A,+,1
1=.system_status,.,N,A,+,1
2=.vreg_ctr[13],H,N,A,+,1
3=.P4.2,P,S,A,+,1
4=.hoge,P,N,A,+,1
5=.work,P,N,A,+,1
6=.new_val,P,N,A,+,1
7=.raw_adc_temperature,D,N,A,+,1
8=.bt_chg_ready,P,N,A,+,1
9=.pu20,P,S,A,+,1
10=.temp_zone_charge_enable,P,N,A,+,1
11=.bt_remain_old,P,N,A,+,1
12=.vreg_ctr,P,N,A,+,1
13=.system_status,.,N,A,+,1
14=.battery_manufacturer,P,N,A,+,1
15=.bt_comp,.,N,A,+,1
16=.vol_data,P,N,A,+,1
Line=17
0=+iic_send_work,P,N,A,-,1
1=.hysteresis,P,N,A,+,1
2=.vreg_ctr[11],D,N,A,+,1
3=.system_status,.,N,A,+,1
4=.vreg_ctr[13],H,N,A,+,1
5=.P4.2,P,S,A,+,1
6=.hoge,P,N,A,+,1
7=.work,P,N,A,+,1
8=.new_val,P,N,A,+,1
9=.raw_adc_temperature,D,N,A,+,1
10=.bt_chg_ready,P,N,A,+,1
11=.pu20,P,S,A,+,1
12=.temp_zone_charge_enable,P,N,A,+,1
13=.bt_remain_old,P,N,A,+,1
14=.vreg_ctr,P,N,A,+,1
15=.system_status,.,N,A,+,1
16=.battery_manufacturer,P,N,A,+,1
17=.bt_comp,.,N,A,+,1
18=.per0,P,S,A,+,1
19=.pu20,P,S,A,+,1
20=.rtcc0,P,S,A,+,1
21=.vol_data,P,N,A,+,1
Line=22
[Quick Watch]
0=tdr07,P,A,1
1=tdr08,P,A,1
2=toe0,B,A,1
3=vreg_ctr[35],P,A,1
4=vreg_ctr[5],P,A,1
5=raw_adc_temperature,P,A,1
6=bt_chg_ready,P,A,1
7=p4.3,P,A,1
8=work,P,A,1
9=new_val,P,A,1
10=vol_data,P,A,1
11=hoge,P,A,1
12=P4.2,P,A,1
13=vreg_ctr[13],P,A,1
14=vreg_ctr[11],P,A,1
15=system_status,P,A,1
0=p4.3,P,A,1
1=work,P,A,1
2=new_val,P,A,1
3=vol_data,P,A,1
4=hoge,P,A,1
5=P4.2,P,A,1
6=vreg_ctr[13],P,A,1
7=vreg_ctr[11],P,A,1
8=system_status,P,A,1
9=hysteresis,P,A,1
10=pre0,P,A,1
11=per0,P,A,1
12=per1,P,A,1
13=rtcc0,P,A,1
14=pu20,P,A,1
15=iic_send_work,P,A,1
[Software Break]
Geometry=775, 797, 445, 260
Geometry=792, 551, 445, 260
Window=Normal
Width=150 30 200 100
Name0=Swb00001
Address0=pm.c#_BT_mgic_init+0x127
Address0=pm.c#_BT_get_left+0xfe
Window0=ASM
Status0=ON
Name1=Swb00002
Address1=pm.c#_BT_init+0x0
Name1=Swb00004
Address1=pm.c#_BT_get_left+0x141
Window1=ASM
Status1=ON
Count=2
Name2=Swb00005
Address2=pm.c#_tski_BT_temp_update+0x8a
Window2=ASM
Status2=ON
Count=3
[Reset]
Debugger=ON
Symbol=OFF

View File

@ -4,13 +4,12 @@ FrameX=168
FrameY=127
FrameCX=1299
FrameCY=1044
OpenFile1=self_flash.c,0,110,110,1354,867,19,275,0,0
OpenFile2=incs.h,0,132,132,1376,889,0,24,0,0
OpenFile3=adc.c,0,330,330,1574,1087,0,380,0,0
OpenFile4=OutputWindow
OutputPos=0,36,981,694,1556
OpenFile5=ProjectWindow
OpenFile1=ProjectWindow
PrjPos=0,2,754,3,253
OpenFile2=adc.c,0,330,330,1574,1087,18,267,18,0
OpenFile3=OutputWindow
OutputPos=0,36,981,694,1556
OpenFile4=config.h,0,308,308,1552,1065,0,3,0,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -12,7 +12,7 @@ T=4c3198b9
8=reboot.h
9=magic.h
[pm.c]
T=4c318dab
T=4c3318e4
1=incs.h
2=adc.h
3=led.h
@ -26,7 +26,7 @@ T=4c072cf1
1=config.h
2=incs.h
[main.c]
T=4c2dbbde
T=4c32d86f
1=incs_loader.h
2=WDT.h
3=rtc.h
@ -36,7 +36,7 @@ T=4c2dbbde
7=adc.h
8=pool.h
[magic.c]
T=4c31d176
T=4c331888
1=config.h
[WDT.c]
T=4bf0d1e1
@ -77,7 +77,7 @@ T=4c2c3fca
4=vreg_twl.h
5=vreg_ctr.h
[adc.c]
T=4c31d076
T=4c32ed7a
1=incs.h
2=adc.h
3=pm.h
@ -130,7 +130,7 @@ T=4c2aacdb
6=i2c_mcu.h
7=led.h
[task_sys.c]
T=4c2d5d27
T=4c330ab7
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -175,7 +175,7 @@ T=4c119cde
T=4c075832
1=config.h
[config.h]
T=4c2db56f
T=4c32adb6
[user_define.h]
T=4c2856fa
[bsr_system.h]
@ -205,7 +205,7 @@ T=4bf0d1e0
[i2c_ctr.h]
T=4bf0d1e1
[pm.h]
T=4c23491f
T=4c32fa1a
[rtc.h]
T=4bf0d1e1
[reboot.h]