/******************************************************************************* * @note Copyright (C) 2023 Shanghai Panchip Microelectronics Co., Ltd. All rights reserved. * * @file sub_1g_port.c * @brief * * @history - V0.5, 2023-12-22 *******************************************************************************/ #include "sub_1g_port.h" #include "pan_spi.h" #include "pan_gpio.h" #define DELAY_1M __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();//1.25M rf_port_t rf_port= { .antenna_init = rf_antenna_init, .tcxo_init = rf_tcxo_init, .set_tx = rf_antenna_tx, .set_rx = rf_antenna_rx, .antenna_close = rf_antenna_close, .tcxo_close = rf_tcxo_close, .spi_readwrite = spi_readwritebyte, .spi_cs_high = spi_cs_set_high, .spi_cs_low = spi_cs_set_low, .delayms = rf_delay_ms, .delayus = rf_delay_us, }; /** * @brief spi_readwritebyte * @param[in] spi readwritebyte value * @return result */ uint8_t spi_readwritebyte(uint8_t wdata) { uint8_t i; uint8_t rdata = 0; for(i = 0; i < 8; i++) { SCK_LOW; DELAY_1M; if(wdata & 0x80) { SPI_DATA_HIGH; } else { SPI_DATA_LOW; } wdata <<= 1; DELAY_1M; SCK_HIGH; DELAY_1M; rdata <<= 1; if(SPI_MISO_LEVEL) { rdata |= 0x01; } } SCK_LOW; return rdata; } /** * @brief spi_cs_set_high * @param[in] * @return none */ void spi_cs_set_high(void) { CSN_HIGH; } /** * @brief spi_cs_set_low * @param[in] * @return none */ void spi_cs_set_low(void) { CSN_LOW; } /** * @brief rf_delay_ms * @param[in]