| | |
| | | #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 |
| | |
| | | |
| | | /* Board leds */ |
| | | #define BOARD_LED_1 IO_PIN_7 |
| | | #define BOARD_LED_2 IO_PIN_8 |
| | | //#define BOARD_LED_2 IO_PIN_8 |
| | | |
| | | /** UCI handshake pin, from host to slave */ |
| | | #define HOST2SLAVE_HS_GPIO (IO_PIN_17) |
| | |
| | | /** 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 500 |
| | | |
| | | #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, |
| | |
| | | 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; |
| | |
| | | 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) |
| | |
| | | */ |
| | | void board_debug_console_open(enum TRACE_PORT_T port); |
| | | |
| | | /** |
| | | * @brief Configure debug trace port and baud. |
| | | * @param[in] port Trace port |
| | | * |
| | | */ |
| | | void board_debug_console_open_baud(enum TRACE_PORT_T port,enum UART_BAUD_T baud_rate); |
| | | /** |
| | | * @brief Load default calibration parameters. |
| | | * |
| | |
| | | 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. |
| | | * |
| | |
| | | * |
| | | */ |
| | | 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 |