implement SPI flash chip

This commit is contained in:
Joey Castillo
2022-01-26 22:39:09 -05:00
parent b2dbc4feeb
commit 523a5d2f0b
9 changed files with 265 additions and 33 deletions

View File

@@ -90,16 +90,6 @@ void SPI_0_PORT_init(void) {
gpio_set_pin_direction(A1, GPIO_DIRECTION_OUT);
gpio_set_pin_function(A1, PINMUX_PB01C_SERCOM3_PAD3);
gpio_set_pin_level(A3,
// <y> Initial level
// <id> pad_initial_level
// <false"> Low
// <true"> High
true);
// Set pin direction to output
gpio_set_pin_direction(A3, GPIO_DIRECTION_OUT);
}
void SPI_0_CLOCK_init(void) {

View File

@@ -37,10 +37,18 @@ void watch_disable_spi(void) {
spi_io = NULL;
}
void watch_spi_send(uint8_t *buf, uint16_t length) {
io_write(spi_io, buf, length);
bool watch_spi_write(const uint8_t *buf, uint16_t length) {
return !!io_write(spi_io, buf, length);
}
void watch_spi_receive(uint8_t *buf, uint16_t length) {
io_read(spi_io, buf, length);
bool watch_spi_read(uint8_t *buf, uint16_t length) {
return !!io_read(spi_io, buf, length);
}
bool watch_spi_transfer(const uint8_t *data_out, uint8_t *data_in, uint16_t length) {
struct spi_xfer xfer;
xfer.txbuf = (uint8_t *)data_out;
xfer.rxbuf = data_in;
xfer.size = length;
return !!spi_m_sync_transfer(&SPI_0, &xfer);
}