diff options
author | Max Zhang <zhangmax@google.com> | 2023-02-28 13:31:24 -0800 |
---|---|---|
committer | Max Zhang <zhangmax@google.com> | 2023-02-28 13:31:24 -0800 |
commit | 1e1e0eb11e1cea8e34e3fe93c1315ee80a174ce9 (patch) | |
tree | d563d27089986bb32942d17007c093ddbe51e28b | |
parent | 329f0cfe27ddfd92825c23e469bf91d9a45aae6d (diff) | |
download | refDesignRcu-gretzky.tar.gz |
RCU update TX power level with manufacturer infogretzky
Use high power flag at 0x780F0 to set TX power level.
For certain customer, use high power based on VID/PID.
Provide the power setting thru Hardware Revision.
"V1.0_B35" means 7.5dBm
"V1.0_A63" means 3.5dBm
Set the version number to 2.18
Bug: b/266562271
Bug: b/268733012
Test: Check the power output added to Hardware Revision string.
Change-Id: I04f793983cab47dd7b2be1b00d22af7639c984b1
-rw-r--r-- | 8271_ble_remote/makefile | 22 | ||||
-rw-r--r-- | vendor/827x_ble_remote/app.c | 82 | ||||
-rw-r--r-- | vendor/827x_ble_remote/app_att.c | 4 | ||||
-rw-r--r-- | vendor/827x_ble_remote/app_custom.c | 36 | ||||
-rw-r--r-- | version.h | 2 |
5 files changed, 122 insertions, 24 deletions
diff --git a/8271_ble_remote/makefile b/8271_ble_remote/makefile index ffbca9c..52d5e79 100644 --- a/8271_ble_remote/makefile +++ b/8271_ble_remote/makefile @@ -36,42 +36,42 @@ sizedummy \ # All Target -all: GoogleRCU_8271_v2p06.elf secondary-outputs +all: GoogleRCU_8271.elf secondary-outputs # Tool invocations -GoogleRCU_8271_v2p06.elf: $(OBJS) $(USER_OBJS) +GoogleRCU_8271.elf: $(OBJS) $(USER_OBJS) @echo 'Building target: $@' @echo 'Invoking: TC32 C Linker' - tc32-elf-ld --gc-sections -L"../proj_lib" -L"../application\audio" -T ../boot.link -o"GoogleRCU_8271_v2p06.elf" $(OBJS) $(USER_OBJS) $(LIBS) + tc32-elf-ld --gc-sections -L"../proj_lib" -L"../application\audio" -T ../boot.link -o"GoogleRCU_8271.elf" $(OBJS) $(USER_OBJS) $(LIBS) @echo 'Finished building target: $@' @echo ' ' $(MAKE) --no-print-directory post-build -8271_ble_remote.lst: GoogleRCU_8271_v2p06.elf +8271_ble_remote.lst: GoogleRCU_8271.elf @echo 'Invoking: TC32 Create Extended Listing' - tc32-elf-objdump -x -D -l -S GoogleRCU_8271_v2p06.elf >"8271_ble_remote.lst" + tc32-elf-objdump -x -D -l -S GoogleRCU_8271.elf >"8271_ble_remote.lst" @echo 'Finished building: $@' @echo ' ' -: GoogleRCU_8271_v2p06.elf +: GoogleRCU_8271.elf @echo 'Create Flash image (binary format)' - tc32-elf-objcopy -O binary GoogleRCU_8271_v2p06.elf + tc32-elf-objcopy -O binary GoogleRCU_8271.elf @echo 'Finished building: $@' @echo ' ' -sizedummy: GoogleRCU_8271_v2p06.elf +sizedummy: GoogleRCU_8271.elf @echo 'Invoking: Print Size' - tc32-elf-size -t GoogleRCU_8271_v2p06.elf + tc32-elf-size -t GoogleRCU_8271.elf @echo 'Finished building: $@' @echo ' ' # Other Targets clean: - -$(RM) $(FLASH_IMAGE)$(ELFS)$(OBJS)$(LST)$(SIZEDUMMY) GoogleRCU_8271_v2p06.elf + -$(RM) $(FLASH_IMAGE)$(ELFS)$(OBJS)$(LST)$(SIZEDUMMY) GoogleRCU_8271.elf -@echo ' ' post-build: - -"../tl_check_fw.sh" 8271_ble_remote GoogleRCU_8271_v2p06 + -"../tl_check_fw.sh" 8271_ble_remote GoogleRCU_8271 -@echo ' ' secondary-outputs: $(LST) $(FLASH_IMAGE) $(SIZEDUMMY) diff --git a/vendor/827x_ble_remote/app.c b/vendor/827x_ble_remote/app.c index dfa6fdd..21859cc 100644 --- a/vendor/827x_ble_remote/app.c +++ b/vendor/827x_ble_remote/app.c @@ -66,7 +66,8 @@ #define MY_ADV_INTERVAL_MAX ADV_INTERVAL_25MS #if (MCU_CORE_TYPE == MCU_CORE_8278) - #define MY_RF_POWER_INDEX RF_POWER_P7p37dBm + #define MY_RF_POWER_INDEX RF_POWER_P3p50dBm + #else #define MY_RF_POWER_INDEX RF_POWER_P3p01dBm #endif @@ -147,6 +148,10 @@ _attribute_data_retention_ u32 wakeup_tick=0; _attribute_data_retention_ u8 detpowerkey=0; //0:not det powerkey 1:det powerkey +_attribute_data_retention_ u8 app_rcu_tx_power = RF_POWER_P3p50dBm; + + + u8 mac_public[6]; extern u8 is_pairing_mode; @@ -173,6 +178,79 @@ void app_set_printf_uart_flag(unsigned char data) } #endif +void app_rcu_set_TxPower(u8 Index){ + + switch (Index) { + case RF_POWER_P11p26dBm : + case RF_POWER_P11p09dBm : + case RF_POWER_P10p83dBm : + case RF_POWER_P10p62dBm : + case RF_POWER_P10p30dBm : + case RF_POWER_P10p05dBm : + case RF_POWER_P9p79dBm : + case RF_POWER_P9p54dBm : + case RF_POWER_P9p23dBm : + case RF_POWER_P8p92dBm : + case RF_POWER_P8p57dBm : + case RF_POWER_P8p20dBm : + case RF_POWER_P7p80dBm : + case RF_POWER_P7p37dBm : + case RF_POWER_P6p91dBm : + case RF_POWER_P6p45dBm : + case RF_POWER_P5p92dBm : + case RF_POWER_P5p33dBm : + case RF_POWER_P4p69dBm : + case RF_POWER_P3p99dBm : + case RF_POWER_P3p50dBm : + case RF_POWER_P3p33dBm : + case RF_POWER_P3p13dBm : + case RF_POWER_P2p93dBm : + case RF_POWER_P2p60dBm : + case RF_POWER_P2p36dBm : + case RF_POWER_P2p10dBm : + case RF_POWER_P1p83dBm : + case RF_POWER_P1p56dBm : + case RF_POWER_P1p25dBm : + case RF_POWER_P0p71dBm : + case RF_POWER_P0p52dBm : + case RF_POWER_N0p28dBm : + case RF_POWER_N0p51dBm : + case RF_POWER_N0p74dBm : + case RF_POWER_N1p21dBm : + case RF_POWER_N1p69dBm : + case RF_POWER_N2p23dBm : + case RF_POWER_N2p84dBm : + case RF_POWER_N3p48dBm : + case RF_POWER_N4p18dBm : + case RF_POWER_N4p97dBm : + case RF_POWER_N5p85dBm : + case RF_POWER_N6p83dBm : + case RF_POWER_N7p88dBm : + case RF_POWER_N9p14dBm : + case RF_POWER_N10p70dBm : + case RF_POWER_N12p57dBm : + case RF_POWER_N15p01dBm : + case RF_POWER_N18p40dBm : + case RF_POWER_N24p28dBm : + app_rcu_tx_power = Index; + break; + default: + app_rcu_tx_power = RF_POWER_P3p50dBm; + break; + } + + + /* set TX power index to hardware revision */ + extern u8 my_HWRevtrs []; + my_HWRevtrs[5] = (app_rcu_tx_power&BIT(7))?'A':'B'; + my_HWRevtrs[6] = (app_rcu_tx_power&0x3F)/10 + '0'; + my_HWRevtrs[7] = (app_rcu_tx_power&0x3F)%10 + '0'; + + printf("[NOTICE] Set TX power[%c%c%c]\n",my_HWRevtrs[5],my_HWRevtrs[6],my_HWRevtrs[7]); + +} + + void app_enter_deep_timeset(void) { enterdeep_time = ADV_IDLE_ENTER_DEEP_COUNT; @@ -646,7 +724,7 @@ _attribute_ram_code_ void user_set_rf_power (u8 e, u8 *p, int n) rf_set_power_level_index(RF_POWER_P7p37dBm); else #endif - rf_set_power_level_index (MY_RF_POWER_INDEX); + rf_set_power_level_index (app_rcu_tx_power); } diff --git a/vendor/827x_ble_remote/app_att.c b/vendor/827x_ble_remote/app_att.c index 2f0efce..ecbce78 100644 --- a/vendor/827x_ble_remote/app_att.c +++ b/vendor/827x_ble_remote/app_att.c @@ -104,7 +104,9 @@ static const gap_periConnectParams_t my_periConnParameters = {8, 11, 0, 1000}; _attribute_data_retention_ u8 my_FWRevtrs [] = {'V','1','.','1','1'}; _attribute_data_retention_ u8 my_SWRevtrs [] = {'V','1','.','0','2'}; - static const u8 my_HWRevtrs [] = {'V','1','.','0'}; +// static const u8 my_HWRevtrs [] = {'V','1','.','0'}; + _attribute_data_retention_ u8 my_HWRevtrs [] = {'V','1','.','0','_','A','6','3'}; + static const u8 my_ManuNametrs [] = {'T','e','l','i','n','k'}; //////////////////////// Battery ///////////////////////////////////////////////// diff --git a/vendor/827x_ble_remote/app_custom.c b/vendor/827x_ble_remote/app_custom.c index 5b5d3a0..19063ca 100644 --- a/vendor/827x_ble_remote/app_custom.c +++ b/vendor/827x_ble_remote/app_custom.c @@ -54,6 +54,13 @@ typedef enum }app_custom_data_update_sts; +typedef struct{ + u8 vid_src; + u16 vid; + u16 pid; + u16 prod_ver; +}app_pnpid_format_t; + #define APP_CUSTOM_CMD_DATA_UPDATE_PREPARE 0xED00 #define APP_CUSTOM_CMD_DATA_UPDATE_START 0xED01 #define APP_CUSTOM_CMD_DATA_UPDATE_END 0xED02 @@ -604,15 +611,6 @@ void app_custom_data_update(void) */ void app_custom_init(void) { - /* 2.17 only - * Special version, if the address APP_TX_POWER is 0xff, write 0x23 (TX power7.37dBm) */ - u8 my_TxPoewr = 0x00; - flash_read_page(APP_TX_POWER_ADDR, 1 , &my_TxPoewr); - if(0xff == my_TxPoewr){ - my_TxPoewr = RF_POWER_P7p37dBm; - flash_write_page(APP_TX_POWER_ADDR, 1 , &my_TxPoewr); - } - u8 buffer[80]; u8 addr_pos=0,i; u8 *pREMOTE_B046 = (u8 *)("RemoteB046"); @@ -678,6 +676,26 @@ void app_custom_init(void) my_FWRevtrs[4] = (_custom_data.device_ui_layout) + 0x30; app_custom_wakeup_key_load(_custom_data.wakeup_key_1,_custom_data.wakeup_key_2); app_custom_param_init(_custom_data.device_ui_layout); + + + /* 230214 by ken. read TX power settings */ + extern void app_rcu_set_TxPower(u8 Index); + + app_pnpid_format_t *p_my_pnpid = (app_pnpid_format_t *)_custom_data.pnp_id; + + if((0x01 == p_my_pnpid->vid_src) && (0x0957 == p_my_pnpid->vid) && (0x0005 == p_my_pnpid->pid)){ + /* Customized settings for special customers */ + app_rcu_set_TxPower(RF_POWER_P7p37dBm); + }else{ + u8 my_TxPoewr = 0x00; + flash_read_page(APP_TX_POWER_ADDR, 1 , &my_TxPoewr); + if(0xff != my_TxPoewr){ + app_rcu_set_TxPower(my_TxPoewr); + } + } + + + } /** @@ -27,6 +27,6 @@ #ifndef VERSION_H_ #define VERSION_H_ -#define FW_VERSION 0x34210217//FW:v3.4.2 SW:v2.17 +#define FW_VERSION 0x34210218//FW:v3.4.2 SW:v2.18 #endif /* VERSION_H_ */ |