From c21ddfdb74eef370d9a3d118fb5ea457795232cf Mon Sep 17 00:00:00 2001 From: dxl <64101226@qq.com> Date: Fri, 4 Sep 2026 09:54:06 +0800 Subject: [PATCH] Power consumption testing has been added for pm5. --- armsrc/at32_unit_test.c | 58 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/armsrc/at32_unit_test.c b/armsrc/at32_unit_test.c index edf589094..be0d5103c 100644 --- a/armsrc/at32_unit_test.c +++ b/armsrc/at32_unit_test.c @@ -1827,6 +1827,59 @@ void test_config_uart_tx2_to_dbgio(void) { gpio_init(GPIOA, &gpio_init_struct); // PA2_TX } +#include "fpga_loader.h" +#include "lfsampling.h" + +void test_max_power(void) { + FpgaResetComInterface(); + FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); + + SpinDelay(100); + FpgaSetup24MHzClk(); + + uint8_t data; + + // 开所有的灯 + LED_A_ON(); + LED_B_ON(); + LED_C_ON(); + LED_D_ON(); + test_i2c_rgb_simple(); + + // 0x03 DischargeCurrentControl 寄存器 + data = 0xE1; // 修改放电电流到 3A + I2C_BufferWrite(&data, 1, 0x03, 0x93); + // 0x05 ChargerTermination/TimerControl 寄存器 + data = 0x1A; // 禁用定时器,正常为了安全可能需要在MainLoop喂狗 + I2C_BufferWrite(&data, 1, 0x05, 0x93); + +#if 0 + FpgaDownloadAndGo(FPGA_BITSTREAM_HF); + FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER); +#else + + // 开场 + // FPGA_MAJOR_MODE_LF_READER | FPGA_LF_ADC_READER_FIELD + // FPGA_MAJOR_MODE_HF_READER + // FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_READER | FPGA_LF_ADC_READER_FIELD); + LFSetupFPGAForADC(LF_DIVISOR_125, true); + + gpio_fpga_mod_only_setup(); + Gpio_SSC_DOUT_Low(); + + // 配置低频高Q + data = 0x87; // 0x87 = 10000111: 125k + 高Q + 开启两个LED + I2C_BufferWrite(&data, 1, 0x02, 0x51 << 1); + +#endif + + // 调到最高输出电压 + FpgaSendCommand(FPGA_CMD_SET_PWR_PWM_LOW_COUNT, 4095u & 0xFFF); + + // 蜂鸣器持续响着 + test_beep(); +} + // 覆盖 UnitTestMain 实现单元测试 void UnitTestMain(void); @@ -1847,13 +1900,16 @@ void UnitTestMain(void) { // ------------------------------- 关闭所有的LED ------------------------------- LEDsoff(); + // ------------------------------- 功耗测试 ------------------------------- + // test_max_power(); + // ------------------------------- 关闭FPGA输出 ------------------------------- // 不然的话调试的时候也会很发热 SpinDelay(500); FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // ------------------------------- 测试 配置UART TX2为DBGIO输出 ------------------------------- - test_config_uart_tx2_to_dbgio(); + // test_config_uart_tx2_to_dbgio(); // ------------------------------- 测试 蓝牙电池套件UART通信 ------------------------------- // test_bwm_uart();