From f8013e4f432b323dfc3e3725a62858e73176742a Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期五, 01 十一月 2024 15:16:32 +0800 Subject: [PATCH] 更换了新的sdk,测试了实际的uwb测距 --- keil/include/board/board.h | 66 ++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 26 deletions(-) diff --git a/keil/include/board/board.h b/keil/include/board/board.h index acfa2f3..ea12ec1 100644 --- a/keil/include/board/board.h +++ b/keil/include/board/board.h @@ -45,12 +45,21 @@ #include "mk_trace.h" #include "mk_gpio.h" +#ifndef TRACE_BAUD_RATE +#define TRACE_BAUD_RATE (BAUD_921600) +#endif + +#ifndef X38M4_AUTO_TUNE_EN +#define X38M4_AUTO_TUNE_EN (0) +#else +#endif + /* LGA CSP IO00 - UART1 RX - UART1 RX IO01 - UART1 TX - UART1 TX (trace port) IO02 - Ranging Role - Ranging Role IO03 - - ISP_EN -IO04 - - UCI Handshake S->H +IO04 - Ranging Role - UCI Handshake S->H | Ranging Role IO05 - UART0_TX - UART0_TX | SPI_MISO IO06 - UART0_RX - UART0_RX | SPI_MOSI IO07 - LED - LED | SPI_CLK @@ -82,16 +91,23 @@ /** UCI handshake pin, from slave to host */ #define SLAVE2HOST_HS_GPIO (IO_PIN_4) +/** Ranging role pin */ +#if (X38M4_AUTO_TUNE_EN == 2) +#define RANGING_ROLE_PIN (IO_PIN_4) +#else +#define RANGING_ROLE_PIN (IO_PIN_2) +#endif + #define CALIB_CH9 0 #define CALIB_CH5 1 #define CALIB_CH2 2 #define CALIB_CH_NUM 3 -#define SLEEP_TIMER_NUM 496 + #define CALIB_CH(x) (x == 9 ? 0 : (x == 5 ? 1 : 2)) enum BOARD_NVM_ITEM_ID_T { - BOARD_LOAD_CAP = 1, + BOARD_X38M4_LOAD_CAP = 1, BOARD_LOCAL_SHORT_ADDR = 2, BOARD_PEER_SHORT_ADDR = 3, BOARD_RANGING_SESSION_ID = 4, @@ -104,13 +120,16 @@ BOARD_PDOA_ANT_SPACE = 11, BOARD_PDOA_OFFSETS = 12, BOARD_X32K_LOAD_CAP = 13, + BOARD_CALIB_X38M4_TEMPERATURE = 14, + BOARD_CALIB_X38M4_PPM = 15, + BOARD_ANGLE_CORRECTION = 16, }; /* Board parameters */ struct BOARD_PARAM_T { uint32_t flag; - uint8_t load_cap; + uint8_t x38m4_load_cap; uint8_t tx_power_fcc[CALIB_CH_NUM]; // [CH9, CH5, CH2] uint16_t ranging_session_id; uint16_t local_short_addr; @@ -123,6 +142,10 @@ uint8_t dev_role; uint8_t dev_role_idx; uint8_t x32k_load_cap; + int16_t calib_x38m4_temperature; // degree centigrade + int16_t calib_x38m4_ppm; // unit is 0.01 ppm + // [azimuth_correction[8],elevation_correction[8]],azimuth_correction[8]=[k,b,s1,k1,b1,s2,k2,b2],k=gain*0.001,b=offset*0.1,s=angle_threshold*0.1 + int16_t angle_correction[16]; }; #if defined(__cplusplus) @@ -181,23 +204,23 @@ void board_ranging_result_correct(uint16_t *distance, int16_t *azimuth, int16_t *elevation); /** + * @brief Get XTAL 38.4M Frequency offset. + * @param[in] p_ppm pointer of the ppm to be written, unit is 0.01 ppm + * @return + * @arg DRV_DEV_UNAVAILABLE get unavaliable value + * @arg DRV_ERROR adc_get error id + * @arg DRV_BUSY adc_get send failed because of ADC is busy + * @arg DEV_OK get ppm success + */ +int32_t board_x38m4_ppm_get(int32_t *p_ppm); + +/** * @brief Configure button GPIO. * @param[in] irq_handler button interrupt process handler * */ void board_button_init(GPIO_IRQ_HANDLER_T irq_handler); -/** - * @brief Configure button GPIO. - * @param[in] irq_handler 5v input interrupt process handler - * - */ -void board_5V_input_init(GPIO_IRQ_HANDLER_T irq_handler); -/** - * @brief Configure button GPIO. - * @param[in] irq_handler accelerate input interrupt process handler - * - */ -void board_acceleration_detection_init(GPIO_IRQ_HANDLER_T irq_handler); + /** * @brief Configure LED GPIO. * @@ -242,16 +265,7 @@ * */ void board_restore_from_power_down(void); -/** - * @brief Change uart1 gps to debug. - * - */ -void uart1_change_from_gps_to_debug(void); -/** - * @brief Change uart1 debug to gps. - * - */ -void uart1_change_from_debug_to_gps(void); + #if defined(__cplusplus) } #endif -- Gitblit v1.9.3