From a6e9474ebfd5cc6821bbb06a5732b1fbb7f71c34 Mon Sep 17 00:00:00 2001 From: N2232 Date: Thu, 13 May 2010 06:01:44 +0000 Subject: [PATCH] =?UTF-8?q?CTTS=E5=AF=BE=E5=BF=9C(accero)=20=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E9=9F=B3=E9=87=8F=E3=82=92-4db=E5=AF=BE=E5=BF=9C(adc)?= =?UTF-8?q?=20=E3=81=8A=E7=9F=A5=E3=82=89=E3=81=9BLED=E5=AF=BE=E5=BF=9C(i2?= =?UTF-8?q?c=5Fctr)=20I2C=5Fm=E3=81=A7=E3=80=81=E6=9B=B8=E3=81=8D=E8=BE=BC?= =?UTF-8?q?=E3=81=BF=E3=83=87=E3=83=BC=E3=82=BF=E3=81=8C=E5=8C=96=E3=81=91?= =?UTF-8?q?=E3=82=8B=EF=BC=9F=E3=80=80=E5=B7=BB=E3=81=8D=E6=88=BB=E3=81=97?= =?UTF-8?q?=20GYRO=E3=81=AECS=E3=81=8C=E6=A9=9F=E8=83=BD=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=EF=BC=88PM5?= =?UTF-8?q?=E3=81=AE=E8=A8=AD=E5=AE=9A=E5=BF=98=E3=82=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit todo: 現状、温度無視して充電させてます git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@132 013db118-44a6-b54f-8bf7-843cb86687b1 --- trunk/accero.c | 10 ++++++--- trunk/adc.c | 21 +++++++++++++++++++ trunk/config.h | 5 ++++- trunk/i2c_ctr.c | 11 ++++++---- trunk/i2c_mcu.c | 8 +++---- trunk/led.c | 51 +++++++++++++++------------------------------ trunk/led.h | 3 ++- trunk/loader.c | 2 +- trunk/pm.c | 9 ++++---- trunk/task_debug.c | 8 +++++-- trunk/task_misc.c | 2 +- trunk/task_sys.c | 1 - trunk/user_define.h | 9 ++++---- trunk/vreg_ctr.c | 2 +- trunk/vreg_ctr.h | 4 ---- 15 files changed, 80 insertions(+), 66 deletions(-) diff --git a/trunk/accero.c b/trunk/accero.c index fd82a64..0bcb97f 100644 --- a/trunk/accero.c +++ b/trunk/accero.c @@ -184,7 +184,8 @@ task_status_immed acc_hosu_set( ) #else # ifdef _MODEL_CTR_ - if( system_status.model == MODEL_TS_BOARD ) +/* +if( system_status.model == MODEL_TS_BOARD ) { // TS Final SoC str_send_buf[2] = 0x02; // 3 IRQ pol :Active HI, Drive:Pushpull, @@ -194,6 +195,8 @@ task_status_immed acc_hosu_set( ) // @hA str_send_buf[2] = 0x10; // 3 IRQ pol :Active HI, Drive:Pushpull, } +*/ + str_send_buf[2] = 0x12; // ʓ|Ȃ̂ŗ...B # else // TS( type T ) str_send_buf[2] = 0x02; // 3 IRQ pol :Active HI, Drive:Pushpull, @@ -252,9 +255,10 @@ __interrupt void intp23_ACC_ready( ) { if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) { - if( ACC_VALID ) + if( ACC_VALID == 1 ) { - renge_task_immed_add( tsk_cbk_accero ); +// todo +// renge_task_immed_add( tsk_cbk_accero ); } } } diff --git a/trunk/adc.c b/trunk/adc.c index 545882b..70bfcd5 100644 --- a/trunk/adc.c +++ b/trunk/adc.c @@ -10,6 +10,8 @@ #include "led.h" +//#define _4db_ +#define _15db_ // ===================================================== // bit adc_updated; @@ -26,6 +28,9 @@ extern void nop8(); // ===================================================== // #define INTERVAL_TSK_ADC 3 + + + /* ======================================================== ADCݒƁAJn @@ -41,6 +46,7 @@ extern void nop8(); @^XNNAWX^ɂ͑O̎荞ݒlĂ܂B ======================================================== */ +#ifdef _15db_ // max -15db const u8 slider_to_codec[64] = { @@ -53,7 +59,22 @@ const u8 slider_to_codec[64] = 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66 }; +#endif +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif void tsk_adc( ) diff --git a/trunk/config.h b/trunk/config.h index 95ad683..3420693 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -6,7 +6,7 @@ #define MCU_VER_MAJOR 0x00 -#define MCU_VER_MINOR 0x12 +#define MCU_VER_MINOR 0x11 #define _OVERCLOCK_ @@ -15,13 +15,16 @@ //#define _MODEL_TEG2_ // TEG2 CPU { Type-T + //#define _MODEL_WM0_ //#define _MODEL_WM0_TEG2_CTRC_ + //#define _MODEL_TS0_ // TEG2 CPU { Type-C #define _MODEL_CTR_ // TS board, WM1,1 TS-CTRC + //#define _MODEL_CTR_NOTIFY_FULLCOLOR_ // TS board, WM1,1 TS-CTRC diff --git a/trunk/i2c_ctr.c b/trunk/i2c_ctr.c index e243e74..7b363ae 100644 --- a/trunk/i2c_ctr.c +++ b/trunk/i2c_ctr.c @@ -197,11 +197,14 @@ __interrupt void int_iic_ctr( ) // WX^AhX̃CNg /// ANZX|C^i߂ȂȃWX^ - if( ( reg_adrs != VREG_C_ACC_HOSU_HIST ) - && ( reg_adrs != VREG_C_INFO ) - && ( reg_adrs != VREG_C_FREE_DATA ) - ) + switch( reg_adrs ) { + case( VREG_C_ACC_HOSU_HIST ): + case( VREG_C_INFO ): + case( VREG_C_FREE_DATA ): + case( VREG_C_LED_NOTIFY_DATA ): + break; + default: reg_adrs += 1; } diff --git a/trunk/i2c_mcu.c b/trunk/i2c_mcu.c index 414ec1f..80c48e3 100644 --- a/trunk/i2c_mcu.c +++ b/trunk/i2c_mcu.c @@ -251,11 +251,11 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) ======================================================== */ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) { - -#if 1 // bp[ static u8 temp; // ςȂŏIɊ֐𔲂i”\ĵstatic +#if 0 + // ȂƁAđɏƂɑÕf[^j󂵂Ă܂ while( iic_mcu_busy ) { @@ -303,7 +303,6 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) ******************************************************************************/ err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) { - if( iic_mcu_is_ready() != ERR_SUCCESS ) { return( ERR_ERR ); @@ -342,7 +341,7 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) DEN1 = 1; DSA1 = ( u8 ) ( &SIO10 ); - DRA1 = ( u16 ) iic_send_work; + DRA1 = &iic_send_work[0]; DBC1 = len; DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 @@ -365,6 +364,7 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) p_iic_send_wo_dma_dat = src; // c͊荞݃[` } + return ( ERR_SUCCESS ); } diff --git a/trunk/led.c b/trunk/led.c index 4b28e51..ea3ca2e 100644 --- a/trunk/led.c +++ b/trunk/led.c @@ -38,6 +38,7 @@ uni_info_LED info_LED = { 32, // 1t[̒ 32, // Of[V 0, // ŏIt[nJԂ + 0, // \ { {255, 0,0}, {0,0,0}, @@ -180,8 +181,7 @@ void LED_init( ) TOE0 = 0b0000000011101110; // TOx^C}[W[H TS0 = 0b0000000011101111; // Jn -// TDR00 = LED_BRIGHT_MAX - 1; // 10bit, - TDR00 = LED_BRIGHT_MAX*5 - 1; // 10bit, + TDR00 = LED_BRIGHT_MAX - 1; // 10bit, if( system_status.reboot ) { @@ -248,6 +248,7 @@ void tsk_led_pow( ) // case ( LED_POW_ILM_OFF ): + led_fade_to( LED_duty_pow_blu, 0 ); LED_pow_red = 0; break; @@ -284,7 +285,7 @@ static void led_pow_normal( ) static u8 red_blink_poi; u8 temp; - + if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_EMPTY ) { // ԓ_ @@ -438,38 +439,15 @@ void tsk_led_wifi( ) } // MpX̃b` - if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_TXAUTO ) - { - if( WIFI_txLatch ) + if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂ { WIFI_txLatch = 0; flag_wifi_TX = 2; } - } - else - { - flag_wifi_TX = 0; - } - - switch ( vreg_ctr[VREG_C_LED_WIFI] ) - { - case ( WIFI_LED_OFF ): - default: - LED_duty_WiFi = 0; - state_wifi_tx = 0; - remain_wifi_tx = 0; - break; - - case ( WIFI_LED_ON ): - LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; - state_wifi_tx = 0; - remain_wifi_tx = 0; - break; - - case ( WIFI_LED_TXAUTO ): - if( flag_wifi_TX != 0 ) // ZpX߂܂邽߂ɁA荞݃tO + if( flag_wifi_TX != 0 ) { + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX; // Mp^[ switch ( state_wifi_tx ) { @@ -493,12 +471,17 @@ void tsk_led_wifi( ) else { // MtO҂ - LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; - task_interval = 200; - return; + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX; + if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF ) + { + LED_duty_WiFi = 0; } - break; - + else + { + LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; + } + task_interval = 100; + return; } } diff --git a/trunk/led.h b/trunk/led.h index d470db9..311eec7 100644 --- a/trunk/led.h +++ b/trunk/led.h @@ -36,7 +36,7 @@ #define NOTIFY_LED_TERM 32 -#define LED_BRIGHT_MAX 0x00FF +#define LED_BRIGHT_MAX 0x0100 // ==================================== #ifdef _MCU_BSR_ // dgMpX @@ -110,6 +110,7 @@ typedef struct{ u8 term; // 1t[`bNH u8 fade_time; // `bNŎ̃t[̐FɒB邩 u8 last_loop; // ŏIt[ + u8 resv1; st_info_LED_ptn ptn[ NOTIFY_LED_TERM ]; }st_info_LED; diff --git a/trunk/loader.c b/trunk/loader.c index 522bfec..90e4366 100644 --- a/trunk/loader.c +++ b/trunk/loader.c @@ -245,7 +245,7 @@ void hdwinit2( ) PM4 = 0b11111011; #endif - PM5 = 0b11110011; + PM5 = 0b11110010; PM6 = 0b11111100; // I2C̃CLo͂ɂȂĂ܂AVXeOFFȂ̂ł܂Ȃ #ifdef _PMIC_CTR_ PM7 = 0b01011111; diff --git a/trunk/pm.c b/trunk/pm.c index f766125..4529e33 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -255,6 +255,7 @@ err PM_sys_pow_on( ) // PM_reset_ast( ); sv PM_LDSW_on܂ RESET2_ast; FCRAM_RST_ast; + GYRO_CS_DISABLE(); PM_LDSW_on( ); @@ -634,8 +635,6 @@ void tsk_batt( ) } #if 0 - // todo - // [d /////////////////////////// // xtqXeVX if(( 86 < vreg_ctr[VREG_C_BT_TEMP] ) @@ -656,19 +655,19 @@ void tsk_batt( ) if(( temp_zone_charge_enable == 1 ) && ( battery_manufacturer <= BT_VENDER_6 )) { -#ifndef _MODEL_WM0_ +# ifndef _MODEL_WM0_ // CHG_ENABLEs /WL_RST ɔzĂ̂ BT_CHG_ENABLE(); // x͈OKŏ[dĊJ } else { BT_CHG_DISABLE(); // x댯I@[d~ -#endif +# endif } #else - // [d /////////////////////////// + // xď[d # ifndef _MODEL_WM0_ // CHG_ENABLEs /WL_RST ɔzĂ̂ BT_CHG_ENABLE(); // x͈OKŏ[dĊJ diff --git a/trunk/task_debug.c b/trunk/task_debug.c index 90153ee..df4ff5d 100644 --- a/trunk/task_debug.c +++ b/trunk/task_debug.c @@ -35,12 +35,16 @@ void tsk_debug( ) return; } -u8 temp_debug_3; + + +// 7ZO 4oCg +# define IIC_SLA_DBG_MONITOR 0x24 void tsk_debug2( ) { u8 str[4]; + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) { /* @@ -64,7 +68,7 @@ void tsk_debug2( ) // iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] ); // iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); -// iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] ); + iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] ); } return; } diff --git a/trunk/task_misc.c b/trunk/task_misc.c index 3367a54..9bfd678 100644 --- a/trunk/task_misc.c +++ b/trunk/task_misc.c @@ -131,7 +131,7 @@ void tsk_misc_stat( ) // 荞݂̎肱ڂH if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 ) { - if( ACC_VALID ) + if( ACC_VALID == 1 ) { if( renge_task_immed_add( tsk_cbk_accero ) == ERR_SUCCESS ){ NOP(); diff --git a/trunk/task_sys.c b/trunk/task_sys.c index 78c282a..74650d2 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -244,7 +244,6 @@ void tsk_sys( ) IIC_ctr_Stop( ); IIC_twl_Stop( ); RTC_32k_off(); - GYRO_CS_DISABLE(); vreg_ctr[VREG_C_IRQ0] = 0; vreg_ctr[VREG_C_IRQ1] = 0; diff --git a/trunk/user_define.h b/trunk/user_define.h index ee8d68b..471a2f6 100644 --- a/trunk/user_define.h +++ b/trunk/user_define.h @@ -20,6 +20,7 @@ #endif + #ifdef _debug_led_ # define DBG_LED_WIFI_2_on { PM2.4 = 0; P2.4 = 1; } # define DBG_LED_WIFI_2_off { PM2.4 = 1; P2.4 = 0; } @@ -189,15 +190,15 @@ #endif #ifdef _MODEL_CTR_ -// P5.0 ɉAP5.5, P140 P141 +// P5.3 ɉAP5.5, P140 P141 // P140o͐pȂ̂... -#define I2C_PU_on() { PM5.3 = 1; PM3.3 = 1; P14 |= 0x03; P5.3 = 1; PM5.3 = 0; P3.3 = 1; PM3.3 = 0; } +#define I2C_PU_on() { PM5.3 = 1; PM3.3 = 1; P14 |= 0x03; P5.3 = 1; PM5.3 = 0; P3.3 = 1; PM3.3 = 0; } #define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; P5.3 = 0; PM5.3 = 0; P3.3 = 0; PM3.3 = 0; } #endif #ifdef _MODEL_CTR_ -#define GYRO_CS_ENABLE() P5.0 = 1 -#define GYRO_CS_DISABLE() P5.0 = 0 +#define GYRO_CS_ENABLE() P5.0 = 0 +#define GYRO_CS_DISABLE() P5.0 = 1 #else #define GYRO_CS_ENABLE() ; #define GYRO_CS_DISABLE() ; diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index 5b4d252..2afe32d 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -40,7 +40,7 @@ void vreg_ctr_init( ) { vreg_ctr[VREG_C_LED_BRIGHT] = 0xFF; -#ifdef _MODEL_TEG2_ +#ifdef _PMIC_TWL_ vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR; #else vreg_ctr[VREG_C_MCU_VER_MAJOR] = MCU_VER_MAJOR | 0x10; diff --git a/trunk/vreg_ctr.h b/trunk/vreg_ctr.h index 501bd3d..86f1a7b 100644 --- a/trunk/vreg_ctr.h +++ b/trunk/vreg_ctr.h @@ -4,10 +4,6 @@ #include "config.h" -#define REG_BIT__SYS_MODE0 0b01000000 -#define REG_BIT_MCU_FIRMBROKEN 0b10000000 - - // VREG_C_MCU_STATUS #define REG_BIT_STATUS_WDT_RESET ( 1 << 1 ) #define REG_BIT_RTC_BLACKOUT ( 1 << 0 )