|
@ -5,7 +5,7 @@ |
|
|
*/ |
|
|
*/ |
|
|
#define TAG "fpga_if" |
|
|
#define TAG "fpga_if" |
|
|
static fpga_if_t fpga_if; |
|
|
static fpga_if_t fpga_if; |
|
|
xs_gpio_t spi1_cs; |
|
|
|
|
|
|
|
|
xs_gpio_t spi2_cs; |
|
|
|
|
|
|
|
|
void fpga_if_init() { // |
|
|
void fpga_if_init() { // |
|
|
// fpga_if.spi1 = &hspi1; |
|
|
// fpga_if.spi1 = &hspi1; |
|
@ -17,9 +17,9 @@ void fpga_if_init() { // |
|
|
* 假传输一帧数据,使时钟线变为高电平。 |
|
|
* 假传输一帧数据,使时钟线变为高电平。 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
fpga_if.spi1 = &hspi2; |
|
|
|
|
|
xs_gpio_init_as_output(&spi1_cs, PB9, kxs_gpio_nopull, false, true); |
|
|
|
|
|
HAL_SPI_Receive(fpga_if.spi1, rxbuf, 1, 1000); |
|
|
|
|
|
|
|
|
fpga_if.spi2 = &hspi2; |
|
|
|
|
|
xs_gpio_init_as_output(&spi2_cs, PB9, kxs_gpio_nopull, false, true); |
|
|
|
|
|
HAL_SPI_Receive(fpga_if.spi2, rxbuf, 1, 1000); |
|
|
|
|
|
|
|
|
// fpga_if.spi2 = &hspi1; |
|
|
// fpga_if.spi2 = &hspi1; |
|
|
// HAL_SPI_Receive(fpga_if.spi2, rxbuf, 1, 1000); |
|
|
// HAL_SPI_Receive(fpga_if.spi2, rxbuf, 1, 1000); |
|
@ -122,22 +122,23 @@ static void _fpga_if_spi_read_data(SPI_HandleTypeDef *hspi, uint32_t add, uint32 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void fpga_if_spi_write_data_01(uint32_t add, uint32_t txdata, uint32_t *rxdata) { |
|
|
void fpga_if_spi_write_data_01(uint32_t add, uint32_t txdata, uint32_t *rxdata) { |
|
|
xs_gpio_write(&spi1_cs, false); |
|
|
|
|
|
_fpga_if_spi_write_data(fpga_if.spi1, add, txdata, rxdata); |
|
|
_fpga_if_spi_write_data(fpga_if.spi1, add, txdata, rxdata); |
|
|
xs_gpio_write(&spi1_cs, true); |
|
|
|
|
|
xs_delay_us(1); |
|
|
|
|
|
xs_gpio_write(&spi1_cs, false); |
|
|
|
|
|
_fpga_if_spi_read_data(fpga_if.spi1, add, rxdata); |
|
|
_fpga_if_spi_read_data(fpga_if.spi1, add, rxdata); |
|
|
xs_gpio_write(&spi1_cs, true); |
|
|
|
|
|
} |
|
|
} |
|
|
void fpga_if_spi_read_data_01(uint32_t add, uint32_t *rxdata) { _fpga_if_spi_read_data(fpga_if.spi1, add, rxdata); } |
|
|
void fpga_if_spi_read_data_01(uint32_t add, uint32_t *rxdata) { _fpga_if_spi_read_data(fpga_if.spi1, add, rxdata); } |
|
|
void fpga_if_spi_write_data_02(uint32_t add, uint32_t txdata, uint32_t *rxdata) { |
|
|
void fpga_if_spi_write_data_02(uint32_t add, uint32_t txdata, uint32_t *rxdata) { |
|
|
if (!fpga_if.spi2) return; |
|
|
|
|
|
|
|
|
xs_gpio_write(&spi2_cs, false); |
|
|
_fpga_if_spi_write_data(fpga_if.spi2, add, txdata, rxdata); |
|
|
_fpga_if_spi_write_data(fpga_if.spi2, add, txdata, rxdata); |
|
|
|
|
|
xs_gpio_write(&spi2_cs, true); |
|
|
|
|
|
xs_delay_us(1); |
|
|
|
|
|
xs_gpio_write(&spi2_cs, false); |
|
|
|
|
|
_fpga_if_spi_read_data(fpga_if.spi2, add, rxdata); |
|
|
|
|
|
xs_gpio_write(&spi2_cs, true); |
|
|
} |
|
|
} |
|
|
void fpga_if_spi_read_data_02(uint32_t add, uint32_t *rxdata) { |
|
|
void fpga_if_spi_read_data_02(uint32_t add, uint32_t *rxdata) { |
|
|
if (!fpga_if.spi2) return; |
|
|
|
|
|
|
|
|
xs_gpio_write(&spi2_cs, false); |
|
|
_fpga_if_spi_read_data(fpga_if.spi2, add, rxdata); |
|
|
_fpga_if_spi_read_data(fpga_if.spi2, add, rxdata); |
|
|
|
|
|
xs_gpio_write(&spi2_cs, true); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fpga_if_t *fpga_if_get_instance() { return &fpga_if; } |
|
|
fpga_if_t *fpga_if_get_instance() { return &fpga_if; } |