60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
#include "rp2040port.h"
|
|
|
|
// --- Hardware Setup ---
|
|
void setup_pins(void) {
|
|
// SPI Initialisation. Using SPI0 at 16MHz.
|
|
spi_init(spi0, 16000000);
|
|
gpio_set_function(PIN_MISO, GPIO_FUNC_SPI);
|
|
gpio_set_function(PIN_SCK, GPIO_FUNC_SPI);
|
|
gpio_set_function(PIN_MOSI, GPIO_FUNC_SPI);
|
|
|
|
// Chip Select
|
|
gpio_init(PIN_CS);
|
|
gpio_set_dir(PIN_CS, GPIO_OUT);
|
|
gpio_put(PIN_CS, 1);
|
|
|
|
// Reset Pin
|
|
gpio_init(PIN_RST);
|
|
gpio_set_dir(PIN_RST, GPIO_OUT);
|
|
gpio_put(PIN_RST, 1);
|
|
|
|
// Interrupt Pin
|
|
gpio_init(PIN_INT);
|
|
gpio_set_dir(PIN_INT, GPIO_IN);
|
|
gpio_pull_up(PIN_INT);
|
|
}
|
|
|
|
// --- Platform Interface Implementation ---
|
|
void AD5940_CsClr(void) { gpio_put(PIN_CS, 0); }
|
|
|
|
void AD5940_CsSet(void) { gpio_put(PIN_CS, 1); }
|
|
|
|
void AD5940_RstClr(void) { gpio_put(PIN_RST, 0); }
|
|
|
|
void AD5940_RstSet(void) { gpio_put(PIN_RST, 1); }
|
|
|
|
void AD5940_Delay10us(uint32_t time) { sleep_us(time * 10); }
|
|
|
|
void AD5940_ReadWriteNBytes(unsigned char *pSendBuffer,
|
|
unsigned char *pRecvBuff, unsigned long length) {
|
|
spi_write_read_blocking(spi0, pSendBuffer, pRecvBuff, length);
|
|
}
|
|
|
|
uint32_t AD5940_GetMCUIntFlag(void) { return (gpio_get(PIN_INT) == 0); }
|
|
|
|
uint32_t AD5940_ClrMCUIntFlag(void) { return 1; }
|
|
|
|
uint32_t AD5940_MCUResourceInit(void *pCfg) { return 0; }
|
|
|
|
void AD5940_MCUGpioWrite(uint32_t data) { (void)data; }
|
|
|
|
uint32_t AD5940_MCUGpioRead(uint32_t pin) {
|
|
(void)pin;
|
|
return 0;
|
|
}
|
|
|
|
void AD5940_MCUGpioCtrl(uint32_t pin, BoolFlag enable) {
|
|
(void)pin;
|
|
(void)enable;
|
|
}
|