diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-11-30 23:57:56 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-11-30 23:57:56 -0700 |
commit | 708ce9d264b271ac5eb4a64fcb1e814cbe378ac2 (patch) | |
tree | 9e98e5a8e1988686398ec2d4252b4060d9877ca0 /src/spi.c | |
parent | 7df284ea01ea0015770d626a1eb7ae7f62d48bb3 (diff) | |
download | ch573-708ce9d264b271ac5eb4a64fcb1e814cbe378ac2.tar.gz ch573-708ce9d264b271ac5eb4a64fcb1e814cbe378ac2.tar.bz2 ch573-708ce9d264b271ac5eb4a64fcb1e814cbe378ac2.zip |
Implement basic LEDs checkpoint.
Diffstat (limited to 'src/spi.c')
-rw-r--r-- | src/spi.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -7,9 +7,6 @@ #define MAX_SPI_FIFO 8 -#define SPI CH573_SPI__SPI_T_INTF -#define SPI0 ch573_spi__spi0 - #define GPIO_PORT_A ch573_gpio__gpio_port_a #define GPIO_PORT_B ch573_gpio__gpio_port_b #define GPIO_PORT CH573_GPIO__GPIO_PORT_T_INTF @@ -19,7 +16,7 @@ void enable_spi(void) { - GPIO_I.pin_alternate.pin_spi0.set(GPIO, OFF); + GPIO_I.pin_alternate.pin_spi0.set(GPIO, ON); GPIO_PORT.out.set(GPIO_PORT_A, ON, 12); GPIO_PORT.dir.set(GPIO_PORT_A, DIR_OUT, 12); @@ -34,6 +31,8 @@ void enable_spi(void) GPIO_PORT.out.set(GPIO_PORT_B, OFF, 14); GPIO_PORT.out.set(GPIO_PORT_B, ON, 12); + GPIO_PORT.pu.set(GPIO_PORT_B, ENABLED, 14); + GPIO_PORT.dir.set(GPIO_PORT_B, DIR_IN, 13); GPIO_PORT.dir.set(GPIO_PORT_B, DIR_IN, 15); GPIO_PORT.dir.set(GPIO_PORT_A, DIR_IN, 13); @@ -44,7 +43,7 @@ void enable_spi(void) // SPI.ctrl_mod.set(SPI0, 0xe0); // Set mosi and sck SPI.ctrl_mod.all_clear.set(SPI0, 0); - SPI.ctrl_mod.pin_enable.set(SPI0, 0x7); // Set mosi and sck + SPI.ctrl_mod.pin_enable.set(SPI0, 0x2); // Set mosi and sck SPI.ctrl_cfg.auto_if.set(SPI0, 1); SPI.ctrl_cfg.dma_enable.set(SPI0, OFF); } @@ -62,8 +61,11 @@ void enable_spi(void) void dma_transfer(void* output_buffer, size_t len) { // Clear everything. - SPI.ctrl_mod.all_clear.set(SPI0, 1); - SPI.ctrl_mod.all_clear.set(SPI0, 0); + // SPI.ctrl_mod.all_clear.set(SPI0, 1); + // SPI.ctrl_mod.all_clear.set(SPI0, 0); + // SPI.ctrl_cfg.dma_enable.set(SPI0, OFF); + + // printf("Start DMA: %p, %zu\n", output_buffer, len); SPI.ctrl_mod.fifo_dir.set(SPI0, FIFO_DIR_OUTPUT); SPI.dma_beg.set(SPI0, (uint32_t)output_buffer); |