From fdc1facebf1d2818394b155a91b68e06db198728 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 5 Nov 2022 15:18:27 -0700 Subject: [PATCH] snekboard: Add samd21 SPI test function Just sends 'hello' Signed-off-by: Keith Packard --- src/snekboard/Makefile | 3 ++- src/snekboard/ao_pins.h | 2 +- src/snekboard/snekboard.c | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/snekboard/Makefile b/src/snekboard/Makefile index aacd132b..53a37c68 100644 --- a/src/snekboard/Makefile +++ b/src/snekboard/Makefile @@ -28,7 +28,8 @@ ALTOS_SRC = \ ao_panic.c \ ao_timer.c \ ao_mutex.c \ - ao_usb_samd21.c + ao_usb_samd21.c \ + ao_spi_samd21.c PRODUCT=SnekBoard PRODUCT_DEF=-DSNEKBOARD diff --git a/src/snekboard/ao_pins.h b/src/snekboard/ao_pins.h index 01cfed65..80b2cb77 100644 --- a/src/snekboard/ao_pins.h +++ b/src/snekboard/ao_pins.h @@ -42,6 +42,6 @@ #define AO_APBA_PRESCALER 1 #define HAS_SPI_0 1 -#define SPI_0_PA08_PA09_PA10_PA11 1 +#define SPI_0_PA08_PA09_PA10 1 #endif /* _AO_PINS_H_ */ diff --git a/src/snekboard/snekboard.c b/src/snekboard/snekboard.c index 19f5975c..09581aff 100644 --- a/src/snekboard/snekboard.c +++ b/src/snekboard/snekboard.c @@ -15,13 +15,34 @@ #include #include +#define SNEK_CS_PORT (&samd21_port_a) +#define SNEK_CS_PIN (11) +#define SNEK_SPI_INDEX AO_SPI_0_PA08_PA09_PA10 +#define SNEK_SPI_SPEED ao_spi_speed(1000000) + +static void +ao_spi_test(void) +{ + ao_spi_get_bit(SNEK_CS_PORT, SNEK_CS_PIN, SNEK_SPI_INDEX, SNEK_SPI_SPEED); + ao_spi_send("hello", 5, SNEK_SPI_INDEX); + ao_spi_put_bit(SNEK_CS_PORT, SNEK_CS_PIN, SNEK_SPI_INDEX); +} + +const struct ao_cmds ao_spi_cmds[] = { + { ao_spi_test, "s \0Send some bytes over spi" }, + { 0, NULL }, +}; + int main(void) { ao_led_init(); ao_clock_init(); ao_task_init(); ao_timer_init(); + ao_spi_init(); ao_usb_init(); + ao_cmd_register(ao_spi_cmds); + ao_spi_init_cs(&samd21_port_a, 1 << 11); /* analog 8 for CS */ ao_cmd_init(); ao_start_scheduler(); return 0; -- 2.30.2