From 330d6792c3942dc3dd357d6914260736565a4571 Mon Sep 17 00:00:00 2001 From: Xu Chun Guang <xuchunguang@espressif.com> Date: Fri, 26 Jul 2019 12:12:05 +0800 Subject: [PATCH] feat(spi): fix some bugs and restructure the spi driver and the demo --- components/esp8266/CMakeLists.txt | 1 + components/esp8266/Kconfig | 9 + components/esp8266/driver/hspi_logic_layer.c | 278 +++++++++++++++ components/esp8266/driver/spi.c | 272 +++++++++----- .../esp8266/include/driver/hspi_logic_layer.h | 88 +++++ components/esp8266/include/driver/spi.h | 10 +- examples/peripherals/spi/README.md | 272 ++++++++++++++ .../spi_master/CMakeLists.txt | 0 .../high_performance}/spi_master/Makefile | 0 .../spi_master/main/CMakeLists.txt | 0 .../spi_master/main/component.mk | 0 .../spi_master/main/spi_master_example_main.c | 331 ++++++++++++++++++ .../spi_master/sdkconfig.defaults | 7 + .../spi_slave/CMakeLists.txt | 0 .../high_performance}/spi_slave/Makefile | 0 .../spi_slave/main/CMakeLists.txt | 0 .../spi_slave/main/component.mk | 4 + .../spi_slave/main/spi_slave_example_main.c | 283 +++++++++++++++ .../spi_slave/sdkconfig.defaults | 5 + .../spi_master/CMakeLists.txt | 6 + .../normal_performance/spi_master/Makefile | 9 + .../spi_master/main/CMakeLists.txt | 3 + .../spi_master}/main/component.mk | 0 .../spi_master/main/spi_master_example_main.c | 251 +++++++++++++ .../spi_slave/CMakeLists.txt | 6 + .../spi/normal_performance/spi_slave/Makefile | 9 + .../spi_slave/main/CMakeLists.txt | 3 + .../spi_slave/main/component.mk | 3 + .../spi_slave/main/spi_slave_example_main.c | 109 ++++++ .../peripherals/spi/res/master_recv_data.png | Bin 0 -> 12579 bytes .../spi/res/master_recv_length.png | Bin 0 -> 10044 bytes examples/peripherals/spi/res/master_send.png | Bin 0 -> 71550 bytes .../peripherals/spi/res/master_send_data.png | Bin 0 -> 14505 bytes .../spi/res/master_send_length.png | Bin 0 -> 43809 bytes examples/peripherals/spi/res/slave_send.png | Bin 0 -> 61666 bytes examples/peripherals/spi_master/README.md | 82 ----- .../spi_master/main/spi_master_example_main.c | 175 --------- .../spi_master/wave_read_from_slave.png | Bin 38147 -> 0 bytes .../spi_master/wave_write_to_slave.png | Bin 35647 -> 0 bytes .../spi_oled/main/spi_oled_example_main.c | 8 +- examples/peripherals/spi_slave/README.md | 82 ----- .../spi_slave/main/spi_slave_example_main.c | 222 ------------ .../spi_slave/wave_read_from_slave.png | Bin 38147 -> 0 bytes .../spi_slave/wave_write_to_slave.png | Bin 35647 -> 0 bytes 44 files changed, 1868 insertions(+), 660 deletions(-) create mode 100644 components/esp8266/driver/hspi_logic_layer.c create mode 100644 components/esp8266/include/driver/hspi_logic_layer.h create mode 100644 examples/peripherals/spi/README.md rename examples/peripherals/{ => spi/high_performance}/spi_master/CMakeLists.txt (100%) rename examples/peripherals/{ => spi/high_performance}/spi_master/Makefile (100%) rename examples/peripherals/{ => spi/high_performance}/spi_master/main/CMakeLists.txt (100%) rename examples/peripherals/{ => spi/high_performance}/spi_master/main/component.mk (100%) create mode 100644 examples/peripherals/spi/high_performance/spi_master/main/spi_master_example_main.c create mode 100644 examples/peripherals/spi/high_performance/spi_master/sdkconfig.defaults rename examples/peripherals/{ => spi/high_performance}/spi_slave/CMakeLists.txt (100%) rename examples/peripherals/{ => spi/high_performance}/spi_slave/Makefile (100%) rename examples/peripherals/{ => spi/high_performance}/spi_slave/main/CMakeLists.txt (100%) create mode 100644 examples/peripherals/spi/high_performance/spi_slave/main/component.mk create mode 100644 examples/peripherals/spi/high_performance/spi_slave/main/spi_slave_example_main.c create mode 100644 examples/peripherals/spi/high_performance/spi_slave/sdkconfig.defaults create mode 100644 examples/peripherals/spi/normal_performance/spi_master/CMakeLists.txt create mode 100644 examples/peripherals/spi/normal_performance/spi_master/Makefile create mode 100644 examples/peripherals/spi/normal_performance/spi_master/main/CMakeLists.txt rename examples/peripherals/{spi_slave => spi/normal_performance/spi_master}/main/component.mk (100%) create mode 100644 examples/peripherals/spi/normal_performance/spi_master/main/spi_master_example_main.c create mode 100644 examples/peripherals/spi/normal_performance/spi_slave/CMakeLists.txt create mode 100644 examples/peripherals/spi/normal_performance/spi_slave/Makefile create mode 100644 examples/peripherals/spi/normal_performance/spi_slave/main/CMakeLists.txt create mode 100644 examples/peripherals/spi/normal_performance/spi_slave/main/component.mk create mode 100644 examples/peripherals/spi/normal_performance/spi_slave/main/spi_slave_example_main.c create mode 100644 examples/peripherals/spi/res/master_recv_data.png create mode 100644 examples/peripherals/spi/res/master_recv_length.png create mode 100644 examples/peripherals/spi/res/master_send.png create mode 100644 examples/peripherals/spi/res/master_send_data.png create mode 100644 examples/peripherals/spi/res/master_send_length.png create mode 100644 examples/peripherals/spi/res/slave_send.png delete mode 100644 examples/peripherals/spi_master/README.md delete mode 100644 examples/peripherals/spi_master/main/spi_master_example_main.c delete mode 100644 examples/peripherals/spi_master/wave_read_from_slave.png delete mode 100644 examples/peripherals/spi_master/wave_write_to_slave.png delete mode 100644 examples/peripherals/spi_slave/README.md delete mode 100644 examples/peripherals/spi_slave/main/spi_slave_example_main.c delete mode 100644 examples/peripherals/spi_slave/wave_read_from_slave.png delete mode 100644 examples/peripherals/spi_slave/wave_write_to_slave.png diff --git a/components/esp8266/CMakeLists.txt b/components/esp8266/CMakeLists.txt index 31783bda..4eaf46bd 100644 --- a/components/esp8266/CMakeLists.txt +++ b/components/esp8266/CMakeLists.txt @@ -46,6 +46,7 @@ else() "driver/i2s.c" "driver/pwm.c" "driver/spi.c" + "driver/hspi_logic_layer.c" "driver/uart.c" "driver/ir_tx.c" "driver/ir_rx.c" diff --git a/components/esp8266/Kconfig b/components/esp8266/Kconfig index b2f2d6ec..ee225c44 100644 --- a/components/esp8266/Kconfig +++ b/components/esp8266/Kconfig @@ -633,3 +633,12 @@ config ESP8266_PHY_MAX_WIFI_TX_POWER endmenu # PHY +menu HSPI +config ESP8266_HSPI_HIGH_THROUGHPUT + bool "Do some optimization to improve throughput" + default n + help + If enable this configuration, some spi api will be placed into iram. + And it will reduce iram memory. +endmenu # Driver + diff --git a/components/esp8266/driver/hspi_logic_layer.c b/components/esp8266/driver/hspi_logic_layer.c new file mode 100644 index 00000000..fbe7169e --- /dev/null +++ b/components/esp8266/driver/hspi_logic_layer.c @@ -0,0 +1,278 @@ + +#include <stdio.h> +#include <string.h> +#include <sys/time.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "freertos/event_groups.h" +#include "freertos/stream_buffer.h" +#include "ringbuf.h" + +#include "esp8266/spi_struct.h" +#include "esp8266/gpio_struct.h" +#include "esp_system.h" +#include "esp_log.h" + +#include "driver/gpio.h" +#include "driver/spi.h" +#include "driver/hspi_logic_layer.h" + +static const char *TAG = "hspi_logic"; +#define SPI_CHECK(a, str, ret_val) \ + do { \ + if (!(a)) { \ + ESP_LOGE(TAG,"%s(%d): %s", __FUNCTION__, __LINE__, str); \ + return (ret_val); \ + } \ + } while(0) + +typedef struct { + gpio_num_t trigger_pin; + uint8_t trigger_level; + bool is_sending; + bool is_blocking_recv; + uint32_t sending_len; + uint32_t recving_len; + StreamBufferHandle_t* tx_buffer; + StreamBufferHandle_t* rx_buffer; + + SemaphoreHandle_t semphor; + spi_event_callback_t event_cb; +} spi_logic_device_t; + +static spi_logic_device_t * spi_logic_device; + +static void IRAM_ATTR hspi_slave_event_callback(int event, void *arg) +{ + int x; + BaseType_t xHigherPriorityTaskWoken; + uint32_t status; + uint32_t trans_done; + uint32_t data[16]; + spi_trans_t trans; + uint16_t cmd = 0; + bool trigger_flag = false; + + switch (event) { + case SPI_TRANS_DONE_EVENT: { + gpio_set_level(spi_logic_device->trigger_pin, !spi_logic_device->trigger_level); + trans_done = *(uint32_t *)arg; + if (trans_done & SPI_SLV_RD_BUF_DONE) { + if (spi_logic_device->sending_len == 0) { + spi_logic_device->is_sending = false; + spi_logic_device->sending_len = xStreamBufferBytesAvailable(spi_logic_device->tx_buffer); + if (spi_logic_device->sending_len > 0) { + spi_slave_set_status(HSPI_HOST, (uint32_t*)&spi_logic_device->sending_len); + spi_logic_device->is_sending = true; + trigger_flag = true; + } + } else { + memset(&trans, 0x0, sizeof(trans)); + trans.cmd = &cmd; + trans.addr = NULL; + trans.bits.val = 0; + // In Slave mode, spi cmd must be longer than 3 bits and shorter than 16 bits + trans.bits.cmd = 8 * 1; + // In Slave mode, spi addr must be longer than 1 bits and shorter than 32 bits + trans.bits.addr = 8 * 1; + trans.bits.mosi = 0; + trans.miso = data; + trans.bits.miso = xStreamBufferReceiveFromISR(spi_logic_device->tx_buffer, data, 64, &xHigherPriorityTaskWoken); + if (trans.bits.miso != 0) { + spi_logic_device->sending_len -= trans.bits.miso; + trans.bits.miso <<= 3; + spi_trans(HSPI_HOST, &trans); + trigger_flag = true;; + } + } + } + + if (trans_done & SPI_SLV_WR_BUF_DONE) { + uint32_t len = spi_logic_device->recving_len; + if (len > 64) { + len = 64; + } + + if (len > 0) { + for (x = 0; x < 16; x++) { + data[x] = SPI1.data_buf[x]; + } + xStreamBufferSendFromISR(spi_logic_device->rx_buffer, (void *) data, len, &xHigherPriorityTaskWoken); + spi_logic_device->recving_len -= len; + } else { + ets_printf("remained %d\r\n", len); + } + + if (xStreamBufferSpacesAvailable(spi_logic_device->rx_buffer) >= 64) { + trigger_flag = true; + } else { + spi_logic_device->is_blocking_recv = true; + } + } + + if (trans_done & SPI_SLV_WR_STA_DONE) { + spi_slave_get_status(HSPI_HOST, &status); + spi_logic_device->recving_len = status; + uint32_t tx_size = xStreamBufferBytesAvailable(spi_logic_device->tx_buffer); + + if (spi_logic_device->recving_len > 0) { + trigger_flag = true; + } else if (tx_size > 0) { + if (spi_logic_device->is_sending == false) { + spi_slave_set_status(HSPI_HOST, &tx_size); + } + trigger_flag = true; + } + } + + if (trans_done & SPI_SLV_RD_STA_DONE) { + memset(&trans, 0x0, sizeof(trans)); + trans.cmd = &cmd; + trans.addr = NULL; + trans.bits.val = 0; + // In Slave mode, spi cmd must be longer than 3 bits and shorter than 16 bits + trans.bits.cmd = 8 * 1; + // In Slave mode, spi addr must be longer than 1 bits and shorter than 32 bits + trans.bits.addr = 8 * 1; + trans.bits.mosi = 0; + trans.miso = data; + trans.bits.miso = xStreamBufferReceiveFromISR(spi_logic_device->tx_buffer, data, 64, &xHigherPriorityTaskWoken); + if (trans.bits.miso != 0) { + spi_logic_device->sending_len -= trans.bits.miso; + trans.bits.miso <<= 3; + spi_trans(HSPI_HOST, &trans); + trigger_flag = true; + } + } + + if (trigger_flag) { + gpio_set_level(spi_logic_device->trigger_pin, spi_logic_device->trigger_level); + } + + if (spi_logic_device->event_cb) { + spi_logic_device->event_cb(event, arg); + } + + if (xHigherPriorityTaskWoken == pdTRUE) { + taskYIELD(); + } + } + break; + case SPI_DEINIT_EVENT: { + } + break; + } + +} + +uint32_t hspi_slave_logic_read_data(uint8_t*data, uint32_t len, TickType_t xTicksToWait) +{ + uint32_t ret = 0; + + ret = xStreamBufferReceive(spi_logic_device->rx_buffer, data, len, xTicksToWait); + if (spi_logic_device->is_blocking_recv) { + if (xStreamBufferBytesAvailable(spi_logic_device->rx_buffer) > 64) { + gpio_set_level(spi_logic_device->trigger_pin, spi_logic_device->trigger_level); + spi_logic_device->is_blocking_recv = false; + } + } + + return ret; +} + +uint32_t hspi_slave_logic_write_data(uint8_t*data, uint32_t len, TickType_t xTicksToWait) +{ + uint32_t ret = 0; + uint32_t avail_spaces = 0; + + if (!spi_logic_device->is_sending) { + portENTER_CRITICAL(); + avail_spaces = xStreamBufferSpacesAvailable(spi_logic_device->tx_buffer); + if (avail_spaces > len) { + avail_spaces = len; + } + ret = xStreamBufferSend(spi_logic_device->tx_buffer, data, avail_spaces, xTicksToWait); // + spi_logic_device->sending_len = xStreamBufferBytesAvailable(spi_logic_device->tx_buffer); + spi_slave_set_status(HSPI_HOST, (uint32_t*)&spi_logic_device->sending_len); + spi_logic_device->is_sending = true; + gpio_set_level(spi_logic_device->trigger_pin, spi_logic_device->trigger_level); + portEXIT_CRITICAL(); + } + + if (ret < len) { + ret += xStreamBufferSend(spi_logic_device->tx_buffer, data + ret, len - ret, xTicksToWait); + } + + return ret; +} + +esp_err_t hspi_slave_logic_device_create(gpio_num_t trigger_pin, uint32_t trigger_level,uint32_t tx_buffer_size, uint32_t rx_buffer_size) +{ + SPI_CHECK(GPIO_IS_VALID_GPIO(trigger_pin), "gpio num error", ESP_ERR_INVALID_ARG); + SPI_CHECK(tx_buffer_size != 0, "tx buffer error", ESP_ERR_INVALID_ARG); + SPI_CHECK(rx_buffer_size != 0, "rx buffer error", ESP_ERR_INVALID_ARG); + + gpio_config_t io_conf; + + if (spi_logic_device) { + hspi_slave_logic_device_delete(); + } + spi_logic_device = (spi_logic_device_t*)malloc(sizeof(spi_logic_device_t)); + assert(spi_logic_device); + + memset(spi_logic_device, 0x0, sizeof(spi_logic_device_t)); + spi_logic_device->tx_buffer = xStreamBufferCreate(tx_buffer_size,1); + if (!spi_logic_device->tx_buffer) { + free(spi_logic_device); + spi_logic_device = NULL; + return ESP_ERR_NO_MEM; + } + + spi_logic_device->rx_buffer = xStreamBufferCreate(rx_buffer_size,1); + if (!spi_logic_device->rx_buffer) { + vStreamBufferDelete(spi_logic_device->tx_buffer); + spi_logic_device->tx_buffer = NULL; + + free(spi_logic_device); + spi_logic_device = NULL; + return ESP_ERR_NO_MEM; + } + + spi_logic_device->trigger_pin = trigger_pin; + spi_logic_device->trigger_level = (trigger_level==1)?1:0; + + memset(&io_conf, 0x0, sizeof(io_conf)); + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_OUTPUT; + io_conf.pin_bit_mask = (1ULL << trigger_pin); + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + gpio_set_level(trigger_pin, !spi_logic_device->trigger_level); + + spi_get_event_callback(HSPI_HOST, &spi_logic_device->event_cb); + + spi_event_callback_t event_cb = hspi_slave_event_callback; + spi_set_event_callback(HSPI_HOST, &event_cb); + + return ESP_OK; +} + +esp_err_t hspi_slave_logic_device_delete(void) +{ + if (spi_logic_device == NULL) { + return ESP_ERR_INVALID_STATE; + } + + vStreamBufferDelete(spi_logic_device->tx_buffer); + spi_logic_device->tx_buffer = NULL; + + vStreamBufferDelete(spi_logic_device->rx_buffer); + spi_logic_device->rx_buffer = NULL; + + free(spi_logic_device); + spi_logic_device = NULL; + + return ESP_OK; +} diff --git a/components/esp8266/driver/spi.c b/components/esp8266/driver/spi.c index a7ce207c..2d0c5c5b 100644 --- a/components/esp8266/driver/spi.c +++ b/components/esp8266/driver/spi.c @@ -15,10 +15,9 @@ #include <stdio.h> #include <string.h> #include <stdint.h> - #include "FreeRTOS.h" +#include "freertos/task.h" #include "freertos/semphr.h" - #include "esp8266/eagle_soc.h" #include "esp8266/spi_struct.h" #include "esp8266/pin_mux_register.h" @@ -27,21 +26,45 @@ #include "esp_attr.h" #include "esp_err.h" #include "esp_log.h" +#include "esp_heap_caps.h" #include "rom/ets_sys.h" - #include "spi.h" + #define ENTER_CRITICAL() portENTER_CRITICAL() #define EXIT_CRITICAL() portEXIT_CRITICAL() +#define SPI_CHECK(a, str, ret_val) \ + do { \ + if (!(a)) { \ + ESP_LOGE(TAG,"%s(%d): %s", __FUNCTION__, __LINE__, str); \ + return (ret_val); \ + } \ + } while(0) + +#define portYIELD_FROM_ISR() taskYIELD() + +#ifndef CONFIG_ESP8266_HSPI_HIGH_THROUGHPUT +#define ENTER_CRITICAL_HIGH_THROUGHPUT() ENTER_CRITICAL() +#define EXIT_CRITICAL_HIGH_THROUGHPUT() EXIT_CRITICAL() +#define SPI_HIGH_THROUGHPUT_ATTR +#define SPI_CHECK_HIGH_THROUGHPUT(a, str, ret_val) SPI_CHECK(a, str, ret_val) + +#else +#define SPI_HIGH_THROUGHPUT_ATTR IRAM_ATTR +#define ENTER_CRITICAL_HIGH_THROUGHPUT() do{} while(0) +#define EXIT_CRITICAL_HIGH_THROUGHPUT() do{} while(0) + +#define SPI_CHECK_HIGH_THROUGHPUT(a, str, ret_val) \ + do { \ + if (!(a)) { \ + ets_printf("%s(%d): %s", __FUNCTION__, __LINE__, str); \ + return (ret_val); \ + } \ + } while(0) +#endif static const char *TAG = "spi"; -#define SPI_CHECK(a, str, ret_val) \ - if (!(a)) { \ - ESP_LOGE(TAG,"%s(%d): %s", __FUNCTION__, __LINE__, str); \ - return (ret_val); \ - } - #define spi_intr_enable() _xt_isr_unmask(1 << ETS_SPI_INUM) #define spi_intr_disable() _xt_isr_mask(1 << ETS_SPI_INUM) #define spi_intr_register(a, b) _xt_isr_attach(ETS_SPI_INUM, (a), (b)) @@ -56,6 +79,8 @@ typedef struct { spi_interface_t interface; SemaphoreHandle_t trans_mux; spi_event_callback_t event_cb; + spi_intr_enable_t intr_enable; + uint32_t *buf; } spi_object_t; static spi_object_t *spi_object[SPI_NUM_MAX] = {NULL, NULL}; @@ -164,6 +189,8 @@ esp_err_t spi_set_intr_enable(spi_host_t host, spi_intr_enable_t *intr_enable) SPI[host]->slave.trans_done = false; EXIT_CRITICAL(); + spi_object[host]->intr_enable.val = intr_enable->val; + return ESP_OK; } @@ -209,16 +236,25 @@ esp_err_t spi_set_mode(spi_host_t host, spi_mode_t *mode) // Set to Slave mode SPI[host]->pin.slave_mode = true; SPI[host]->slave.slave_mode = true; - SPI[host]->user.usr_miso_highpart = true; + SPI[host]->user.usr_mosi_highpart = false; + SPI[host]->user.usr_miso_highpart = false; + SPI[host]->user.usr_addr = 1; // MOSI signals are delayed by APB_CLK(80MHz) mosi_delay_num cycles SPI[host]->ctrl2.mosi_delay_num = 2; SPI[host]->ctrl2.miso_delay_num = 0; + SPI[host]->slave.wr_rd_buf_en = 1; SPI[host]->slave.wr_rd_sta_en = 1; SPI[host]->slave1.status_bitlen = 31; SPI[host]->slave1.status_readback = 0; - // Put the slave's miso on the highpart, so you can only send 256bits + // Put the slave's miso on the highpart, so you can only send 512bits // In Slave mode miso, mosi length is the same - SPI[host]->slave1.buf_bitlen = 255; + SPI[host]->slave1.buf_bitlen = 511; + SPI[host]->slave1.wr_addr_bitlen = 7; + SPI[host]->slave1.rd_addr_bitlen = 7; + SPI[host]->user1.usr_addr_bitlen = 7; + SPI[host]->user1.usr_miso_bitlen = 31; + SPI[host]->user1.usr_mosi_bitlen = 31; + SPI[host]->user2.usr_command_bitlen = 7; SPI[host]->cmd.usr = 1; } @@ -231,6 +267,7 @@ esp_err_t spi_set_mode(spi_host_t host, spi_mode_t *mode) SPI[host]->ctrl.fread_dio = false; SPI[host]->ctrl.fread_qio = false; SPI[host]->ctrl.fastrd_mode = true; + SPI[host]->slave.sync_reset = 1; EXIT_CRITICAL(); return ESP_OK; @@ -396,71 +433,81 @@ esp_err_t spi_slave_get_status(spi_host_t host, uint32_t *status) return ESP_OK; } -esp_err_t spi_slave_set_status(spi_host_t host, uint32_t *status) +esp_err_t SPI_HIGH_THROUGHPUT_ATTR spi_slave_set_status(spi_host_t host, uint32_t *status) { - SPI_CHECK(host < SPI_NUM_MAX, "host num error", ESP_ERR_INVALID_ARG); - SPI_CHECK(spi_object[host], "spi has not been initialized yet", ESP_FAIL); - SPI_CHECK(SPI_SLAVE_MODE == spi_object[host]->mode, "this function must used by spi slave mode", ESP_FAIL); - SPI_CHECK(status, "parameter pointer is empty", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(host < SPI_NUM_MAX, "host num error", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(spi_object[host], "spi has not been initialized yet", ESP_FAIL); + SPI_CHECK_HIGH_THROUGHPUT(SPI_SLAVE_MODE == spi_object[host]->mode, "this function must used by spi slave mode", ESP_FAIL); + SPI_CHECK_HIGH_THROUGHPUT(status, "parameter pointer is empty", ESP_ERR_INVALID_ARG); - ENTER_CRITICAL(); + ENTER_CRITICAL_HIGH_THROUGHPUT(); SPI[host]->rd_status.val = *status; - EXIT_CRITICAL(); + EXIT_CRITICAL_HIGH_THROUGHPUT(); return ESP_OK; } -static esp_err_t spi_master_trans(spi_host_t host, spi_trans_t trans) +static esp_err_t SPI_HIGH_THROUGHPUT_ATTR spi_master_trans(spi_host_t host, spi_trans_t *trans) { - SPI_CHECK(trans.bits.cmd <= 16, "spi cmd must be shorter than 16 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.addr <= 32, "spi addr must be shorter than 32 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.mosi <= 512, "spi mosi must be shorter than 512 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.miso <= 512, "spi miso must be shorter than 512 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.cmd <= 16, "spi cmd must be shorter than 16 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.addr <= 32, "spi addr must be shorter than 32 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.mosi <= 512, "spi mosi must be shorter than 512 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.miso <= 512, "spi miso must be shorter than 512 bits", ESP_ERR_INVALID_ARG); int x, y; // Waiting for an incomplete transfer while (SPI[host]->cmd.usr); - ENTER_CRITICAL(); + ENTER_CRITICAL_HIGH_THROUGHPUT(); // Set the cmd length and transfer cmd - if (trans.bits.cmd && trans.cmd) { + if (trans->bits.cmd && trans->cmd) { SPI[host]->user.usr_command = 1; - SPI[host]->user2.usr_command_bitlen = trans.bits.cmd - 1; - SPI[host]->user2.usr_command_value = *trans.cmd; + SPI[host]->user2.usr_command_bitlen = trans->bits.cmd - 1; + SPI[host]->user2.usr_command_value = *trans->cmd; } else { SPI[host]->user.usr_command = 0; } // Set addr length and transfer addr - if (trans.bits.addr && trans.addr) { + if (trans->bits.addr && trans->addr) { SPI[host]->user.usr_addr = 1; - SPI[host]->user1.usr_addr_bitlen = trans.bits.addr - 1; - SPI[host]->addr = *trans.addr; + SPI[host]->user1.usr_addr_bitlen = trans->bits.addr - 1; + SPI[host]->addr = *trans->addr; } else { SPI[host]->user.usr_addr = 0; } // Set mosi length and transmit mosi - if (trans.bits.mosi && trans.mosi) { + if (trans->bits.mosi && trans->mosi) { SPI[host]->user.usr_mosi = 1; - SPI[host]->user1.usr_mosi_bitlen = trans.bits.mosi - 1; - - for (x = 0; x < trans.bits.mosi; x += 32) { - y = x / 32; - SPI[host]->data_buf[y] = trans.mosi[y]; + SPI[host]->user1.usr_mosi_bitlen = trans->bits.mosi - 1; + if ((uint32_t)(trans->mosi) % 4 == 0) { + for (x = 0; x < trans->bits.mosi; x += 32) { + y = x / 32; + SPI[host]->data_buf[y] = trans->mosi[y]; + } + } else { + ESP_LOGW(TAG,"Using unaligned data may reduce transmission efficiency"); + memset(spi_object[host]->buf, 0, sizeof(uint32_t) * 16); + memcpy(spi_object[host]->buf, trans->mosi, trans->bits.mosi / 8 + (trans->bits.mosi % 8) ? 1 : 0); + for (x = 0; x < trans->bits.mosi; x += 32) { + y = x / 32; + SPI[host]->data_buf[y] = spi_object[host]->buf[y]; + } } + } else { SPI[host]->user.usr_mosi = 0; } // Set the length of the miso - if (trans.bits.miso && trans.miso) { + if (trans->bits.miso && trans->miso) { SPI[host]->user.usr_miso = 1; - SPI[host]->user1.usr_miso_bitlen = trans.bits.miso - 1; + SPI[host]->user1.usr_miso_bitlen = trans->bits.miso - 1; } else { SPI[host]->user.usr_miso = 0; } @@ -474,74 +521,98 @@ static esp_err_t spi_master_trans(spi_host_t host, spi_trans_t trans) SPI[host]->cmd.usr = 1; // Receive miso data - if (trans.bits.miso && trans.miso) { + if (trans->bits.miso && trans->miso) { while (SPI[host]->cmd.usr); - for (x = 0; x < trans.bits.miso; x += 32) { - y = x / 32; - trans.miso[y] = SPI[host]->data_buf[y]; + if ((uint32_t)(trans->miso) % 4 == 0) { + for (x = 0; x < trans->bits.miso; x += 32) { + y = x / 32; + trans->miso[y] = SPI[host]->data_buf[y]; + } + } else { + ESP_LOGW(TAG,"Using unaligned data may reduce transmission efficiency"); + memset(spi_object[host]->buf, 0, sizeof(uint32_t) * 16); + for (x = 0; x < trans->bits.miso; x += 32) { + y = x / 32; + spi_object[host]->buf[y] = SPI[host]->data_buf[y]; + } + memcpy(trans->miso, spi_object[host]->buf, trans->bits.miso / 8 + (trans->bits.miso % 8) ? 1 : 0); } } - EXIT_CRITICAL(); + EXIT_CRITICAL_HIGH_THROUGHPUT(); return ESP_OK; } -static esp_err_t spi_slave_trans(spi_host_t host, spi_trans_t trans) +static esp_err_t SPI_HIGH_THROUGHPUT_ATTR spi_slave_trans(spi_host_t host, spi_trans_t *trans) { - SPI_CHECK(trans.bits.cmd >= 3 && trans.bits.cmd <= 16, "spi cmd must be longer than 3 bits and shorter than 16 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.addr >= 1 && trans.bits.addr <= 32, "spi addr must be longer than 1 bits and shorter than 32 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.miso <= 256, "spi miso must be shorter than 256 bits", ESP_ERR_INVALID_ARG); - SPI_CHECK(trans.bits.mosi <= 256, "spi mosi must be shorter than 256 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.cmd >= 3 && trans->bits.cmd <= 16, "spi cmd must be longer than 3 bits and shorter than 16 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.addr >= 1 && trans->bits.addr <= 32, "spi addr must be longer than 1 bits and shorter than 32 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.miso <= 512, "spi miso must be shorter than 512 bits", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.mosi <= 512, "spi mosi must be shorter than 512 bits", ESP_ERR_INVALID_ARG); int x, y; - ENTER_CRITICAL(); + ENTER_CRITICAL_HIGH_THROUGHPUT(); // Set cmd length and receive cmd - SPI[host]->user2.usr_command_bitlen = trans.bits.cmd - 1; + SPI[host]->user2.usr_command_bitlen = trans->bits.cmd - 1; - if (trans.cmd) { - *trans.cmd = SPI[host]->user2.usr_command_value; + if (trans->cmd) { + *trans->cmd = SPI[host]->user2.usr_command_value; } // Set addr length and transfer addr - SPI[host]->slave1.wr_addr_bitlen = trans.bits.addr - 1; - SPI[host]->slave1.rd_addr_bitlen = trans.bits.addr - 1; + SPI[host]->slave1.wr_addr_bitlen = trans->bits.addr - 1; + SPI[host]->slave1.rd_addr_bitlen = trans->bits.addr - 1; - if (trans.addr) { - *trans.addr = SPI[host]->addr; + if (trans->addr) { + *trans->addr = SPI[host]->addr; } // Set the length of the miso and transfer the miso - if (trans.bits.miso && trans.miso) { - for (x = 0; x < trans.bits.miso; x += 32) { - y = x / 32; - SPI[host]->data_buf[y + 8] = trans.miso[y]; + if (trans->bits.miso && trans->miso) { + if ((uint32_t)(trans->miso) % 4 == 0) { + for (x = 0; x < trans->bits.miso; x += 32) { + y = x / 32; + SPI[host]->data_buf[y] = trans->miso[y]; + } + } else { + ESP_LOGW(TAG,"Using unaligned data may reduce transmission efficiency"); + memset(spi_object[host]->buf, 0, sizeof(uint32_t) * 16); + memcpy(spi_object[host]->buf, trans->miso, trans->bits.miso / 8 + (trans->bits.miso % 8) ? 1 : 0); + for (x = 0; x < trans->bits.miso; x += 32) { + y = x / 32; + SPI[host]->data_buf[y] = spi_object[host]->buf[y]; + } } } - // Call the event callback function to send a transfer start event - if (spi_object[host]->event_cb) { - spi_object[host]->event_cb(SPI_TRANS_START_EVENT, NULL); - } - // Receive mosi data - if (trans.bits.mosi && trans.mosi) { - for (x = 0; x < trans.bits.mosi; x += 32) { - y = x / 32; - trans.mosi[y] = SPI[host]->data_buf[y]; + if (trans->bits.mosi && trans->mosi) { + if ((uint32_t)(trans->mosi) % 4 == 0) { + for (x = 0; x < trans->bits.mosi; x += 32) { + y = x / 32; + trans->mosi[y] = SPI[host]->data_buf[y]; + } + } else { + ESP_LOGW(TAG,"Using unaligned data may reduce transmission efficiency"); + memset(spi_object[host]->buf, 0, sizeof(uint32_t) * 16); + for (x = 0; x < trans->bits.mosi; x += 32) { + y = x / 32; + spi_object[host]->buf[y] = SPI[host]->data_buf[y]; + } + memcpy(trans->mosi, spi_object[host]->buf, trans->bits.mosi / 8 + (trans->bits.mosi % 8) ? 1 : 0); } } - EXIT_CRITICAL(); + EXIT_CRITICAL_HIGH_THROUGHPUT(); return ESP_OK; } -static esp_err_t spi_trans_static(spi_host_t host, spi_trans_t trans) +static esp_err_t SPI_HIGH_THROUGHPUT_ATTR spi_trans_static(spi_host_t host, spi_trans_t *trans) { int ret; - if (SPI_MASTER_MODE == spi_object[host]->mode) { ret = spi_master_trans(host, trans); } else { @@ -551,17 +622,30 @@ static esp_err_t spi_trans_static(spi_host_t host, spi_trans_t trans) return ret; } -esp_err_t spi_trans(spi_host_t host, spi_trans_t trans) +esp_err_t SPI_HIGH_THROUGHPUT_ATTR spi_trans(spi_host_t host, spi_trans_t *trans) { - SPI_CHECK(host < SPI_NUM_MAX, "host num error", ESP_ERR_INVALID_ARG); - SPI_CHECK(spi_object[host], "spi has not been initialized yet", ESP_FAIL); - SPI_CHECK(trans.bits.val, "trans bits is empty", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(host < SPI_NUM_MAX, "host num error", ESP_ERR_INVALID_ARG); + SPI_CHECK_HIGH_THROUGHPUT(spi_object[host], "spi has not been initialized yet", ESP_FAIL); + SPI_CHECK_HIGH_THROUGHPUT(trans->bits.val, "trans bits is empty", ESP_ERR_INVALID_ARG); int ret; - - xSemaphoreTake(spi_object[host]->trans_mux, portMAX_DELAY); - ret = spi_trans_static(host, trans); - xSemaphoreGive(spi_object[host]->trans_mux); + if (xPortInIsrContext()) { + /* In ISR Context */ + BaseType_t higher_task_woken = false; + if (xSemaphoreTakeFromISR(spi_object[host]->trans_mux, NULL) != pdTRUE) { + return ESP_FAIL; + } + ret = spi_trans_static(host, trans); + xSemaphoreGiveFromISR(spi_object[host]->trans_mux, &higher_task_woken); + if (higher_task_woken) { + portYIELD_FROM_ISR(); + } + } + else { + xSemaphoreTake(spi_object[host]->trans_mux, portMAX_DELAY); + ret = spi_trans_static(host, trans); + xSemaphoreGive(spi_object[host]->trans_mux); + } return ret; } @@ -569,7 +653,6 @@ static IRAM_ATTR void spi_intr(void *arg) { spi_host_t host; uint32_t trans_done; - if (READ_PERI_REG(DPORT_SPI_INT_STATUS_REG) & DPORT_SPI_INT_STATUS_SPI0) { // DPORT_SPI_INT_STATUS_SPI0 trans_done = SPI0.slave.val & 0x1F; SPI0.slave.val &= ~0x3FF; @@ -583,7 +666,9 @@ static IRAM_ATTR void spi_intr(void *arg) } if (spi_object[host]) { - if (spi_object[host]->event_cb) { + // Hardware has no interrupt flag, which can be generated by software. + trans_done &= spi_object[host]->intr_enable.val; + if (spi_object[host]->event_cb && trans_done != 0) { spi_object[host]->event_cb(SPI_TRANS_DONE_EVENT, &trans_done); } } @@ -621,7 +706,10 @@ esp_err_t spi_deinit(spi_host_t host) if (spi_object[host]->trans_mux) { vSemaphoreDelete(spi_object[host]->trans_mux); } - free(spi_object[host]); + heap_caps_free(spi_object[host]->buf); + spi_object[host]->buf = NULL; + + heap_caps_free(spi_object[host]); spi_object[host] = NULL; return ESP_OK; @@ -633,20 +721,25 @@ esp_err_t spi_init(spi_host_t host, spi_config_t *config) SPI_CHECK(host > CSPI_HOST, "CSPI_HOST can't support now", ESP_FAIL); SPI_CHECK(NULL == spi_object[host], "spi has been initialized", ESP_FAIL); - spi_object[host] = (spi_object_t *)malloc(sizeof(spi_object_t)); + spi_object[host] = (spi_object_t *)heap_caps_malloc(sizeof(spi_object_t), MALLOC_CAP_8BIT); SPI_CHECK(spi_object[host], "malloc fail", ESP_ERR_NO_MEM); spi_object[host]->trans_mux = xSemaphoreCreateMutex(); - if (NULL == spi_object[host]->trans_mux) { +#ifdef CONFIG_ESP8266_HSPI_HIGH_THROUGHPUT + spi_object[host]->buf = (uint32_t *)heap_caps_malloc(sizeof(uint32_t) * 16, MALLOC_CAP_8BIT); +#else + spi_object[host]->buf = (uint32_t *)heap_caps_malloc(sizeof(uint32_t) * 16, MALLOC_CAP_32BIT); +#endif + if (NULL == spi_object[host]->trans_mux || NULL == spi_object[host]->buf) { spi_deinit(host); - SPI_CHECK(false, "Semaphore create fail", ESP_ERR_NO_MEM); + SPI_CHECK(false, "no memory", ESP_ERR_NO_MEM); } uint16_t dummy_bitlen = 0; - spi_set_event_callback(host, &config->event_cb); spi_set_mode(host, &config->mode); spi_set_interface(host, &config->interface); spi_set_clk_div(host, &config->clk_div); spi_set_dummy(host, &dummy_bitlen); + spi_set_intr_enable(host, &config->intr_enable); spi_intr_register(spi_intr, NULL); spi_intr_enable(); @@ -654,6 +747,5 @@ esp_err_t spi_init(spi_host_t host, spi_config_t *config) if (spi_object[host]->event_cb) { spi_object[host]->event_cb(SPI_INIT_EVENT, NULL); } - return ESP_OK; -} \ No newline at end of file +} diff --git a/components/esp8266/include/driver/hspi_logic_layer.h b/components/esp8266/include/driver/hspi_logic_layer.h new file mode 100644 index 00000000..99fd1d99 --- /dev/null +++ b/components/esp8266/include/driver/hspi_logic_layer.h @@ -0,0 +1,88 @@ +// Copyright 2018-2025 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include <stdint.h> +#include "esp_err.h" +#include "driver/gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Receive SPI data + * + * @param data Data buffer to receive + * @param len Data length + * @param xTicksToWait Ticks to wait until receive data; use portMAX_DELAY to + * never time out. + * @return + * - Actual length received + */ +uint32_t hspi_slave_logic_read_data(uint8_t*data, uint32_t len, TickType_t xTicksToWait); + +/** + * @brief Send SPI data + * + * @param data Data buffer to send + * @param len Data length + * @param xTicksToWait Ticks to wait until send data; use portMAX_DELAY to + * never time out. + * @return + * - Actual length received + */ +uint32_t hspi_slave_logic_write_data(uint8_t*data, uint32_t len, TickType_t xTicksToWait); + +/** + * @brief Create a SPI device to transmit SPI data + * + * @param trigger_pin The pin used for handshake + * @param trigger_level The number of bytes that must be in the stream + * buffer before a task that is blocked on the stream buffer to wait for data is + * moved out of the blocked state. For example, if a task is blocked on a read + * of an empty stream buffer that has a trigger level of 1 then the task will be + * unblocked when a single byte is written to the buffer or the task's block + * time expires. As another example, if a task is blocked on a read of an empty + * stream buffer that has a trigger level of 10 then the task will not be + * unblocked until the stream buffer contains at least 10 bytes or the task's + * block time expires. If a reading task's block time expires before the + * trigger level is reached then the task will still receive however many bytes + * are actually available. Setting a trigger level of 0 will result in a + * trigger level of 1 being used. It is not valid to specify a trigger level + * that is greater than the buffer size. + * @param tx_buffer_size The total number of bytes the send stream buffer will be + * able to hold at any one time. + * @param rx_buffer_size The total number of bytes the receive stream buffer will be + * able to hold at any one time. + * + * @return + * - ESP_OK Success + * - ESP_ERR_NO_MEM No memory + */ +esp_err_t hspi_slave_logic_device_create(gpio_num_t trigger_pin, uint32_t trigger_level,uint32_t tx_buffer_size, uint32_t rx_buffer_size); + +/** + * @brief Delete the SPI slave bus + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_STATE SPI slave already deleted + */ +esp_err_t hspi_slave_logic_device_delete(void); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/components/esp8266/include/driver/spi.h b/components/esp8266/include/driver/spi.h index 932dffd9..b902caa7 100644 --- a/components/esp8266/include/driver/spi.h +++ b/components/esp8266/include/driver/spi.h @@ -36,7 +36,7 @@ extern "C" { #define SPI_BYTE_ORDER_LSB_FIRST 0 /* SPI default bus interface parameter definition */ -#define SPI_DEFAULT_INTERFACE 0x1F0 /* CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 */ +#define SPI_DEFAULT_INTERFACE 0x1C0 /* CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:0, BYTE_TX_ORDER:0, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 */ /* SPI master default interrupt enable definition */ #define SPI_MASTER_DEFAULT_INTR_ENABLE 0x10 /* TRANS_DONE: true, WRITE_STATUS: false, READ_STATUS: false, WRITE_BUFFER: false, READ_BUFFER: false */ @@ -140,8 +140,8 @@ typedef union { typedef struct { uint16_t *cmd; /*!< SPI transmission command */ uint32_t *addr; /*!< SPI transmission address */ - uint32_t *mosi; /*!< SPI transmission MOSI buffer */ - uint32_t *miso; /*!< SPI transmission MISO buffer */ + uint32_t *mosi; /*!< SPI transmission MOSI buffer, in order to improve the transmission efficiency, it is recommended that the external incoming data is (uint32_t *) type data, do not use other type data. */ + uint32_t *miso; /*!< SPI transmission MISO buffer, in order to improve the transmission efficiency, it is recommended that the external incoming data is (uint32_t *) type data, do not use other type data. */ union { struct { uint32_t cmd: 5; /*!< SPI transmission command bits */ @@ -403,14 +403,14 @@ esp_err_t spi_slave_set_status(spi_host_t host, uint32_t *status); * - CSPI_HOST SPI0 * - HSPI_HOST SPI1 * - * @param trans Transmission parameter structure + * @param trans Pointer to transmission parameter structure * * @return * - ESP_OK Success * - ESP_ERR_INVALID_ARG Parameter error * - ESP_FAIL spi has not been initialized yet */ -esp_err_t spi_trans(spi_host_t host, spi_trans_t trans); +esp_err_t spi_trans(spi_host_t host, spi_trans_t *trans); /** * @brief Deinit the spi diff --git a/examples/peripherals/spi/README.md b/examples/peripherals/spi/README.md new file mode 100644 index 00000000..1debbf63 --- /dev/null +++ b/examples/peripherals/spi/README.md @@ -0,0 +1,272 @@ +## SPI Demo User Guide + +### Overview + +Since the ESP8266 does not have DMA, it can only transmit 64 bytes per time at most. There are two demos of ESP8266 SPI driver, normal_performance and high_performance. + +* normal_performance demo is for the normal SPI speed use case. It provides SPI slave APIs, so users can implement the ESP8266 running as SPI slave easily. But in this demo, the software schedules between task and interrupt when SPI sending/receiving data, so it is a normal speed demo. +* high_performance demo is for the high SPI speed use case. In order to rise SPI speed, ESP8266 SPI slave sends/receives data in the interrupt. It is suggested that host MCU (SPI master) also handles SPI transmission in the interrupt, otherwise the SPI transmission speed will be decreased due to software scheduling. + +Both normal_performance and high_performance demo are for the SPI slave, user can implement one program of host MCU to communicate with those two demos. + +### Hardware Connection + +| Signal | Slave | Master | +| --------- | ------ | ------ | +| SCLK | GPIO14 | GPIO14 | +| MISO | GPIO12 | GPIO12 | +| MOSI | GPIO13 | GPIO13 | +| CS | GPIO15 | GPIO15 | +| HANDSHARK | GPIO4 | GPIO4 | +| GND | GND | GND | + +**Note:** + +* To run the firmware stored in flash, the GPIO15 needs to be low level when the ESP8266 starts up. So the power-on sequence can be `Master OFF -> Slave ON -> Master ON`. + + +# Software Introduction +### SPI Transmission Command + +Master communicates with the ESP8266 SPI AT in half-duplex mode. The command that master uses to communicates with the ESP8266 SPI AT is in the following format. + +| | Command(1byte)| Address(1byte) | Data(64byte) | +| :----: | :-----------: | :---------------: | :-----------: | +| Read Data | 0x3 | 0x0 | Actual length | +| Write Data | 0x2 | 0x0 | Actual length | + +Since the ESP8266 does not have SPI DMA, it can only transmit up to 64 bytes per time. + +Except the above read/write data commands, ESP8266 also has two 32bit status registers that the SPI master can access: one can be wrote by master and read by ESP8266, the other can be read by master and wrote by ESP8266. In this case, the master can transmit the data length information with these two 32bit status registers. + +| | Command(1byte) | Data(4byte) | +| :------: | :-----------: | --------------------------- | +| Read Status | 0x4 | Length of data that master read from ESP8266| +| Write Status | 0x1 | Length of data that master transmit to ESP8266 | + +**Note: When SPI master reads/writes status, it needs not to use the address bit.** So, the SPI master needs to implement read/write status and read/write data seperately. + + +### Master Sends Data to ESP8266 + +The work flow of master transmiting data to the ESP8266 (SPI slave) is as the following figure. + + + +1. Since there will be a conflict if both master and slave transmit data to each other at the same time. So, before the master transmiting data, it will check if the ESP8266 is transmitting data now. If it is, then the master will wait until the ESP8266's transmission completed. +2. The master writes the data length to the status register, indicates the length of data that it is going to transmit. +3. The ESP8266 will generate a WR\_STA_DONE interrupt, and pull up the GPIO\_HANDSHAKE pin to inform the master that it has got the data length information. +4. The master can send up to 64 bytes per time. If data is longer than 64 bytes, then it needs to be divided to several subpackets to send. +5. ESP8266 will store the received data into the SPI register, and generate a WR\_BUF\_DONE interrupt, and then pull up the GPIO\_HANDSHAKE pin to inform the master that it has received the previous data and the master can start the next transmission now. +6. The master has to wait for the interrupt of GPIO\_HANDSHAKE pin, which means ESP8266 received the data successfully, to start the next transmission. +7. After sent data, the master will check the software buffer to see if there is more data wait for sending. + * If there is, then the master will repeat the procedure starts from step 2. + * If there is not, then the master needs to write 0 to the status register, indicates that data sending completed. When ESP8266 reads the status 0, the ESP8266 stops pulling up the GPIO\_HANDSHAKE pin. + +### ESP8266 Sends Data to Master + + + +1. Before ESP8266 sends data, it will check if the master is sending data now. If it is, then the ESP8266 will wait until the master's transmission completed. +2. The ESP8266 copies data into a software buffer, writes the data length to the rd_status, and then pulls up the GPIO\_HANDSHAKE pin to inform the master to read data. +3. Master reads the data length from the status register, and generates a RD\_STA_DONE interrupt. +4. When ESP8266 gets the RD\_STA_DONE interrupt, it will read 64 bytes from the software buffer and write those 64 bytes to the SPI register, and then pull up the GPIO\_HANDSHAKE pin to inform the master to read data. +5. When the master gets the interrupt, it will read data through SPI. +6. ESP8266 generates RD\_BUF_DONE interrupt, and reads data (64 bytes at most) from the software buffer and write those data to the SPI register again, and then pull up the GPIO\_HANDSHAKE pin to inform the master to read data. +7. Repeat above steps until the software buffer is empty. When all data in software buffer sent, the ESP8266 will not pull up the master, but set the rd_status to be 0 instead. + +**Note:** + + * The streambuffer of ESP8266 and the ringbuffer of ESP32 are the software buffer to keep SPI data. If the SPI master is based on FreeRTOS, then it is suggested to use the FreeRTOS-provided streambuffer(which only available since FreeRTOS v10.01 and later versions). + +### HANDSHAKE Pin Introduction + +HANDSHAKE pin is to indicate the transmission completes, and it can be used to the transmission that starts by ESP8266(slave). + +1. When ESP8266 is ready to receive/send data, it will pull up the HANDSHAKE pin. Then the SPI master will read data from ESP8266 when it gets the interrupt. +2. After SPI master sent data, the master will block procedure to wait the HANDSHAKE pin interrupt. When ESP8266 read the data from SPI register, the ESP8266 will pull up the HANDSHAKE pin to inform the master to transmit next packet. + +### Test Result of SPI Communication Speed +One ESP8266 runs as the SPI master, another ESP8266 runs as the SPI slave, both of them are running in 160MHz and send 64 bytes per time. +The throughput test result of high_performance demo is as the following figure. + +| SPI Clock | master -> slave | slave -> master | +| --------- | --------------- | --------------- | +| 20M | 1.33MB/s | 1.31MB/s | +| 16M | 1.17MB/s | 1.13MB/s | +| 10M | 861KB/s | 845KB/s | + +The throughput test result of normal_performance demo is as the following figure. + +| SPI Clock | master -> slave | slave -> master | +| --------- | --------------- | --------------- | +| 20M | 645KB/s | 450KB/s | +| 16M | 606KB/s | 430KB/s | +| 10M | 510KB/s | 378KB/s | + +### Capture Packets +This is an example of SPI master sending “AT\r\n” and the ESP8266(slave) responding “AT\r\n”. The channel0 is SCLK, channel1 is MOSI, channel2 is MISO, channel3 is CS, channel4 is handshake pin. + +- SPI\_MASTER\_WRITE\_STATUS\_TO\_SLAVE + + + +Master sends command of data length, 0x01. And then the master sends the data length, 4. Handshake pin is low level in the initialization. + +- SPI\_MASTER\_WRITE\_DATA\_TO_SLAVE + + + +Master sends command of writing data, 0x02, following with 8bit address, 0x0. And then the master sends the 4bytes data. Handshake pin is high level during the communication. + +- SPI\_MASTER\_READ\_STATUS\_FROM_SLAVE + + + +Master sends command of reading data length, 0x04. The slave will respond the data length, 4. Handshake pin is high level during the communication. + +- SPI\_MASTER\_READ\_DATA\_FROM\_SLAVE + + + +Master sends command of reading data, 0x02, following with 8bit address, 0x0. And then the slave will respond the data that needs to be transmitted. + +## SPI demo 使用说明 + +### 简介 + +受限于 ESP8266 没有 DMA,并且每次只能传输最大 64bytes,我们使用了两个项目(normal_performance 和 high_performance)来表述 ESP8266 SPI 驱动的用法, + +其中 normal_performance 针对 SPI 速率要求不高的项目,我们封装了 SPI slave 的接口,在开发 ESP8266 作为slave 的项目时,只需要简单的接口调用即可使用,因为每次 SPI 收发均需要中断与 task 之间来回调度,因此速率较低。 + +high_performance 针对 SPI 速率要求高的场景,ESP8266 SPI slave 的收发均在中断中操作,为了尽可能提高传输速率, MCU 最好同样在中断中处理 SPI 传输,否则速率会因为频繁切换 task 而骤降。 + +两者的区别主要在 SPI slave 侧,对于 MCU 可以使用同一套程序。 + +### 硬件连接 + +- 接线: + +| Signal | Slave | Master | +| --------- | ------ | ------ | +| SCLK | GPIO14 | GPIO14 | +| MISO | GPIO12 | GPIO12 | +| MOSI | GPIO13 | GPIO13 | +| CS | GPIO15 | GPIO15 | +| HANDSHARK | GPIO4 | GPIO4 | +| GND | GND | GND | + +- 注意: + +在 ESP8266 上电后,需要保证一开机 GPIO15 处于低电平才能进入 flash 模式,所以开机顺序需要如下: + +``` +Master OFF -> Slave ON -> Master ON +``` + +# 软件介绍 + +### SPI 通信命令 + +MCU 在与 ESP8266 通信时采用半双工模式, MCU 通过使用不同的命令表示读数据或者写数据。数据格式如下所示: + +| | 命令(1byte) | 地址(1byte) | 数据长度(64byte) | +| :----: | :-----------: | ------------- | ------------------ | +| 读数据 | 0x3 | 0x0 | 实际长度 | +| 写数据 | 0x2 | 0x0 | 实际长度 | + +ESP8266 没有 SPI DMA, 所以一次最多只能传输 64 个字节。 + +除了收发数据命令之外,ESP8266 有两个 MCU 可访问的 32bit 寄存器(status), 其中一个 MCU 可写,而 ESP8266只可读,另外一个则与之相反。MCU 通过读写这两个 status 寄存器,以此实现传递数据长度信息。通信格式如下所示: + +| | 命令(1byte) | 数据长度(4byte) | +| :------: | :-----------: | --------------------------- | +| 读status | 0x4 | MCU 读取 ESP8266 传输的长度 | +| 写status | 0x1 | MCU 可写需要传输的长度 | + +需要注意的是,**MCU 读写 status 不需要使用地址位**,因此在 MCU 开发中需要将读写 status 与读写数据区分开。 + +### MCU 发送数据给 ESP8266 + +MCU 主动发送的流程如下: + + + +1. MCU 如果有数据需要发送,首先需要检测 ESP8266 是否正在发送数据(避免同时发送),MCU 需要等待 ESP8266 发送完毕才能传输 +2. MCU 首先需要向 status 里面写入本次需要发送的数据长度 +3. ESP8266 会产生 WR_STA_DONE 中断, ESP8266 会拉高管脚通知 MCU 已经获取到需要接收的数据长度 +4. MCU 可以一次发送最多 64bytes 的数据,如果数据超过 64bytes,需分多次发送 +5. ESP8266 接收导数据后, 会存储到 SPI 寄存器,并产生 WR_BUF_DONE 中断,ESP8266 会拉管脚通知 MCU 数据已经取出,可以继续发送 +6. MCU 必须等待 ESP8266 接收到数据产生的 GPIO 中断 (一次有效数据传输),之后才能继续传输 +7. 发送完数据之后 MCU 需要再查询发送的软件 buffer 是否还存在数据,如果存在数据,从第 2 步继续开始,否则需要额外再向 status 写入 0 , 以此来标明发送完毕, ESP8266 收到写入 status 0 后不再拉管脚 + +### ESP8266 发送数据给 MCU + +ESP8266 发送的流程与 MCU 发送的流程基本类似: + + + +1. ESP8266 如果有数据需要发送,首先需要检测 MCU 是否正在发送数据,ESP8266 需要等待 MCU 发送完毕 +2. ESP8266 会将数据全部拷贝到软件 buffer 中,并向 rd_status 中写入本次需要发送的数据长度,然后拉管脚通知 MCU 取数据 +3. MCU 读取 status 中的数据长度信息,读取 status 会产生 RD_STA_DONE 中断 +4. ESP8266 在 RD_STA_DONE 中断中会读取软件 buffer 中的 64个字节到 SPI 寄存器,拉管脚通知 MCU 读取数据 +5. MCU 在接收到 GPIO 中断后会发起一次 SPI 读数据传输 +6. ESP8266 产生 RD_BUF_DONE 中断,并从软件 buffer 中再读取最大 64 个字节的数据填充到 SPI 寄存器,并拉管脚通知 MCU 读取 +7. 如此循环,直到软件 buffer 中不再有数据,此时 ESP8266 不会再拉管脚通知 MCU,并且 ESP8266 会把 rd_status 置为0,读取完成 + +*备注:* ESP8266 所使用的 streambuffer 以及 ESP32 所使用的 ringbuffer 功能一致,用于数据的缓冲,对于 FreeRTOS 的 MCU,建议使用 FreeRTOS 自带的 streambuffer (需要 FreeRTOS 系统版本在 10.01及以上) + +### Handshake 线在 SPI-AT 中的作用 + +Handshake 线在 SPI 相互通信中需要保证传输数据完成,并担任 ESP8266 主动发起传输的任务,其主要作用体现在如下两点: + +1. ESP8266 在准备好接收/发送数据时将此针脚拉高,此时 MCU 会产生一个 GPIO 中断信号,MCU 在接收到中断信号后会读取 ESP8266 中的数据。 +2. MCU 在发送完数据之后需要堵塞等待 GPIO 中断信号,ESP8266 在将 SPI 寄存器中的数据取出后会拉高管脚,从而 MCU 会产生 GPIO 中断,之后 MCU 可以继续传输 + +### 测试速率 + +一个 ESP8266 作为 MCU 充当 SPI master, 另一个 ESP8266 作为 SPI slave,两者 CPU 同时跑在 160M , 每次发送 64bytes。 + +使用 high performance demo, 测试吞吐率结果如下: + +| SPI 时钟 | master -> slave | slave -> master | +| --------- | --------------- | --------------- | +| 20M | 1.33MB/s | 1.31MB/s | +| 16M | 1.17MB/s | 1.13MB/s | +| 10M | 861KB/s | 845KB/s | + +使用 normal performance demo, 测试吞吐率结果如下: + +| SPI 时钟 | master -> slave | slave -> master | +| --------- | --------------- | --------------- | +| 20M | 645KB/s | 450KB/s | +| 16M | 606KB/s | 430KB/s | +| 10M | 510KB/s | 378KB/s | + +### 抓包 + +抓包以 MCU 发送 AT\r\n , ESP8266 返回 AT\r\n 为例, 其中 channel0 为 SCLK , channel1 为 MOSI,channel2 为 MISO,channel3 为 CS,channel4 为 handshake 线 + +- SPI_MASTER_WRITE_STATUS_TO_SLAVE + + + +MCU 发送长度命令 0x01,后面跟着需要发送的数据长度 4,第一次发送时 handshake 为初始低电平。 + +- SPI_MASTER_WRITE_DATA_TO_SLAVE + + + +MCU 发送数据命令 0x02, 后跟 8bit 长的地址 0x0,后面跟上实际数据长度 4 字节的数据,注意在发送过程中 handshake 是一直拉高的。 + +- SPI_MASTER_READ_STATUS_FROM_SLAVE + + + +发送读取长度命令 0x04, slave 会返回长度信息 4, 在读取过程中 handshake 也是一直拉高的。 + +- SPI_MASTER_READ_DATA_FROM_SLAVE + + + +发送读取数据命令 0x03,后跟 8bit 长的地址 0x0, 之后就是 slave 返回的实际数据 diff --git a/examples/peripherals/spi_master/CMakeLists.txt b/examples/peripherals/spi/high_performance/spi_master/CMakeLists.txt similarity index 100% rename from examples/peripherals/spi_master/CMakeLists.txt rename to examples/peripherals/spi/high_performance/spi_master/CMakeLists.txt diff --git a/examples/peripherals/spi_master/Makefile b/examples/peripherals/spi/high_performance/spi_master/Makefile similarity index 100% rename from examples/peripherals/spi_master/Makefile rename to examples/peripherals/spi/high_performance/spi_master/Makefile diff --git a/examples/peripherals/spi_master/main/CMakeLists.txt b/examples/peripherals/spi/high_performance/spi_master/main/CMakeLists.txt similarity index 100% rename from examples/peripherals/spi_master/main/CMakeLists.txt rename to examples/peripherals/spi/high_performance/spi_master/main/CMakeLists.txt diff --git a/examples/peripherals/spi_master/main/component.mk b/examples/peripherals/spi/high_performance/spi_master/main/component.mk similarity index 100% rename from examples/peripherals/spi_master/main/component.mk rename to examples/peripherals/spi/high_performance/spi_master/main/component.mk diff --git a/examples/peripherals/spi/high_performance/spi_master/main/spi_master_example_main.c b/examples/peripherals/spi/high_performance/spi_master/main/spi_master_example_main.c new file mode 100644 index 00000000..7b2d5329 --- /dev/null +++ b/examples/peripherals/spi/high_performance/spi_master/main/spi_master_example_main.c @@ -0,0 +1,331 @@ +/* spi_master example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include <stdio.h> +#include <string.h> +#include <sys/time.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "freertos/stream_buffer.h" + +#include "esp8266/spi_struct.h" +#include "esp8266/gpio_struct.h" +#include "esp_system.h" +#include "esp_log.h" + +#include "driver/gpio.h" +#include "driver/spi.h" + +#include "time.h" + +static const char* TAG = "spi_master_example"; + +#define SPI_MASTER_HANDSHARK_GPIO 4 +#define SPI_MASTER_HANDSHARK_SEL (1ULL<<SPI_MASTER_HANDSHARK_GPIO) + +#define SPI_BUFFER_MAX_SIZE 4096 + +#define ESP_HSPI_MASTER_SEND // Define the macro is master send mode, delete will be master receive mode + +static StreamBufferHandle_t spi_master_send_ring_buf = NULL; +static StreamBufferHandle_t spi_master_recv_ring_buf = NULL; +static uint32_t transmit_len = 0; +static bool wait_recv_data = false; + +typedef enum { + SPI_NULL = 0, + SPI_WRITE, + SPI_READ +} spi_master_mode_t; + +static spi_master_mode_t intr_trans_mode = SPI_NULL; + +/* SPI master send length, format: 8bit command(value:1) + 32bit status length */ +static void IRAM_ATTR spi_master_send_length(uint32_t len) +{ + spi_trans_t trans; + uint16_t cmd = SPI_MASTER_WRITE_STATUS_TO_SLAVE_CMD; + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; + trans.bits.cmd = 8 * 1; + trans.bits.addr = 0; // transmit status do not use address bit + trans.bits.mosi = 8 * 4; // status length is 32bit + trans.cmd = &cmd; + trans.addr = NULL; + trans.mosi = &len; + spi_trans(HSPI_HOST, &trans); +} + +/* SPI master revecive length, format: 8bit command(value:4) + 32bit status length */ +static uint32_t IRAM_ATTR spi_master_get_length(void) +{ + spi_trans_t trans; + uint32_t len = 0; + uint16_t cmd = SPI_MASTER_READ_STATUS_FROM_SLAVE_CMD; + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; + trans.cmd = &cmd; + trans.miso = &len; + trans.addr = NULL; + trans.bits.cmd = 8 * 1; + trans.bits.miso = 8 * 4; + spi_trans(HSPI_HOST, &trans); + return len; +} + +/* SPI transmit data, format: 8bit command (read value: 3, write value: 4) + 8bit address(value: 0x0) + 64byte data +* For convenience, every time we send 64bytes, SPI SLAVE will determine how much data to read based on the status value +*/ +static void IRAM_ATTR spi_master_transmit(spi_master_mode_t trans_mode, uint32_t* data) +{ + spi_trans_t trans; + uint16_t cmd; + uint32_t addr = 0x0; + + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; // clear all bit + + if (trans_mode == SPI_WRITE) { + cmd = SPI_MASTER_WRITE_DATA_TO_SLAVE_CMD; + trans.bits.mosi = 8 * 64; // One time transmit only support 64bytes + trans.mosi = data; + } else if (trans_mode == SPI_READ) { + cmd = SPI_MASTER_READ_DATA_FROM_SLAVE_CMD; + trans.bits.miso = 8 * 64; + trans.miso = data; + } + + trans.bits.cmd = 8 * 1; + trans.bits.addr = 8 * 1; // transmit data will use 8bit address + trans.cmd = &cmd; + trans.addr = &addr; + + spi_trans(HSPI_HOST, &trans); +} + +static void IRAM_ATTR gpio_isr_handler(void* arg) +{ + BaseType_t xHigherPriorityTaskWoken = pdFALSE; + uint32_t read_len = 0; + uint32_t recv_actual_len = 0; + uint32_t transmit_data[16]; + + if (intr_trans_mode == SPI_NULL) { // Some data need to read or write??? + // have some data need to send ??? + if (xStreamBufferIsEmpty(spi_master_send_ring_buf) == pdFALSE) { + intr_trans_mode = SPI_WRITE; + transmit_len = xStreamBufferBytesAvailable(spi_master_send_ring_buf); + ESP_EARLY_LOGD(TAG, "Send len: %d\n", transmit_len); + spi_master_send_length(transmit_len); + return; + } + + // Check if there is any data to receive + transmit_len = spi_master_get_length(); + + if (transmit_len > 0) { + ESP_EARLY_LOGD(TAG, "Receive data len: %d\n", transmit_len); + intr_trans_mode = SPI_READ; + return; + } else { + ESP_EARLY_LOGE(TAG, "Nothing to do"); + return; + } + } + + read_len = transmit_len > 64 ? 64 : transmit_len; + + // SPI slave have some data want to transmit, read it + if (intr_trans_mode == SPI_READ) { + if (xStreamBufferSpacesAvailable(spi_master_recv_ring_buf) >= 64) { // Stream buffer not full, can be read agian + spi_master_transmit(SPI_READ, transmit_data); + recv_actual_len = xStreamBufferSendFromISR(spi_master_recv_ring_buf, (void*) transmit_data, read_len, &xHigherPriorityTaskWoken); + assert(recv_actual_len == read_len); + transmit_len -= read_len; + + if (transmit_len == 0) { + intr_trans_mode = SPI_NULL; + + /* When SPI slave sending data , maybe MCU also have some date wait for send */ + if (xStreamBufferIsEmpty(spi_master_send_ring_buf) == pdFALSE) { + GPIO.status_w1ts |= BIT(SPI_MASTER_HANDSHARK_GPIO); // Manual generate GPIO interrupts + } + } + } else { // stream buffer full, wait to be tacken out + wait_recv_data = true; + } + + + // MCU want to send data to ESP8266 + } else if (intr_trans_mode == SPI_WRITE) { + if (read_len > 0) { + recv_actual_len = xStreamBufferReceiveFromISR(spi_master_send_ring_buf, + (void*)transmit_data, + read_len, + &xHigherPriorityTaskWoken); + if (recv_actual_len != read_len) { + ESP_EARLY_LOGE(TAG, "Expect to send %d bytes, but only %d bytes", read_len, recv_actual_len); + return; + } + + spi_master_transmit(SPI_WRITE, transmit_data); + transmit_len -= read_len; + } else { + intr_trans_mode = SPI_NULL; + + if (xStreamBufferIsEmpty(spi_master_send_ring_buf) == pdFALSE) { + GPIO.status_w1ts |= BIT(SPI_MASTER_HANDSHARK_GPIO); // Manual generate GPIO interrupts + } else { + // if ring buffer is empty, send status=0 tell slave send done + spi_master_send_length(0); + } + } + + } + + if (xHigherPriorityTaskWoken == pdTRUE) { + taskYIELD(); + } +} + +#ifdef ESP_HSPI_MASTER_SEND +static void IRAM_ATTR spi_master_write_slave_task(void* arg) +{ +#define TEST_SEND_BUFFER_LEN 2048 + time_t start; + time_t end; + uint32_t total_len = 0; + uint8_t* buf = malloc(TEST_SEND_BUFFER_LEN); + memset(buf, 0x33, TEST_SEND_BUFFER_LEN); + vTaskDelay(5000 / portTICK_RATE_MS); + printf(" Test send\r\n"); + start = time(NULL); + + while (1) { + size_t xBytesSent = xStreamBufferSend(spi_master_send_ring_buf, (void*) buf, TEST_SEND_BUFFER_LEN, portMAX_DELAY); + + if (xBytesSent != TEST_SEND_BUFFER_LEN) { + ESP_LOGE(TAG, "Send error, len:%d", xBytesSent); + break; + } + + portENTER_CRITICAL(); + + if (intr_trans_mode == SPI_NULL) { + ESP_LOGI(TAG, "Manual generate GPIO interrupts"); + GPIO.status_w1ts |= BIT(SPI_MASTER_HANDSHARK_GPIO); + } + + portEXIT_CRITICAL(); + total_len += TEST_SEND_BUFFER_LEN; + + if (total_len > 10 * 1024 * 1024) { + end = time(NULL); + printf("send done, total len: %d, time: %lds\n", total_len, (end - start)); + break; + } + } + + vTaskDelete(NULL); +} +#else +uint32_t read_count = 0; + +static void spi_master_count_task(void* arg) +{ + uint32_t tmp_count = 0; + + while (1) { + printf("recv_count: %d , speed: %dB/s\n", read_count, ((read_count - tmp_count) / 2)); + tmp_count = read_count; + vTaskDelay(2000 / portTICK_RATE_MS); + } +} + +static void IRAM_ATTR spi_master_read_slave_task(void* arg) +{ + size_t xReceivedBytes; + uint8_t read_data[1024 + 1]; + + while (1) { + xReceivedBytes = xStreamBufferReceive(spi_master_recv_ring_buf, read_data, 1024, 2000 / portTICK_RATE_MS); + + if (xReceivedBytes != 0) { + for (int i = 0; i < xReceivedBytes; i++) { + if (read_data[i] != 0x44) { + printf("receive error data: %x\n", read_data[i]); + } + } + +#if 0 + read_data[xReceivedBytes] = '\0'; + printf("%s", read_data); + fflush(stdout); //Force to print even if have not '\n' +#else + read_count += xReceivedBytes; +#endif + } + // steam buffer full + if (wait_recv_data) { + if (xStreamBufferBytesAvailable(spi_master_recv_ring_buf) > 64) { + wait_recv_data = false; + GPIO.status_w1ts |= BIT(SPI_MASTER_HANDSHARK_GPIO); // Manual generate GPIO interrupts + } + } + } +} +#endif + +void app_main(void) +{ + spi_master_send_ring_buf = xStreamBufferCreate(SPI_BUFFER_MAX_SIZE, 1024); + spi_master_recv_ring_buf = xStreamBufferCreate(SPI_BUFFER_MAX_SIZE, 1); + + ESP_LOGI(TAG, "init gpio"); + gpio_config_t io_conf; + io_conf.intr_type = GPIO_INTR_POSEDGE; + io_conf.mode = GPIO_MODE_INPUT; + io_conf.pin_bit_mask = SPI_MASTER_HANDSHARK_SEL; + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + + gpio_install_isr_service(0); + gpio_isr_handler_add(SPI_MASTER_HANDSHARK_GPIO, gpio_isr_handler, (void*) SPI_MASTER_HANDSHARK_GPIO); + + ESP_LOGI(TAG, "init spi"); + spi_config_t spi_config; + // Load default interface parameters + // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 + spi_config.interface.val = SPI_DEFAULT_INTERFACE; + + // Load default interrupt enable + // TRANS_DONE: true, WRITE_STATUS: false, READ_STATUS: false, WRITE_BUFFER: false, READ_BUFFER: false + spi_config.intr_enable.val = SPI_MASTER_DEFAULT_INTR_ENABLE; + // Set SPI to master mode + // ESP8266 Only support half-duplex + spi_config.mode = SPI_MASTER_MODE; + // Set the SPI clock frequency division factor + spi_config.clk_div = SPI_20MHz_DIV; + // Register SPI event callback function + spi_config.event_cb = NULL; + spi_init(HSPI_HOST, &spi_config); + +#ifdef ESP_HSPI_MASTER_SEND + // create spi_master_write_slave_task + xTaskCreate(spi_master_write_slave_task, "spi_master_write_slave_task", 2048, NULL, 6, NULL); +#else + // create spi_master_read_slave_task + xTaskCreate(spi_master_read_slave_task, "spi_master_read_slave_task", 2048, NULL, 5, NULL); + xTaskCreate(spi_master_count_task, "spi_master_count_task", 2048, NULL, 4, NULL); +#endif +} + + diff --git a/examples/peripherals/spi/high_performance/spi_master/sdkconfig.defaults b/examples/peripherals/spi/high_performance/spi_master/sdkconfig.defaults new file mode 100644 index 00000000..1e339565 --- /dev/null +++ b/examples/peripherals/spi/high_performance/spi_master/sdkconfig.defaults @@ -0,0 +1,7 @@ + +CONFIG_ESP8266_HSPI_HIGH_THROUGHPUT=y + +CONFIG_ESP8266_DEFAULT_CPU_FREQ_160=y +CONFIG_ESP8266_DEFAULT_CPU_FREQ_MHZ=160 + +CONFIG_FREERTOS_CODE_LINK_TO_IRAM=y diff --git a/examples/peripherals/spi_slave/CMakeLists.txt b/examples/peripherals/spi/high_performance/spi_slave/CMakeLists.txt similarity index 100% rename from examples/peripherals/spi_slave/CMakeLists.txt rename to examples/peripherals/spi/high_performance/spi_slave/CMakeLists.txt diff --git a/examples/peripherals/spi_slave/Makefile b/examples/peripherals/spi/high_performance/spi_slave/Makefile similarity index 100% rename from examples/peripherals/spi_slave/Makefile rename to examples/peripherals/spi/high_performance/spi_slave/Makefile diff --git a/examples/peripherals/spi_slave/main/CMakeLists.txt b/examples/peripherals/spi/high_performance/spi_slave/main/CMakeLists.txt similarity index 100% rename from examples/peripherals/spi_slave/main/CMakeLists.txt rename to examples/peripherals/spi/high_performance/spi_slave/main/CMakeLists.txt diff --git a/examples/peripherals/spi/high_performance/spi_slave/main/component.mk b/examples/peripherals/spi/high_performance/spi_slave/main/component.mk new file mode 100644 index 00000000..2fb1bbe5 --- /dev/null +++ b/examples/peripherals/spi/high_performance/spi_slave/main/component.mk @@ -0,0 +1,4 @@ +# +# Main Makefile. This is basically the same as a component makefile. +# + diff --git a/examples/peripherals/spi/high_performance/spi_slave/main/spi_slave_example_main.c b/examples/peripherals/spi/high_performance/spi_slave/main/spi_slave_example_main.c new file mode 100644 index 00000000..f5e21fb2 --- /dev/null +++ b/examples/peripherals/spi/high_performance/spi_slave/main/spi_slave_example_main.c @@ -0,0 +1,283 @@ +/* spi_slave example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include <stdio.h> +#include <string.h> +#include <sys/time.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "freertos/event_groups.h" +#include "freertos/stream_buffer.h" +#include "ringbuf.h" + +#include "esp8266/spi_struct.h" +#include "esp8266/gpio_struct.h" +#include "esp_system.h" +#include "esp_log.h" + +#include "driver/gpio.h" +#include "driver/spi.h" + +static const char* TAG = "spi_slave_example"; + +#define SPI_SLAVE_HANDSHARK_GPIO 4 +#define SPI_SLAVE_HANDSHARK_SEL (1ULL<<SPI_SLAVE_HANDSHARK_GPIO) + +#define SPI_WRITE_BUFFER_MAX_SIZE 2048 +#define SPI_READ_BUFFER_MAX_SIZE 1024 + +#define ESP_SPI_SLAVE_RECV // Define the macro is master send mode, delete will be slave send mode + +static StreamBufferHandle_t spi_slave_tx_ring_buf; +static StreamBufferHandle_t spi_slave_rx_ring_buf; +static uint32_t total_recv_len = 0; +static bool wait_recv_data = false; +static bool sending_flag = false; +static volatile uint32_t total_tx_count = 0; +static volatile uint32_t total_send_len = 0; + +static void IRAM_ATTR spi_event_callback(int event, void* arg) +{ + int x; + BaseType_t xHigherPriorityTaskWoken; + uint32_t status; + uint32_t trans_done; + uint32_t data[16]; + spi_trans_t trans = {0}; + uint16_t cmd = 0; + bool trigger_flag = false; + + switch (event) { + case SPI_TRANS_DONE_EVENT: { + gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 0); + trans_done = *(uint32_t*)arg; + + if (trans_done & SPI_SLV_RD_BUF_DONE) { // slave -> master data + if (total_send_len == 0) { + sending_flag = false; + total_send_len = xStreamBufferBytesAvailable(spi_slave_tx_ring_buf); + + if (total_send_len > 0) { // Have some data send to MCU + spi_slave_set_status(HSPI_HOST, (uint32_t*)&total_send_len); + sending_flag = true; + trigger_flag = true; + } + } else { // Have some data send to MCU + memset(&trans, 0x0, sizeof(trans)); + trans.cmd = &cmd; + trans.addr = NULL; + trans.bits.val = 0; + trans.bits.cmd = 8 * 1; + trans.bits.addr = 8 * 1; + trans.bits.mosi = 0; + trans.miso = data; + trans.bits.miso = xStreamBufferReceiveFromISR(spi_slave_tx_ring_buf, data, 64, &xHigherPriorityTaskWoken); // send max 32bytes + + if (trans.bits.miso != 0) { + total_send_len -= trans.bits.miso; + trans.bits.miso <<= 3; + spi_trans(HSPI_HOST, &trans); + trigger_flag = true;; + } + } + } + + if (trans_done & SPI_SLV_WR_BUF_DONE) { // master -> slave data + uint32_t len = total_recv_len; + + if (len > 64) { // only send max 32bytes one time + len = 64; + } + + if (len > 0) { + for (x = 0; x < 16; x++) { + data[x] = SPI1.data_buf[x]; + } + + xStreamBufferSendFromISR(spi_slave_rx_ring_buf, (void*) data, len, &xHigherPriorityTaskWoken); + total_recv_len -= len; + } + + if (xStreamBufferSpacesAvailable(spi_slave_rx_ring_buf) >= 64) { // Stream buffer not full, can be read agian + trigger_flag = true; + } else { + wait_recv_data = true; + } + } + + if (trans_done & SPI_SLV_WR_STA_DONE) { // master -> slave status len + spi_slave_get_status(HSPI_HOST, &status); + total_recv_len = status; + uint32_t tx_size = xStreamBufferBytesAvailable(spi_slave_tx_ring_buf); + + if (total_recv_len > 0) { + trigger_flag = true; + } else if (tx_size > 0) { // SPI send done and ESP8266 send buffer have data + if (sending_flag == false) { + spi_slave_set_status(HSPI_HOST, &tx_size); + } + + trigger_flag = true; + } + } + + if (trans_done & SPI_SLV_RD_STA_DONE) { // Slave -> Master status len + memset(&trans, 0x0, sizeof(trans)); + trans.cmd = &cmd; + trans.addr = NULL; + trans.bits.val = 0; + trans.bits.cmd = 8 * 1; + trans.bits.addr = 8 * 1; + trans.bits.mosi = 0; + trans.miso = data; + trans.bits.miso = xStreamBufferReceiveFromISR(spi_slave_tx_ring_buf, data, 64, &xHigherPriorityTaskWoken); + + if (trans.bits.miso != 0) { + total_send_len -= trans.bits.miso; + trans.bits.miso <<= 3; + spi_trans(HSPI_HOST, &trans); + trigger_flag = true; + } + } + + if (trigger_flag) { + gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 1); + } + + if (xHigherPriorityTaskWoken == pdTRUE) { + taskYIELD(); + } + } + break; + + case SPI_DEINIT_EVENT: { + + } + break; + } + +} + +#ifdef ESP_SPI_SLAVE_RECV +uint32_t read_count = 0; + +static void spi_slave_count_task(void* arg) +{ + uint32_t tmp_count = 0; + + while (1) { + printf("recv_count: %d , speed: %dB/s\n", read_count, ((read_count - tmp_count) / 2)); + tmp_count = read_count; + vTaskDelay(2000 / portTICK_RATE_MS); + } +} + +static void IRAM_ATTR spi_slave_read_master_task(void* arg) +{ + uint8_t read_data[SPI_READ_BUFFER_MAX_SIZE + 1]; + size_t xReceivedBytes; + + while (1) { + xReceivedBytes = xStreamBufferReceive(spi_slave_rx_ring_buf, read_data, SPI_READ_BUFFER_MAX_SIZE, 2000 / portTICK_RATE_MS); + + if (xReceivedBytes != 0) { + for (int i = 0; i < xReceivedBytes; i++) { + if (read_data[i] != 0x33) { + printf("receive error data: %x\n", read_data[i]); + } + } + + read_count += xReceivedBytes; + memset(read_data, 0x0, xReceivedBytes); + + // steam buffer full + if (wait_recv_data) { + if (xStreamBufferBytesAvailable(spi_slave_rx_ring_buf) > 64) { + gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 1); + wait_recv_data = false; + } + } + } + } +} +#else +#include "time.h" +static void IRAM_ATTR spi_slave_write_master_task(void* arg) +{ + static uint8_t write_data[SPI_WRITE_BUFFER_MAX_SIZE]; + memset(write_data, 0x44, SPI_WRITE_BUFFER_MAX_SIZE); + vTaskDelay(5000 / portTICK_RATE_MS); + printf("Test send\r\n"); + time_t start = time(NULL); + + while (1) { + total_tx_count += xStreamBufferSend(spi_slave_tx_ring_buf, write_data, SPI_WRITE_BUFFER_MAX_SIZE, portMAX_DELAY); + portENTER_CRITICAL(); + + if (sending_flag == false) { + total_send_len = xStreamBufferBytesAvailable(spi_slave_tx_ring_buf); + spi_slave_set_status(HSPI_HOST, (uint32_t*)&total_send_len); + sending_flag = true; + gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 1); + } + + portEXIT_CRITICAL(); + + if (total_tx_count >= 20 * 1024 * 1024) { + printf("tx done; %d bytes, time : %ld\r\n", total_tx_count, time(NULL) - start); + + for (;;) { + vTaskDelay(100); + } + } + + } +} +#endif + +void app_main(void) +{ + spi_slave_tx_ring_buf = xStreamBufferCreate(4096, 1); + spi_slave_rx_ring_buf = xStreamBufferCreate(4096, 1024); + + ESP_LOGI(TAG, "init gpio"); + gpio_config_t io_conf; + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_OUTPUT; + io_conf.pin_bit_mask = SPI_SLAVE_HANDSHARK_SEL; + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 0); + + ESP_LOGI(TAG, "init spi"); + + spi_config_t spi_config; + // Load default interface parameters + // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 + spi_config.interface.val = SPI_DEFAULT_INTERFACE; + + // Load default interrupt enable + // TRANS_DONE: false, WRITE_STATUS: true, READ_STATUS: true, WRITE_BUFFER: true, READ_BUFFER: ture + spi_config.intr_enable.val = SPI_SLAVE_DEFAULT_INTR_ENABLE; + // Set SPI to slave mode + spi_config.mode = SPI_SLAVE_MODE; + // Register SPI event callback function + spi_config.event_cb = spi_event_callback; + spi_init(HSPI_HOST, &spi_config); + +#ifdef ESP_SPI_SLAVE_RECV + // create spi_slave_read_master_task + xTaskCreate(spi_slave_read_master_task, "spi_slave_read_master_task", 2048, NULL, 6, NULL); + xTaskCreate(spi_slave_count_task, "spi_slave_count_task", 2048, NULL, 3, NULL); +#else + // create spi_slave_write_master_task + xTaskCreate(spi_slave_write_master_task, "spi_slave_write_master_task", 2048, NULL, 2, NULL); +#endif +} diff --git a/examples/peripherals/spi/high_performance/spi_slave/sdkconfig.defaults b/examples/peripherals/spi/high_performance/spi_slave/sdkconfig.defaults new file mode 100644 index 00000000..248e2b18 --- /dev/null +++ b/examples/peripherals/spi/high_performance/spi_slave/sdkconfig.defaults @@ -0,0 +1,5 @@ + +CONFIG_ESP8266_HSPI_HIGH_THROUGHPUT=y + +CONFIG_ESP8266_DEFAULT_CPU_FREQ_160=y +CONFIG_ESP8266_DEFAULT_CPU_FREQ_MHZ=160 diff --git a/examples/peripherals/spi/normal_performance/spi_master/CMakeLists.txt b/examples/peripherals/spi/normal_performance/spi_master/CMakeLists.txt new file mode 100644 index 00000000..254fb8b0 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_master/CMakeLists.txt @@ -0,0 +1,6 @@ +# The following four lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(spi_master) diff --git a/examples/peripherals/spi/normal_performance/spi_master/Makefile b/examples/peripherals/spi/normal_performance/spi_master/Makefile new file mode 100644 index 00000000..7ca171bb --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_master/Makefile @@ -0,0 +1,9 @@ +# +# This is a project Makefile. It is assumed the directory this Makefile resides in is a +# project subdirectory. +# + +PROJECT_NAME := spi_master + +include $(IDF_PATH)/make/project.mk + diff --git a/examples/peripherals/spi/normal_performance/spi_master/main/CMakeLists.txt b/examples/peripherals/spi/normal_performance/spi_master/main/CMakeLists.txt new file mode 100644 index 00000000..d55df5d0 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_master/main/CMakeLists.txt @@ -0,0 +1,3 @@ +set(COMPONENT_SRCS "spi_master_example_main.c") + +register_component() diff --git a/examples/peripherals/spi_slave/main/component.mk b/examples/peripherals/spi/normal_performance/spi_master/main/component.mk similarity index 100% rename from examples/peripherals/spi_slave/main/component.mk rename to examples/peripherals/spi/normal_performance/spi_master/main/component.mk diff --git a/examples/peripherals/spi/normal_performance/spi_master/main/spi_master_example_main.c b/examples/peripherals/spi/normal_performance/spi_master/main/spi_master_example_main.c new file mode 100644 index 00000000..42a6ff12 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_master/main/spi_master_example_main.c @@ -0,0 +1,251 @@ +/* spi_master example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include <stdio.h> +#include <string.h> +#include <sys/time.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "ringbuf.h" + +#include "esp8266/spi_struct.h" +#include "esp8266/gpio_struct.h" +#include "esp_system.h" +#include "esp_log.h" + +#include "driver/gpio.h" +#include "driver/spi.h" + +static const char *TAG = "spi_master_example"; + +#define SPI_MASTER_HANDSHARK_GPIO 4 +#define SPI_MASTER_HANDSHARK_SEL (1ULL<<SPI_MASTER_HANDSHARK_GPIO) + +#define SPI_WRITE_BUFFER_MAX_SIZE 2048 + +#define ESP_SPI_MASTER_TEST_SEND // Define the macro is master send mode, delete will be slave send mode + +static SemaphoreHandle_t semphor = NULL; + +typedef enum { + SPI_SEND = 0, + SPI_RECV +} spi_master_mode_t; + +/* Master receive data or send data done both need wait isr */ +static void IRAM_ATTR gpio_isr_handler(void *arg) +{ + BaseType_t xHigherPriorityTaskWoken = pdFALSE; + if ((int)arg == SPI_MASTER_HANDSHARK_GPIO) { + + xSemaphoreGiveFromISR(semphor, &xHigherPriorityTaskWoken); + if (xHigherPriorityTaskWoken == pdTRUE) { + taskYIELD(); + } + } +} + +/* SPI transmit data, format: 8bit command (read value: 3, write value: 4) + 8bit address(value: 0x0) + 64byte data */ +static void IRAM_ATTR spi_master_transmit(spi_master_mode_t trans_mode, uint32_t* data, uint32_t len) +{ + spi_trans_t trans; + uint16_t cmd; + uint32_t addr = 0x0; + + if (len > 16) { + ESP_LOGE(TAG, "ESP8266 only support transmit 64bytes(16 * sizeof(uint32_t)) one time"); + return; + } + + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; // clear all bit + + if (trans_mode == SPI_SEND) { + cmd = SPI_MASTER_WRITE_DATA_TO_SLAVE_CMD; + trans.bits.mosi = len * 32; // One time transmit only support 64bytes + trans.mosi = data; + } else { + cmd = SPI_MASTER_READ_DATA_FROM_SLAVE_CMD; + trans.bits.miso = len * 32; + trans.miso = data; + } + + trans.bits.cmd = 8 * 1; + trans.bits.addr = 8 * 1; // transmit data will use 8bit address + trans.cmd = &cmd; + trans.addr = &addr; + + spi_trans(HSPI_HOST, &trans); +} + +#ifdef ESP_SPI_MASTER_TEST_SEND + +/* SPI master send length, format: 8bit command(value:1) + 32bit status length */ +static void IRAM_ATTR spi_master_send_length(uint32_t len) +{ + spi_trans_t trans; + uint16_t cmd = SPI_MASTER_WRITE_STATUS_TO_SLAVE_CMD; + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; + trans.bits.cmd = 8 * 1; + trans.bits.addr = 0; // transmit status do not use address bit + trans.bits.mosi = 8 * 4; // status length is 32bit + trans.cmd = &cmd; + trans.addr = NULL; + trans.mosi = &len; + spi_trans(HSPI_HOST, &trans); +} + +static void IRAM_ATTR spi_master_write_slave_task(void *arg) +{ + /* In order to improve the transmission efficiency, it is recommended that the external + incoming data is (uint32_t *) type data, do not use other type data. */ + static uint32_t write_data[SPI_WRITE_BUFFER_MAX_SIZE/4]; + uint32_t total_len = 0; + uint32_t send_len = 0; + + for (uint32_t loop = 0; loop < sizeof(write_data)/sizeof(write_data[0]);loop++) { + write_data[loop] = 0x34343434; + } + + xSemaphoreTake(semphor, 0); + vTaskDelay(5000 / portTICK_RATE_MS); + ESP_LOGI(TAG, "Start test send data"); + while (1) { + + send_len = sizeof(write_data); + spi_master_send_length(send_len); + + // wait ESP8266 received the length + xSemaphoreTake(semphor, portMAX_DELAY); + + for (uint32_t loop = 0; loop < (send_len + 63)/64; loop++) { + // transmit data, ESP8266 only transmit 64bytes one time + spi_master_transmit(SPI_SEND, write_data + (loop * 16), 64 /sizeof(uint32_t)); + xSemaphoreTake(semphor, portMAX_DELAY); + } + // send 0 to clear send length, and tell Slave send done + spi_master_send_length(0); + + total_len += send_len; + + if (total_len >= (10*1024*1024)) { + ESP_LOGI(TAG, "total_len=%d\r\n", total_len); + for (;;) { + vTaskDelay(1000); + } + } + } +} +#else + +/* SPI master revecive length, format: 8bit command(value:4) + 32bit status length */ +static uint32_t IRAM_ATTR spi_master_get_length(void) +{ + spi_trans_t trans; + uint32_t len = 0; + uint16_t cmd = SPI_MASTER_READ_STATUS_FROM_SLAVE_CMD; + memset(&trans, 0x0, sizeof(trans)); + trans.bits.val = 0; + trans.cmd = &cmd; + trans.miso = &len; + trans.addr = NULL; + trans.bits.cmd = 8 * 1; + trans.bits.miso = 8 * 4; + spi_trans(HSPI_HOST, &trans); + return len; +} + +uint32_t read_count = 0; +static void spi_master_count_task(void* arg) +{ + uint32_t tmp_count = 0; + while(1){ + printf("recv_count: %d , speed: %dB/s\n", read_count, ((read_count - tmp_count)/2)); + tmp_count = read_count; + vTaskDelay(2000 / portTICK_RATE_MS); + } +} + +static void IRAM_ATTR spi_master_read_slave_task(void *arg) +{ + uint32_t read_data[16]; + uint32_t read_len = 0; + uint32_t read_time = 0; + + while (1) { + xSemaphoreTake(semphor, portMAX_DELAY); + + read_len = spi_master_get_length(); + ESP_LOGD(TAG, "read len: %d\n", read_len); + xSemaphoreTake(semphor, portMAX_DELAY); + read_count += read_len; + + if (read_len > 0) { + read_time = (read_len + 63) / 64; // read_len is the total bytes, every time send 32bytes, so send time will be divided by 32 + while(read_time > 0) { + spi_master_transmit(SPI_RECV, read_data, 64 /sizeof(uint32_t)); + for (int x = 0; x < 16; x++) { + if (read_data[x] != 0xa3a3a3a3) { + ESP_LOGE(TAG, "error 0x%02x,%d\r\n", read_data[x], x); + } + } + read_time--; + if(read_time != 0) { + xSemaphoreTake(semphor, portMAX_DELAY); + } + } + + } + } +} +#endif + +void app_main(void) +{ + semphor = xSemaphoreCreateBinary(); + + ESP_LOGI(TAG, "init gpio"); + gpio_config_t io_conf; + io_conf.intr_type = GPIO_INTR_POSEDGE; + io_conf.mode = GPIO_MODE_INPUT; + io_conf.pin_bit_mask = SPI_MASTER_HANDSHARK_SEL; + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + + gpio_install_isr_service(0); + gpio_isr_handler_add(SPI_MASTER_HANDSHARK_GPIO, gpio_isr_handler, (void *) SPI_MASTER_HANDSHARK_GPIO); + + ESP_LOGI(TAG, "init spi"); + spi_config_t spi_config; + // Load default interface parameters + // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 + spi_config.interface.val = SPI_DEFAULT_INTERFACE; + + // Load default interrupt enable + // TRANS_DONE: true, WRITE_STATUS: false, READ_STATUS: false, WRITE_BUFFER: false, READ_BUFFER: false + spi_config.intr_enable.val = SPI_MASTER_DEFAULT_INTR_ENABLE; + // Set SPI to master mode + // ESP8266 Only support half-duplex + spi_config.mode = SPI_MASTER_MODE; + // Set the SPI clock frequency division factor + spi_config.clk_div = SPI_10MHz_DIV; + spi_config.event_cb = NULL; + spi_init(HSPI_HOST, &spi_config); + +#ifdef ESP_SPI_MASTER_TEST_SEND + xTaskCreate(spi_master_write_slave_task, "spi_master_write_slave_task", 2048, NULL, 3, NULL); +#else + // create spi_master_read_slave_task + xTaskCreate(spi_master_read_slave_task, "spi_master_read_slave_task", 2048, NULL, 2, NULL); + xTaskCreate(spi_master_count_task, "spi_master_count_task", 2048, NULL, 4, NULL); +#endif +} \ No newline at end of file diff --git a/examples/peripherals/spi/normal_performance/spi_slave/CMakeLists.txt b/examples/peripherals/spi/normal_performance/spi_slave/CMakeLists.txt new file mode 100644 index 00000000..d7efcea4 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_slave/CMakeLists.txt @@ -0,0 +1,6 @@ +# The following four lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(spi_slave) diff --git a/examples/peripherals/spi/normal_performance/spi_slave/Makefile b/examples/peripherals/spi/normal_performance/spi_slave/Makefile new file mode 100644 index 00000000..88f0f9db --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_slave/Makefile @@ -0,0 +1,9 @@ +# +# This is a project Makefile. It is assumed the directory this Makefile resides in is a +# project subdirectory. +# + +PROJECT_NAME := spi_slave + +include $(IDF_PATH)/make/project.mk + diff --git a/examples/peripherals/spi/normal_performance/spi_slave/main/CMakeLists.txt b/examples/peripherals/spi/normal_performance/spi_slave/main/CMakeLists.txt new file mode 100644 index 00000000..6ccbe341 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_slave/main/CMakeLists.txt @@ -0,0 +1,3 @@ +set(COMPONENT_SRCS "spi_slave_example_main.c") + +register_component() diff --git a/examples/peripherals/spi/normal_performance/spi_slave/main/component.mk b/examples/peripherals/spi/normal_performance/spi_slave/main/component.mk new file mode 100644 index 00000000..44bd2b52 --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_slave/main/component.mk @@ -0,0 +1,3 @@ +# +# Main Makefile. This is basically the same as a component makefile. +# diff --git a/examples/peripherals/spi/normal_performance/spi_slave/main/spi_slave_example_main.c b/examples/peripherals/spi/normal_performance/spi_slave/main/spi_slave_example_main.c new file mode 100644 index 00000000..4658462c --- /dev/null +++ b/examples/peripherals/spi/normal_performance/spi_slave/main/spi_slave_example_main.c @@ -0,0 +1,109 @@ +/* spi_slave example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include <stdio.h> +#include <string.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_system.h" +#include "esp_log.h" + +#include "driver/spi.h" +#include "driver/hspi_logic_layer.h" + +static const char *TAG = "spi_slave_example"; + +#define SPI_SLAVE_HANDSHARK_GPIO 4 + +#define SPI_WRITE_BUFFER_MAX_SIZE 2048 +#define SPI_READ_BUFFER_MAX_SIZE 1024 + +//#define SPI_SLAVE_TEST_SEND // Define the macro is slave send mode, delete will be master send mode + +#ifdef SPI_SLAVE_TEST_SEND +static void IRAM_ATTR spi_slave_write_master_task(void *arg) +{ + static uint8_t write_data[SPI_WRITE_BUFFER_MAX_SIZE]; + uint32_t total_tx_count = 0; + + for (int32_t loop = 0; loop < SPI_WRITE_BUFFER_MAX_SIZE; loop++) { + write_data[loop] = 0xa3; + } + + vTaskDelay(5000 / portTICK_RATE_MS); + ESP_LOGI(TAG, "SPI slave start send data"); + for (;;) { + total_tx_count += hspi_slave_logic_write_data(write_data, SPI_READ_BUFFER_MAX_SIZE, portMAX_DELAY); + + if (total_tx_count >= 10*1024*1024) { + ESP_LOGI(TAG, "send done; %d bytes\r\n", total_tx_count); + break; + } + } + vTaskDelete(NULL); +} +#else +uint32_t read_count = 0; + +static void spi_slave_receive_count_task(void* arg) +{ + uint32_t tmp_count = 0; + while(1){ + ESP_LOGI(TAG,"recv_count: %d , speed: %dB/s\n", read_count, ((read_count - tmp_count)/2)); + tmp_count = read_count; + vTaskDelay(2000 / portTICK_RATE_MS); + } +} + +static void IRAM_ATTR spi_slave_read_master_task(void *arg) +{ + static uint8_t read_data[SPI_READ_BUFFER_MAX_SIZE]; + uint32_t read_len = 0; + for (;;) { + read_len = hspi_slave_logic_read_data(read_data, SPI_READ_BUFFER_MAX_SIZE, 1000); + for(int i=0;i< read_len;i++){ + + if(read_data[i] != 0x34){ + ESP_LOGE(TAG,"Receive error data: %x\n", read_data[i]); + } + + } + read_count += read_len; + memset(read_data, 0x0, SPI_READ_BUFFER_MAX_SIZE); + } +} +#endif + +void app_main(void) +{ + spi_config_t spi_config; + // Load default interface parameters + // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 + spi_config.interface.val = SPI_DEFAULT_INTERFACE; + + // Load default interrupt enable + // TRANS_DONE: false, WRITE_STATUS: true, READ_STATUS: true, WRITE_BUFFER: true, READ_BUFFER: ture + spi_config.intr_enable.val = SPI_SLAVE_DEFAULT_INTR_ENABLE; + // Set SPI to slave mode + spi_config.mode = SPI_SLAVE_MODE; + // Register SPI event callback function + spi_config.event_cb = NULL; + spi_init(HSPI_HOST, &spi_config); + + hspi_slave_logic_device_create(SPI_SLAVE_HANDSHARK_GPIO, 1, SPI_WRITE_BUFFER_MAX_SIZE, SPI_READ_BUFFER_MAX_SIZE); +#ifdef SPI_SLAVE_TEST_SEND + xTaskCreate(spi_slave_write_master_task, "spi_slave_write_master_task", 2048, NULL, 2, NULL); +#else + // create spi_slave_read_master_task + xTaskCreate(spi_slave_read_master_task, "spi_slave_read_master_task", 2048, NULL, 5, NULL); + xTaskCreate(spi_slave_receive_count_task, "spi_slave_receive_count_task", 2048, NULL, 4, NULL); +#endif +} + + diff --git a/examples/peripherals/spi/res/master_recv_data.png b/examples/peripherals/spi/res/master_recv_data.png new file mode 100644 index 0000000000000000000000000000000000000000..87f074c799971b7ec25e416d2d906241958fe790 GIT binary patch literal 12579 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 V^k8_(A+8)<y`+CJ=YrKQ{{{8@xL*JO literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi/res/master_recv_length.png b/examples/peripherals/spi/res/master_recv_length.png new file mode 100644 index 0000000000000000000000000000000000000000..dda2010de566fce104b2576591de5cfd46b8540c GIT binary patch literal 10044 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 literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi/res/master_send.png b/examples/peripherals/spi/res/master_send.png new file mode 100644 index 0000000000000000000000000000000000000000..08212e8f236f43e19ff4a65590c2bc382ce60911 GIT binary patch literal 71550 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%0A=v1G+<0;rU2 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�hOhn3m_o;G0x6K|R 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%0DS$v>`%xbXrtDxll~arg7T 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ƲX@vLXoDHGm9wVshVJI`XmJocge735wQ0Wi2chcXO{N2Z-DGai<}hmj zg;en4I@eouwZJB$%{16J5Jfvmd=GExYgizGW;MaiG1EMhWis~U^yMrEAsLHea%5?z z4*z7IOyB)st>uL6%oeq=%mvSEIx74ZRRJ(jW2wuS!^Y*Wo<E1vUWp7Ny?iKbSCW$l zI<<6vM67Md93{cV<;kFNUZp!owE=*i2qq(ohI7{dOBsG)W_kI*f?#L{)-8?JM?GnP z{6%r;z~vTenl57mTrk8`-KMX2BZJb_J?prhsnld#BhIb2XybutVgj_y%ea9r^4$X) zMuBMNeW~<_Fib~GdJ=2%6+(Gdi`t7_J~cIRk>HALV>@L<Kf;x(>AZnc!@OH^H^y{+ zjTq8k_QResWy<LDW!;%wRr^-3MRjzJo;Z0j5#&Wcc3?#Fwwtq3mvHCyecl|_s>0Q5 zjP35V<MS^w@4b0+EXf$2+4)P>ELfvl0a^Ygb&eQx?@sGEC+_1m%WcXjpM)a2-tQ_% z2d8DWj8a#KS_P`V_@aqg<uw-@SLaA89i#uEPPu|YVbz~sUe%@o`wy)K-^eL>ow{Or zSvJmh&p4GD(K?Nvrg<_es-E(39FTZP%Xt6}29U5Q*z*~p+pGwgZ8?<T(0W_-KnZVU zMP0poxf0Nq1&o3?$!N%`$Y`*@z+8BE0{lLEwlBYD*47<6)-bA*qEgrg%3;28QfmP_ zv5NMiRz^S|zcC)h^?nUoFJvT}xGtF$ervO?r=*PdHE{+2*c#PZX1Q;wDpfrwNvSC% z`GCeZ>;K`z846RyEPpgJLqAo~JGtRcBVC`2oa-oWQP(EWkNRLHsigY5{WP*#S&%%U zO|PZpMU7=32Y}yNTf5(XPMjxh{}=hJ%ZhlV)TUxDl9BtSU#YJ@r{b!~&?BEdf4-8z z1*87IcoBIFFNBjsBmECP+OJ=q(&ZQD>We6h0uykGNTL#4$G9v3Hy<S-;#UKf(8W-Q zaKEnQ-?E>IS-Nu1!xr~fp83icV4wfV)iUH}o%0+C?V0h551?u&s<z68ug5C&)>Chu zhB9(ZH8bOXMF99~(#|yhuPab~A!ryo{_kA=Uo4L~`jTgE(Z=~NY0;H5kv9IK2mG6n zq5R7KA9v-ikNrg<$m=6YE(?nhhko%tx}+&@%dhS8U;M;>QW5{BcSX79s0aRi1tLM_ mM=sy+_C~SH`(IyvxvBq*UE>sOi)t(Qu^KSUBC7vHpZ@_#MQtAd literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi/res/master_send_data.png b/examples/peripherals/spi/res/master_send_data.png new file mode 100644 index 0000000000000000000000000000000000000000..3da7e991d8a48edc740e7e04fc018d89e160b963 GIT binary patch literal 14505 zcmeHt2~<;Ax^8US!YUQYLJT6B7E4eO(kL?+R79K*aA1a%AR<ISh=4!>PJqlJ0t!l$ zK~MsS3?U3jS(+fTAS6lxQ3yncNhAy*^F4`$W%paJU%z+PUGLtt>a4{g=bU}^{`Wt8 z|FHjLr(^c3e$e^>1Olx(ba4N15NN3o1X{9s`FFsRzjX(60RNUCkK6A9RrP330ylpR z*z2$t1ggngAvwJaxc~mbL3bnwr20bfx1=q!{0s<W4m-4e@5xI(oZ-~kGp8aJrjO+a z)b0>}xt_J!>2zY*Z(E@d=g(O$?V0HdTQz>XdHJf&)yrysQ!O{jB|+V6vNii8PmU)q zv0d}s%?`(Fhfl_>bj(WHyYIKldyKgZ>@I94fmJoky2l-E7K}(+PeCRpkrW^Cr&`g) zYA%7==WM@W93Tt?+9Ny=FKLVaw0IL5OQUHkZ?-Z%R)(T0mV!WY!eSfI=9xGU$f-K3 zMe%YjR?y7g5I!eBcZj<JU~gJ9pU$W6g*h~Sde-T}oSh+z8-#{o7GCP*^73d}Rw16M zSU)QvGrJ&|gI{q!p4+wz1WfM`8k4P<K1(mARXSlte24zz2SGw)pOc0=;j(bSbG5jq zfjb>{&z%&I%?M$3UPpJ%?^W3_z_gxzsa|le>|S_^)$D8A;bma2*Ah=IHMs14WWM-? zjpW7nfyUPE4kNYjl{@v^Z35}z^CU3*Q-=BI@~9pQ){b7+jMz7i9J=G-!VcH7@m`?I z{B&kJ7z7%y&qv7_p_g8)&z}%IeWB_Za(tZFj}nQ$AFk@LWMfZ>7sLq-`gc3+z}^GK zcohihsrZ`B!qO<=cwVz(96!68SZa|Q43RIi6+E)2;|SvA0@w7|$<n;4JBR`soLgHd z%|_IhX&T?|7TW32fjT3rj+?7+#d5OjH@*`$o<TDmZuX+NNbYs@V{RrGLfaCMn{_dj zD4SDNP^a|^TZSV_Ii1~)P#uQpM54FW(cqKtxhJmprK;u+`bHclVGlW@CE3S<@|^?S zwv<U+Wd`Xrs15^+^}(L*0<&hn3=7>xhy2rl84+IhD?UNtdGT#lBYpH-^!S2}_+76l z<|%Q)q&hjyE1)p?Z1$0Z#fIVz=}y83w8Ytl+c-wvh!i(6?ea~9{O&|SD-Z2}H5P>L zu+3Nsdg^u{2@=<+l&CHajgc7QjdL)ffwKIwo`l1)CTeTQU>rpBIw}9r@%bFx+E(=P z?rovlTShgi&%uUavW2m{^*(sVe2?Hu<LbQErpagy0^V%hKy)BH{9F~)T9KTS2-gb0 z!wGx;hPl@nMz*XH5arTtbAlS`{nF017?Osou|o^<X7J9Wur@l(FghzzCS;j85Lzsz zM+5|1a?Y3~^QLW4Aq2F?`vAY>FCfs=W(R^iG;nR{w%cbtVZz~1qBNiUmeHmc`WKYw z4JIW2kPsb*z`$nJLxmpA69f2zGy0eyv3$N@X1*b>^^<?M9>uc3n4ISoeyG-aq9WeQ z2`0=9){1(6Ma2-pu4^0Y*@nC|T~d=5x@iHK<2W>~wyFcoXaCex$!=s;$oL#kAiwkj z)eOpPWV)TfxUp0~PI+0@AC`bFiw<U2<4VJF$tUv<2t5`EVlK@%M<!b<taB&u<31#S zO)(-*aoT3g*(00vnQst*ArZ870rzU?5(Lr^bF-694xV9Ewrv?p%17O8j=S$Y_Q=Ap zds{TqQ>FhVTbp?zGO#g%%dc1+?kUq`jKuPW0m*h>ndz~rwt(++-Ee}O<<}>bjJ=JQ zOY?XtpdE&=b`{Wr<1#&==y8p43gL~T4cad4wc``1RO0wSie}6d3jW%*`X@bFsl{*r z2JM3OKy&ddL)J}N|ME_~!LbJ6n40isMrhAqN!ylCpMywFX2fity;<8<WS%2$F77_< z2wc=Z(zZq1t|x55+={quc6eXghfKf-j-qa<f%cS29Qg^TjvcE?-y*78wZdugGj4}= z8Db3C1U_7T;t~e+(?%`(gV*$Fwix41>9gUX0J`aT@2QMFOs2$;K&Lo%_-)L~2u>eo zIqx(}=U5ubvr)o{gtThE&Xz=N70@p=ubE3hPLCtAGsEi&P|?Nvxp`(kFuRup@@YmO z(2XoY#VSB+bQ}l~HXWPb&+{Co#(C@9XiGrn#<Ec$&~}m@;2L&p{K6>(&A*O5RC3K& z@w~8)CmrEgDDl;a&==ConE)Ud&CEuzmFU`67|R75$R2b_JC3UYK%*9?RWPD7{rtrt zfF7{F9Wwguy7>wk?6MWhuH)2Geg5&vCH`-cF@(8UaST$E_Cton1IprtIDMM`-- z`fO@EqB{0I9=evcL`D1kF^lmvRomQj6<huLb(q@yn5oCyo3^S(f+ecEXJ2bnpSq-a zl@#NBr1GWNkYDC*?X$KccF_Qsd^l!3y&o4gMm|M@f4&NCj9^pnuB}t29Ig<j(?c&d ze|nZ0+kV97SrB|6*sD@I?B!|)bjzeeXgCx-d8B~Gi=j4`XD`!uqJfvAd9m;r9h6)u zfLG-J(3R-n{!2g8Q?Qf}*1NZVptFAe$GLGkXiQ%U`l&g2x5|cy0cUP-XsqYVkW1BW z(NF^G0m+!#q*J1Hi(v0lcCb=A^6lw?!~2beyGlst-@eyt9FC-Q@9-M7ZvlMS#b$03 zJB7nP)-~M*VOZB}y!d)==PE`4Lo#u;S>`z@-P+mc(TCgte(q3UYQP8~ZrWeDBhjg{ z<&!@Y0VCy^U1oad$RUsWXFJj1G{`j%cWq<g$71$eio~-pifkhEa$RfdTKQ@w^Yx4Y z<d^B8NTZ0s6mD_#DIduwxOq5=fhI);`G;?IztEM~f+!^!fX%m!%)<awy>#L>pPOSG z%t13r__a9enht86e?0zNM>ZDrcjkPL6_0*1wZi5*KJ}D-XmqD%F7%hSjj`vEh4t;O z10BB02UF<P7-nbL0{_fb793+P%`b9Un`A7cNH15jEy~f|H^HN_NCc!xKVk~tUEwvR z7g0RSi)2%);Sq(8b4Y)$a#4jXyq~zYqH?M5yMxsFB#+6^pHr_k)`1MFqq`Bg0-6Fl zf4l8CQgS-GXtr&2_^k{pZsViIarw;W`f7CWuAcQHpA&T_fS>{~6S~fRWEG-qb0|89 zG-OYZQ8uP}JodzRWFb1*^)M~I1@}Uu_ZnW@5#%3sFgtWu?FOORb%?q$`Z+h#kMkm; z)X)}AJA4hw^3FGu3+<isBiNq$;Ty8ZvX8}?Ar0--Q1RGufRlinb$DKfrw^U(uyP6) z3wz@Uw7|0axdqV%M}=rJw$9e36wmpr>R(#`R~F38bBw0>{VjAX$gY9ieET@$nL|(g zz%|rv8YIc%F&x8Ax#uUu4O}yp@K7wP0%@YL&{DPjI4mD^aT4hr2;Zd}$oB_W=+AzV z16xIS;4(#JH5K_xr??uk-1DXLre7%f8E({9{rF&?2yEH<W6%u6FlZc%LrD*%xI&hD z(D&Iq&j!!(tL^~81Oqkz&qrCX_-AiQGSV5dVrX4CAPa6&QQg|QkRj#W-t0_RQ<Xjk zJml>Fqvpg!wEAStKw0Jk?^gu*8?8jQ>ZHettxxD@7q?>`hLJc##1>vqg!giPIOb)0 zHrDj=VfbrLzfEvp*HAB6bgsN0KXTYfKXubdeTpy-&VD*#Qs%N&#Q`SzI1@wCgVsqe zJ&*7=x*lZbQ}IgWN14T1ipdQR_mvMlvcxo&o9t;>i_i4>sJ)d(Gj!w0B@f0oZ24dl z_`|ki+dhWz%mc&N%`E;Y@H%@~-=Ip`n%XpVk=Du%K)q)5-;VX{s()rq29%YB8Jkys z^x(_7T2bD8RQ>SXuMt;2v3M^c{KKvXl}bJAdXeQ}#V%6-m-=9B97M_k7hU^o3_dcf zQ@xT7wKD*}nP2){YO2Rx_&~?#gLeDvUaqgf^;ZeyIqiK+@V=4ZTTx|ojaPmQT84Jk zpDS*+5BfUb!#RFH8rbcl^5Y*wMJ``H)R?ua?CL#8n7I5dYqWu@GE}a3@&Kxw;mhC- z$!lh>CMlip|NB+i{JQ{1(!ZcHtwH`uu5?A0`zzgR$x9T!fk>EA4d*Ez1Gxc$S{0%E z{Q#wKV8C_qsxCzF|MFplrvxsi?-fo5xVG;F{0?yK*>aAroU8n=4lu<7P|gFu1p?QD zpNdOMw<v#tI?RTip1!7>0W`k8(i7M7`}%!fr<GhW4IQDUYE)pQZ8hZ2?nc2b_nyt; z+-f?8h}|hO?nYy7ep?Z8Q~jO*Qk{DkO#e}L$_a`Lc)EbSW2%45UF?Z<^XD+ml7!eh zVOXQv^+Zz2DT)l3rZ*+9cJy|=+?=AR{0x}vkICb;5i9*Up*6la_3;H7tXkh8tT`|Z zNz2|{jQeAqwfZjZ;!MBv55Eui<^ysK+3DMLzO4KILKv{0wfbxQAGSlv9X~{Ib}^r4 z>%g~Jpe(xdNSf&Ia<7SOTUB@ps+8%pZDRAI4Vwq8PpQtdZ%KmM5q=6^IL_1uekKW- zH(%r_zuU&oxn(=P6SE0<fN+kla(EgvTl&iNuqs@2=8(|=jP~}tuVYW92yX<o9W-&w zd4URV|8OL$`non@jqq^$htAV53+Cr9-zk^IcLlt<mj%t2TsdwHLMzsIk@o_1JgrYJ zsl$J9YzCoi^IHF51?hRpiC!t@ysb^p{<?=RbLMoS61&z3i`pSuNlRaUq5FT}epPdP zVZK8~$GcCA{~hC{l*J~6SdND;gx_&gwLpF0lR_*f4QJNv3}B|}#y?o2wnr(>&%j4( z{ASx9hTmNrYg>9J^G;;i$(fUXvhZKAu(rptvxPyOd;f7);?&F@wic9(0xW|ZruZnu z$hRu_pb;jp?M9e3!6RcEIjnrm%<63!+s2zp?l>B<rz*zp_*NY;Xj?O8uF%z_h`GV= zqedAoTsw_O=Bj{lin^8xi`yaZ>)sqgY}Dq%5zShH_aChir(zz=t@~!JUToV(bzY}G z>`lgMV6J-Y6KP{kwS@{9!lrcwn@aNkt>u~~uIzlx6kH^)3ouq&xkcVEul`V_?WWN{ zqlyP(+P5oU$jDb)VdP!mX@qHl*TgQ4=2vn}Iu%CzaXs`n_DF}2`K(H@<%y;N<&FRw z4R>>ef7$96@&HSwTRW-dOE%8luWop4b((U`@1y4S**)ub`lJbuS{+CmQ)s4py3x-g zd7ZzrHOS(TX4}KFCJ-ZzrtK&ROWiVu3U^mdjPzE%R6+)}qB_?v<tx{{Ce-s)I`(DT zIAMO{4F$ZqrnhJtDMliu6CPmw7rc3RyvrU~`APH>04a_r&~D2j`T$V3Xj4k41JK5H zA`R8YRJ%R8<l|R(@lAs%Y;19?Lf~&QvVsb?1IP$Kl@9#-MQa2&vIt8Gr~|C8_ol^W zxUq0)=_Qb85l%}qiyal3usC)*3H7qhuOz>$<1`Gfq;209P*(6tdl7~e+XDc5*O{JI zU<cWrZ5uCth0|^1kJ$=XUL1SaNWsg;6ORFnHB{2J2;d5h{2hjs+XDc5<=tI;JAjQT zDi6NG%fDn{hF0b_vgY<hcK^?Wq66VNMrrjomF~ONtw!mM|G_&`d`S)NVI4yZU($9& zyfTcSVa-!D5dY-Z0l#hFa{doTzv#yU6wk5$5O4r70x2c9b`<4uv_PW_D^<P^tsUKm zUHIpC1Bgm|NgjX1AB*o(HE3r^+y0;jqw(e}$sOyqNT2dv`5vGXp!bh^APo9v`kj=8 z24!Tm7@qmog^e9p46!^sJi--$7w7@1*aSf_SN;YH5288thQ#PTj7-N<jFv6I&AG}s zs$#zFM5IZG&AUj3A2CeNOZw_baP6$9Vq>J*ZW*ly&-(RA>W}&`m4U-rE)Lh-rb~+t zh-!m$UZy}d)bC6?1zxLfY6gxM*bL(tab5JYcU>!Q<W~cnJ(fsGF7gr8PW{DStJ1rf za$1wUH!F2jp3VEJ<{4_pn`Ml!Sf5B-^Ek`VN*X<ZBYF~k6^c2syUng?eO~*k(E}XR z5Tn@}Dsx9(8JeG!W3~M5Ii)dIbsxI7P_IJIVYJ2$-V65|w7a2!xfZ!9%_?A~Jf|vn zpaa#O`bY&wyzp+mi$^A0N_O6S*sl^C4VQjUuOM$PJ#hP!`X(1tM#%vzgspwdQ=h{E z3u~s{JSpxEvU7_#UE_<~%wj^~`4DabixCtOS}=~x^r1;G)e?4tMoqnsC-&{Vm6hry zZ0dGjI@0&hobTYWj{Vs-OMnfoh|ZeHqrpFgm<wW}Ugijz5!{7(Pk|mI((3-~s;Dkj zL!;Hk7&-?z$<d#mfm&K=HI>o#=1CjzH>Oe_Wy;2&!^g@boD?HT3n9!XJZok5A>VNw z{CHJx$k;L*R?AG!#TyWU#b?AG#*fc>-n9gkBCLb_2_wREd%A1f=SC}efqbG$(sO?z zHBZx|h&i+glXxC4J|uWZY>E)t6%sz*0(;xX3r%rsI~(teZHw%viiFMa=pr@L8*g#3 z3VjJg7%PxuSA|r`Wh>@1>x=x(H+@b#i|XDy-3$+RtaU8UI9#D|dN6^M((QocHo!jk z#7%ckM8dHi-;)j+yuwjctwY<`YaSO9n<hhW{%mCE4}&qm0B?7e92>y0?F8!t_uP)R zx<y>s*~fJJHOA@8_%rdaA&dSok~j;)(aLxiq2_E%fq0zMT}iyu&k38a?>3FMNgvep z@@4*|)G?A@bO@S3W#GFv2opT%)cBU}Vd2M6x{M~sa*HlIDMP=?+xP?dVo#tL4R4Jo zu$t<Pf9mUlubBdLx0hUN@|33`$lR?^njVW_Al1LCW&!3GP2SY!URd8l^cSZx<i_xp zm*uO4xU|jb?;gfSW{N8cc*p>_^o_31%%`wPZ?2V1^xIY`-#|Yf<-9L_YlSWV3HJiK zTO>sVU1ryP2Ra@>VQ*W0q+;gFg1sY79<N+pVYtKPe1@T{$B)+A-kaM?M74@WIM|sx zqkyH&M5RH)o=KbKJm;tZFp+4TsiiQbkbMz4HfF=(*(cHfZ)mt|oZ;P@Tsn|?3cOX_ zLH1XyiXC^hNEaGHxgX~6S!Xl&MK5FF9MWhYo+0}6O-OGoao9_Hd|%{?-Hs;U?a@YP zNe&KQsTPWKrO&#}L^RB?(2Q15HZ?Q7&+DNDTGG_!g4W4fUttJrhJNur%c*MzV*E37 zc+f&G$REa3UlDCo3e9IGWEmgjun%Lk`p8FNt7W3hjZp#dGZ`A)?;2wa9{z4+JxuKg z6X6?5M^Bmj#k^Kal(4|JTJo}<`&_<IZ^cA<7ECuym6v#|cJX$@zSVBG=&$xg%tSI- zL@J6DQ<hD9hwAna02bIgl1C>zX$QlJoa711vN`9mdWGthAM@dVK;%18&Ac1^2W7Q! z-ZYj)&Fz>P0CtMnF_-5ayt?a!%4e(=^+O|Dmh%hihGu;mW%LcaJ*Mdkn|m7_FpUJf zTRrsrvtBzYj2Y4>&C)%amr1AVpQYbp?z{BqRMZ*traGn4IAD+zQ?^H-&$);+`^pkM z)^mB?$@m5t{}4`~7hmVg&@|D3Vk?27^Dq)xhz&dWy-5)^e|gO)QkPZkm~G=wxiFTj zJ5i;FGXv4s=VDKUN*BISihQl;`HHvQ!n_0GF>0kH<WOO(hXWzRM$~CV;2Q`AFDcAN z{Ym!gf?c&$d3mU*verWNBaguqhEBTqlJDKrQncIc4jNkXxuaEJ*_k%pmW;s930^C! z@n{;K^mN@Ap^Tm+pJ>o^X^?+@9zah-5@}xLv%{S$h;vBXc!s@|->k2B$T7Z3-8p*y zlx45W(OVvqchu`|`5;Glm$<y3SG<apiYg*fSdpqffB)HmmxckM?$gaR5K$+@SWW@c zc7}-U^0$90{5bFU4v)T}0V98i@JS{4;-K@PdL3-jQ@0vCAZlK-aAWOhb)z7Eue8A( z9R=w-$t!wLT!$p3-e+JfzaQ)Zz=9C*_MfGi<yDTwgvkY)!#5%1&e>Es$(B1^7AYZQ zOG4<=@zOmrb1_28TVBgc-QiIaHu!3^oH0y+!)nH&&Mh_KwTKu6;vpMLy=dGlITjPX zzE|!;0q;}lymms*T}GYothfHHC^}HRgE2`}lIcy-sp4DgbX52U`KBT_lcJg;VaF#% zh<8XAlawnX`3dn;@WNQ+gWFopN<V3V2s(W<8&d4T6r6=fsyB!`Gf|#L<Lo2bs0*$> zZ9@?!J$^@nDyB6`3XdP37cn!hI>@k?SY{Nzl2`=|{i$8^Ry75Ys!_1H;@Cdm72D3Y z36S}dZ)EP(PI?(1;JkqGa+BBu6$v==k1M;&xIZ<&X=k_*4hkJ(tYqjH{1s1}x*9Fo z?VM$nk6S!91{orMQF_jb*A^@8MpUM)&-AzpvB;yC?Dx^EU;hNypkOjCE>7rI*f|!A z>$EU45#$};-0>tChy`NvhKUlZ3d;P}`tbG)2A=A1^Q{w%_=iWhE4i{$=+Sa7Y2uz1 zE0of^+kqRvJ_s-V7-2V{bOQc^hsw{M^@eg-KbQ6<^Ov}8`^Jent4Fs@kJw`(+kEN= z=`ekM@;%AvpM^|P{Lb#IQ((Y%8<gjS{O^L1D8786DE?gU&T5a<CUAwXju`wJh!_|c zSp3RwVeRg1iKk5DfU}ETUMFY)mBJrH`7DcKpAOsBU$W9n&%b@IjG2H^7@JZFoZ$o4 zKa|2qZ(E{~CtXzk=IXM_@kPg#Nq5BV+a}x}DR<sH<Ino1n|+V?v<Yiec6$6*i90K3 z1RJe-I^6<zXm_@<?`LdH(o^!i#GIw6NxBfyjpz@fIyd^A<o<UegZ=Imyk+5ld<kz@ zL)DySMur4o<sJi<Ld<)ejD=gj1Ml6jbBeg~O;vCjQe7;e00|v+%e>a+LVAxw`W!q} zt9KP^T?#Pkdz~A02c&tYhw9VALVPg{W&Zcl$M0n}4ga`ChHxIkf3UXgV-{<A{k7&* zxqRo*<_4o4hfgz}K)&mh_ZE?MDcs7;gc5HMWNmgYU~4{V&9&6Otz9<<PYk4*lJUvF z0jb5KJM5og(^or&upW^`)pqHu#F>?L*_pl<R=?CKmUaG}GekBwtLY5|Qca|{Z?(~A zJBL2tCa*7_re7$0c#iM9((tO=nSuCqkGyG`EZuowr7{WsWOBe7f4@MBO<ZeIxV~rC z8V6X)bGsi?(?rl0b%^z2^p`LqkhgY4B)5`p=;4qj{G`+(GV(=qVo|%jQR8yoEayL& z`6n~~Su;&;`GO9g)|dwD?+V?$-uipQ`Iml`(QwM8?5E_y+a@w6N~5it-?87cVt=B% zeU%i^GeOE{e6iNQQgsJX9sjw&tr<*j>{~3L=jP^WE0JO=<6L*X32+7rT(?8(;-oQ2 zr+sG2h<BQ$F!^Pgs6rl@gcfc>itEVfP#QP(lNtAV1;o8Rc&$(T;0x}<ws@;rzx&sf zNOu@WXWUIz`;yA`S9awo6PKWYPL#VMO*v8QGST^D1>ha}bq13=Dt)j`d+sW0_nPDw zr;>&bd=+{`lx!%t>Ah7*ZznerCy@k}+4M^0qdLLc-t{tcZD@r;Z=})W(4#S)BJpAp z7MkUgJ+1T3xS7CsUS#V+K=-mB+8g<smtwpvwj~NCT92DdRm&Ifh|=F;N2wbxxW);% zr;v96hXh26x65;c&lI_#W3tCxs4^NJD9;l<oBGX{^yq+M1B!I9^mVjkN)6){QK-mT z3ccqx*s$WnMl-TVboY~EOoyu~I5W1a*Hsqb$uiA4@lB3Uq6>aPq{sEqE^z0#H}rW? zRQfam$8{udA}uG^bMN#9hecV>Hqu!AG)(J*-Q%X-muzb}LOt(cNmSVhS)^E<v)d0h zxgfK%Z?pRN4AKlPj0a97qi=~n+Q^<I&mhG!bBDTC39QF6M56*%Ci(*g)j51YQ0+QQ zoSBrrpKl$F!~LF%-SK;LR_Q^1s^1A$I-_mQ`ZNB6`+;;+YYup%2xtcs3{mc$Nlm_I zA6!@34ik0a@ZL~SU@azYDvmBEl)2Bi`dmnl{cID*QI&lnn$Y}h@NyDFV$&_${l1tH zq$QYNh#LuH?<a1#@IKmV%41^oT66s1z^{$LS_MbGVNVyyU(oE`gYV<SO`=0^j*Lm4 z3ltkOL8sj`1#Ue#Z!Y%0u>#^pfS@mcZZ%Oc@_3d^6`wgD9iHnIeq~@qp7rEZ!nDW= zhu=)RkSZ2s;tYrt1~q)c#{}`P^=X+<Ef@NBpKqmj&^2_Ja(;%j3#!aU+nx21e#(t& z*Y7k_@&dWHwJTjA?MTD&93bZc6hN11nHlR9lPB(R+!z^3M0N5l&FU{OPH;Qeyg)7@ z=;M_#`bLN-mnOXxo7;8^xsU^~9%-4@VKKDeFUzxS3A0Y>$oE1k@;Pz~y1)}SS??}@ zJq)(Y^qL|)S#djAH~ue_YdYYV)0VTn+-UA-jr8gx-W?)eoodR9+{njQTKSTLcfCrO zoH2tn@!N%0%7zOA;+ydo>M^q!M7}9*?n5v)rC=k1kY6Wj;hFK`I!W*3S;5_QwAjDo zLFDYC5F)omgU9U2R+^@2d5-ay=zdRS$!X>GS4?eLrA+XEO&cqN+!+eYK1R-#k8Tny zoFE2LyhlD;$f_ZisuCMQsYACMSy2|ON8{#4(k$PNy`ZtDiIH9Q@gXg&_OnOt9uc!e zO%AM^--?*ICr<6LP+A9-`i?i}7EbJopk{Ml^)gz5#Erp+q1V|!8=3wAPe?R5SoCtP zJ7KU%6Mm6n%T1&~0(~Qeuey6VZ$v3HE~NQg3mn=LzQlU|iB(F>Z);p6EzbIrZVIUB zU0;7ILkTsi<#`vC+pu`x(ytU^PeDWmvqh#z9|)M%3ZbPGC>hiW>*S5qBhA_YaVd}= zi;v~sf$tXNpdKe>!lkwXVgubQvY=;E-Zx3v9X<TQtLAnfr>&#S{f03HTem)FPdGxj zS|aYqeuAnz_X5v|NQ$4VdT%Nm-qOmTrbUSx##fxq7BA*7Wj>b*j2htOXO7;bCNM;J zT6kM=rx7Q0yiuGZ`JmyG=9uJhs8<oL#`%=z%qj)NN{#^@0f1@cIB+;dX`s=y6!#ul zv7?N#VJ<+93;eA#IhWBFI{(gR#n4HCaE(Iq#t+EeRWm!$K<fFu0L+Me8*DDmeQ$an zZum{mYUCJRQxnI8rgzx2$wfC?5OJ?GqKtXxJ9x_z8rtpNbZh|=*uR%aIt2-Yom+^w z630<?k3>&U&yzRPM4fuNBB`lG#(EyQBiLFVizI@6P@-z|LzjMK#SH@v+Ok`Ts?kM0 z{k00C>H)H|LZzJ*mf$JG3s4(ZX=g^F$18Y=AU;>VQ#L=B`&|>SY(eM1{Z~9Dj(7_y z=7i7ZK5ADB&epXl`&K4q_^lsZFW;7U%6_?FE##o47$)+NOT7F{+S>5xsEvxkN3Dif zkzY8R-$hnt7wyZA8eVN;7zQvte^TeSa+d}8;6%QW@1zq_e$gJox6ce_&lKKLn2W^P zSwB$e$$9~ja~0|ZXdE<9>B(5>9*2~k%qo;`ua(z37%9`6=|9(rj+1^gwa7!mNUqLP zOaK<xCs-w7VLfdm_glBH<EO6)gNDq{%&6T8uc%#4Y!Gh(e{z4O$lc*<27ajT2iNbb zT)DUP_HbkA{z@l(bV-$Zj;9hp(-q$P@5!v)yyyvO?JY~l=tJe<|E6-V;;26}`o7uJ zvYPb&LuTMx7d>+}DF>TyoFdD8D0bAbQ)SfQkN27-Xtup<!jkiMWN5PYRqpuC8=P7n ze>l4*@D*W`(P-I*rP9e5F;;r^c}FEs?%gLAja{FA>`pZ*^T~E1Y(gH~9q_VEPiXLL zD@FPQ(fnC3Su6kfIP-I0#vx>BVdxJ=8Oagu=_c;lMijfTAa|-J;&^dY{T-G^Lb%%9 znUWc5W8fGKXSDvI$+4PwZ;Qn9YQysp>8`0&^&e|pj1u^h92jzW`juy|nYfD@NJF)Z zH5RCRzkaXBtb%=Me!ku=ehzEx(<1sBJt!vR{DE?W!35srA>DSudQxH%GPE!s+;!kw z`Ux!BHDeRa7Kip88!SQ?h_I)QK19Vd_iFF+d$7Y;Xy8q{*LiKTohoMHj<M^M@X?QB zcii#@-Lgrm{k)B<awF1fbWNr_QlqO*Z57<KaI}n1FEAyb*VnH07+Zs2<oLase;o{` zUaJ4-kqSd-oY;yP;qFR$t+{oDL);NpBNqSt!K@c$7P{RzF@$X|&2=gMCX_Q_FWtcD z75?6S*hA?}6yHLGM#t_mJ=s0*u}A5l4D$Kw6m!y0)VSue-4|(86CZ;nN>Q%|X-!8N zPTaN0_&eaBiqU_n3vX@yC%gY-_n+GRCz$*RCVyi07gu@ED5_=@Wh=n!Pthg>B8Ai0 z8CeCIZEO6}=tpCZz9F;9$$lxD$W2GrW7f+rDH<Y%*uFKR$Dd9VVWopN(YC&1N6YU- zh-zH#kd3Z>0C2XvPu##02&e0(EGMcsH3@uoLBfJ~{v9N`Xt9;<|N6jpu_VD6s{g$t zk@=r#<@;m(x;mzEZlFlI-t_zh<!|7?8R+}|z0)1&kX1h1ZZy;qUHjrNWuLNC(&0N7 zTR)a9S?j(=(f$r}4!W<cAr`lXDmvzY4nxb=%xhmLRJ0a;nM2W2_@%w@!B57*FMWlI zR>c3l1J9)>_wJ-p!K+yJzcxgsuQ#*&GJw$6-+$|CL*#$IhRo!?iSB|8N?Nx<Fkibg z|NZ9AMUDASb&&qoOp<0ALjS1T8lc2SjvV<~vtw5^|1O@dO8jrMx&GG>x!7=<;5{r? Yu_BZkKng6a6ht4gJGQ@S-!E7H1B+4nDF6Tf literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi/res/master_send_length.png b/examples/peripherals/spi/res/master_send_length.png new file mode 100644 index 0000000000000000000000000000000000000000..53643c9a6bd28e5a713eaa5d9160bc86fe92ef77 GIT binary patch literal 43809 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 Z{fKR8|z<F^7BJ~ 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 literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi/res/slave_send.png b/examples/peripherals/spi/res/slave_send.png new file mode 100644 index 0000000000000000000000000000000000000000..74168ea2f134dc6002453eebeafd3f3747f4ec9f GIT binary patch literal 61666 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 VmmeLyV8iuFI^(8l`)OJH`9Fq}Jc|GT literal 0 HcmV?d00001 diff --git a/examples/peripherals/spi_master/README.md b/examples/peripherals/spi_master/README.md deleted file mode 100644 index 1cc8640d..00000000 --- a/examples/peripherals/spi_master/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# _SPI Master Example_ - -_This example uses the ESP8266 hspi Master to send and receive data to another ESP8266 hspi Slave_ - -## How to use example - -### Hardware Required - -* Connection: - -| Signal | Slave | Master | -|-----------|--------|--------| -| SCLK | GPIO14 | GPIO14 | -| MISO | GPIO12 | GPIO12 | -| MOSI | GPIO13 | GPIO13 | -| CS | GPIO15 | GPIO15 | -| HANDSHARK | GPIO4 | GPIO4 | -| GND | GND | GND | - -* Note: - -When the ESP8266 is powered on, it is necessary to keep the GPIO15 low to enter the Flash mode, so the Master and the Slave have different power-on sequences. - -``` -Master OFF -> Slave ON -> Master ON -``` - -### Configure the project - -``` -make menuconfig -``` - -* Set serial port under Serial Flasher Options. - - -### Build and Flash - -Build the project and flash it to the board, then run monitor tool to view serial output: - -``` -make -j4 flash monitor -``` - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. - -## Example Output - -* LOG: - -``` -I (516) spi_master_example: init gpio -I (526) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:1 -I (536) spi_master_example: init spi -I (556) spi_master_example: Master wrote 3200 bytes in 4302 us -I (656) spi_master_example: Master wrote 3200 bytes in 4519 us -I (766) spi_master_example: Master wrote 3200 bytes in 4522 us -I (866) spi_master_example: Master wrote 3200 bytes in 4520 us -I (966) spi_master_example: Master wrote 3200 bytes in 4521 us -I (1066) spi_master_example: Master wrote 3200 bytes in 4520 us -I (1166) spi_master_example: Master wrote 3200 bytes in 4522 us -I (1266) spi_master_example: Master wrote 3200 bytes in 4521 us -I (1366) spi_master_example: Master wrote 3200 bytes in 4520 us -I (1466) spi_master_example: Master wrote 3200 bytes in 4520 us -I (1566) spi_master_example: Master wrote 3200 bytes in 4520 us -I (1666) spi_master_example: Master wrote 3200 bytes in 4519 us -I (1766) spi_master_example: Master wrote 3200 bytes in 4521 us -I (1866) spi_master_example: Master wrote 3200 bytes in 4519 us -I (1966) spi_master_example: Master wrote 3200 bytes in 4520 us -``` - -* WAVE FORM: - - - SPI_MASTER_WRITE_DATA_TO_SLAVE - -  - - - SPI_MASTER_READ_DATA_FROM_SLAVE - -  \ No newline at end of file diff --git a/examples/peripherals/spi_master/main/spi_master_example_main.c b/examples/peripherals/spi_master/main/spi_master_example_main.c deleted file mode 100644 index 22abc310..00000000 --- a/examples/peripherals/spi_master/main/spi_master_example_main.c +++ /dev/null @@ -1,175 +0,0 @@ -/* spi_master example - - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#include <stdio.h> -#include <sys/time.h> -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/semphr.h" -#include "ringbuf.h" - -#include "esp8266/spi_struct.h" -#include "esp8266/gpio_struct.h" -#include "esp_system.h" -#include "esp_log.h" - -#include "driver/gpio.h" -#include "driver/spi.h" - -static const char *TAG = "spi_master_example"; - -#define SPI_MASTER_HANDSHARK_GPIO 4 -#define SPI_MASTER_HANDSHARK_SEL (1ULL<<SPI_MASTER_HANDSHARK_GPIO) - -RingbufHandle_t spi_master_rx_ring_buf; -struct timeval now; - -static void gpio_isr_handler(void *arg) -{ - int x; - BaseType_t xHigherPriorityTaskWoken; - uint32_t read_data[8]; - - if ((int)arg == SPI_MASTER_HANDSHARK_GPIO) { - while (SPI1.cmd.usr); - SPI1.user.usr_command = 1; - SPI1.user.usr_addr = 1; - SPI1.user.usr_mosi = 0; - SPI1.user.usr_miso = 1; - SPI1.user2.usr_command_bitlen = 8 - 1; - SPI1.user1.usr_addr_bitlen = 32 - 1; - SPI1.user1.usr_miso_bitlen = 32 * 8 - 1; - SPI1.user2.usr_command_value = SPI_MASTER_READ_DATA_FROM_SLAVE_CMD; - SPI1.addr = 0; - SPI1.cmd.usr = 1; - while (SPI1.cmd.usr); - for (x = 0; x < 8; x++) { - read_data[x] = SPI1.data_buf[x]; - } - xRingbufferSendFromISR(spi_master_rx_ring_buf, (void *) read_data, sizeof(uint32_t) * 8, &xHigherPriorityTaskWoken); - - if (xHigherPriorityTaskWoken == pdTRUE) { - taskYIELD(); - } - } -} - -static void spi_master_write_slave_task(void *arg) -{ - int x; - uint32_t write_data[8]; - spi_trans_t trans; - uint16_t cmd; - uint32_t addr; - uint64_t time_start, time_end; - - trans.bits.val = 0; - trans.bits.cmd = 8 * 1; - trans.bits.addr = 32 * 1; - trans.bits.mosi = 32 * 8; - // Write data to the ESP8266 Slave use "SPI_MASTER_WRITE_DATA_TO_SLAVE_CMD" cmd - trans.cmd = &cmd; - trans.addr = &addr; - trans.mosi = write_data; - cmd = SPI_MASTER_WRITE_DATA_TO_SLAVE_CMD; - addr = 0; - write_data[0] = 1; - write_data[1] = 0x11111111; - write_data[2] = 0x22222222; - write_data[3] = 0x33333333; - write_data[4] = 0x44444444; - write_data[5] = 0x55555555; - write_data[6] = 0x66666666; - write_data[7] = 0x77777777; - - while (1) { - gettimeofday(&now, NULL); - time_start = now.tv_usec; - for (x = 0;x < 100;x++) { - spi_trans(HSPI_HOST, trans); - write_data[0]++; - } - gettimeofday(&now, NULL); - time_end = now.tv_usec; - - ESP_LOGI(TAG, "Master wrote 3200 bytes in %d us", (int)(time_end - time_start)); - vTaskDelay(100 / portTICK_RATE_MS); - } -} - -static void spi_master_read_slave_task(void *arg) -{ - uint32_t *read_data = NULL; - uint32_t size; - - while (1) { - read_data = (uint32_t *) xRingbufferReceive(spi_master_rx_ring_buf, &size, portMAX_DELAY); - - if (read_data) { - vRingbufferReturnItem(spi_master_rx_ring_buf, read_data); - if (read_data[7] % 100 == 0) { - vTaskDelay(100 / portTICK_RATE_MS); - } - } - } -} - -void app_main(void) -{ - spi_trans_t trans = {0}; - uint16_t cmd; - uint32_t status = true; - spi_master_rx_ring_buf = xRingbufferCreate(4096, RINGBUF_TYPE_NOSPLIT); - - ESP_LOGI(TAG, "init gpio"); - gpio_config_t io_conf; - io_conf.intr_type = GPIO_INTR_POSEDGE; - io_conf.mode = GPIO_MODE_INPUT; - io_conf.pin_bit_mask = SPI_MASTER_HANDSHARK_SEL; - io_conf.pull_down_en = 0; - io_conf.pull_up_en = 0; - gpio_config(&io_conf); - - gpio_install_isr_service(0); - gpio_isr_handler_add(SPI_MASTER_HANDSHARK_GPIO, gpio_isr_handler, (void *) SPI_MASTER_HANDSHARK_GPIO); - - ESP_LOGI(TAG, "init spi"); - spi_config_t spi_config; - // Load default interface parameters - // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 - spi_config.interface.val = SPI_DEFAULT_INTERFACE; - // Load default interrupt enable - // TRANS_DONE: true, WRITE_STATUS: false, READ_STATUS: false, WRITE_BUFFER: false, READ_BUFFER: false - spi_config.intr_enable.val = SPI_MASTER_DEFAULT_INTR_ENABLE; - // Set SPI to master mode - // ESP8266 Only support half-duplex - spi_config.mode = SPI_MASTER_MODE; - // Set the SPI clock frequency division factor - spi_config.clk_div = SPI_10MHz_DIV; - // Register SPI event callback function - spi_config.event_cb = NULL; - spi_init(HSPI_HOST, &spi_config); - - // Write status to the ESP8266 Slave use "SPI_MASTER_WRITE_STATUS_TO_SLAVE_CMD" cmd - cmd = SPI_MASTER_WRITE_STATUS_TO_SLAVE_CMD; - trans.cmd = &cmd; - trans.mosi = &status; - trans.bits.val = 0; - trans.bits.cmd = 8 * 1; - trans.bits.mosi = 32 * 1; - spi_trans(HSPI_HOST, trans); - - // create spi_master_write_slave_task - xTaskCreate(spi_master_write_slave_task, "spi_master_write_slave_task", 2048, NULL, 10, NULL); - - // create spi_master_read_slave_task - xTaskCreate(spi_master_read_slave_task, "spi_master_read_slave_task", 2048, NULL, 10, NULL); -} - - diff --git a/examples/peripherals/spi_master/wave_read_from_slave.png b/examples/peripherals/spi_master/wave_read_from_slave.png deleted file mode 100644 index a4fa4651eff835ae7161e83ad374ee0faf1c7ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38147 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 diff --git a/examples/peripherals/spi_master/wave_write_to_slave.png b/examples/peripherals/spi_master/wave_write_to_slave.png deleted file mode 100644 index b258e28125dc0c34e94b6a1324df7053ff352fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35647 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 Kq!5xukN+3snK#4$ diff --git a/examples/peripherals/spi_oled/main/spi_oled_example_main.c b/examples/peripherals/spi_oled/main/spi_oled_example_main.c index de3ffe3a..120e0c58 100644 --- a/examples/peripherals/spi_oled/main/spi_oled_example_main.c +++ b/examples/peripherals/spi_oled/main/spi_oled_example_main.c @@ -45,12 +45,12 @@ static esp_err_t oled_set_dc(uint8_t dc) // Write an 8-bit cmd static esp_err_t oled_write_cmd(uint8_t data) { - uint32_t buf = data << 24; + uint32_t buf = data << 24; // In order to improve the transmission efficiency, it is recommended that the external incoming data is (uint32_t *) type data, do not use other type data. spi_trans_t trans = {0}; trans.mosi = &buf; trans.bits.mosi = 8; oled_set_dc(0); - spi_trans(HSPI_HOST, trans); + spi_trans(HSPI_HOST, &trans); return ESP_OK; } @@ -121,8 +121,8 @@ static esp_err_t oled_clear(uint8_t data) for (x = 0; x < 8; x++) { oled_set_pos(0, x); oled_set_dc(1); - spi_trans(HSPI_HOST, trans); - spi_trans(HSPI_HOST, trans); + spi_trans(HSPI_HOST, &trans); + spi_trans(HSPI_HOST, &trans); } return ESP_OK; diff --git a/examples/peripherals/spi_slave/README.md b/examples/peripherals/spi_slave/README.md deleted file mode 100644 index b279fbd4..00000000 --- a/examples/peripherals/spi_slave/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# _SPI Slave Example_ - -_This example uses ESP8266 hspi Slave to send and receive data to another ESP8266 hspi Master_ - -## How to use example - -### Hardware Required - -* Connection: - -| Signal | Slave | Master | -|-----------|--------|--------| -| SCLK | GPIO14 | GPIO14 | -| MISO | GPIO12 | GPIO12 | -| MOSI | GPIO13 | GPIO13 | -| CS | GPIO15 | GPIO15 | -| HANDSHARK | GPIO4 | GPIO4 | -| GND | GND | GND | - -* Note: - -When the ESP8266 is powered on, it is necessary to keep the GPIO15 low to enter the Flash mode, so the Master and the Slave have different power-on sequences. - -``` -Master OFF -> Slave ON -> Master ON -``` - -### Configure the project - -``` -make menuconfig -``` - -* Set serial port under Serial Flasher Options. - - -### Build and Flash - -Build the project and flash it to the board, then run monitor tool to view serial output: - -``` -make -j4 flash monitor -``` - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. - -## Example Output - -* LOG: - -``` -I (500) spi_slave_example: init gpio -I (500) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (520) spi_slave_example: init spi -I (3390) spi_slave_example: Slave wrote 3200 bytes in 4632 us -I (3490) spi_slave_example: Slave wrote 3200 bytes in 4616 us -I (3590) spi_slave_example: Slave wrote 3200 bytes in 4622 us -I (3690) spi_slave_example: Slave wrote 3200 bytes in 4611 us -I (3790) spi_slave_example: Slave wrote 3200 bytes in 4612 us -I (3890) spi_slave_example: Slave wrote 3200 bytes in 4612 us -I (3990) spi_slave_example: Slave wrote 3200 bytes in 4619 us -I (4090) spi_slave_example: Slave wrote 3200 bytes in 4607 us -I (4190) spi_slave_example: Slave wrote 3200 bytes in 4613 us -I (4290) spi_slave_example: Slave wrote 3200 bytes in 4609 us -I (4390) spi_slave_example: Slave wrote 3200 bytes in 4618 us -I (4490) spi_slave_example: Slave wrote 3200 bytes in 4619 us -I (4590) spi_slave_example: Slave wrote 3200 bytes in 4614 us -I (4690) spi_slave_example: Slave wrote 3200 bytes in 4613 us - -``` - -* WAVE FORM: - - - SPI_MASTER_WRITE_DATA_TO_SLAVE - -  - - - SPI_MASTER_READ_DATA_FROM_SLAVE - -  \ No newline at end of file diff --git a/examples/peripherals/spi_slave/main/spi_slave_example_main.c b/examples/peripherals/spi_slave/main/spi_slave_example_main.c deleted file mode 100644 index 6042a219..00000000 --- a/examples/peripherals/spi_slave/main/spi_slave_example_main.c +++ /dev/null @@ -1,222 +0,0 @@ -/* spi_slave example - - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#include <stdio.h> -#include <sys/time.h> -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/semphr.h" -#include "ringbuf.h" - -#include "esp8266/spi_struct.h" -#include "esp8266/gpio_struct.h" -#include "esp_system.h" -#include "esp_log.h" - -#include "driver/gpio.h" -#include "driver/spi.h" - -static const char *TAG = "spi_slave_example"; - -#define SPI_SLAVE_HANDSHARK_GPIO 4 -#define SPI_SLAVE_HANDSHARK_SEL (1ULL<<SPI_SLAVE_HANDSHARK_GPIO) - -RingbufHandle_t spi_slave_tx_ring_buf; -RingbufHandle_t spi_slave_rx_ring_buf; -static SemaphoreHandle_t spi_slave_tx_done_sem = NULL; -static SemaphoreHandle_t spi_slave_wr_sta_done_sem = NULL; -static struct timeval now; - -void IRAM_ATTR spi_event_callback(int event, void *arg) -{ - int x; - BaseType_t xHigherPriorityTaskWoken; - uint32_t status; - uint32_t trans_done; - uint32_t *write_data = NULL; - uint32_t read_data[8]; - uint32_t size; - - switch (event) { - case SPI_INIT_EVENT: { - - } - break; - - case SPI_TRANS_START_EVENT: { - - } - break; - - case SPI_TRANS_DONE_EVENT: { - trans_done = *(uint32_t *)arg; - - if (trans_done & SPI_SLV_RD_BUF_DONE) { - gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 0); - write_data = (uint32_t *) xRingbufferReceiveFromISR(spi_slave_tx_ring_buf, &size); - if (write_data) { - for (x = 0; x < 8; x++) { - SPI1.data_buf[x + 8] = write_data[x]; - } - vRingbufferReturnItemFromISR(spi_slave_tx_ring_buf, write_data, &xHigherPriorityTaskWoken); - gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 1); - } else { - xSemaphoreGiveFromISR(spi_slave_tx_done_sem, &xHigherPriorityTaskWoken); - } - } - if (trans_done & SPI_SLV_WR_BUF_DONE) { - for (x = 0; x < 8; x++) { - read_data[x] = SPI1.data_buf[x]; - } - xRingbufferSendFromISR(spi_slave_rx_ring_buf, (void *) read_data, sizeof(uint32_t) * 8, &xHigherPriorityTaskWoken); - } - if (trans_done & SPI_SLV_RD_STA_DONE) { - - } - if (trans_done & SPI_SLV_WR_STA_DONE) { - spi_slave_get_status(HSPI_HOST, &status); - if (status == true) { - xSemaphoreGiveFromISR(spi_slave_wr_sta_done_sem, &xHigherPriorityTaskWoken); - } - } - - if (xHigherPriorityTaskWoken == pdTRUE) { - taskYIELD(); - } - } - break; - - case SPI_DEINIT_EVENT: { - - } - break; - } - -} - -static void spi_slave_write_master_task(void *arg) -{ - int x; - uint16_t cmd; - uint32_t addr; - uint32_t write_data[8]; - spi_trans_t trans; - uint32_t size; - uint64_t time_start, time_end; - - trans.cmd = &cmd; - trans.addr = &addr; - trans.bits.val = 0; - // In Slave mode, spi cmd must be longer than 3 bits and shorter than 16 bits - trans.bits.cmd = 8 * 1; - // In Slave mode, spi addr must be longer than 1 bits and shorter than 32 bits - trans.bits.addr = 32 * 1; - trans.bits.mosi = 0; - trans.bits.miso = 32 * 8; - - write_data[0] = 0xAAAAAAAA; - write_data[1] = 0xBBBBBBBB; - write_data[2] = 0xCCCCCCCC; - write_data[3] = 0xDDDDDDDD; - write_data[4] = 0xEEEEEEEE; - write_data[5] = 0xFFFFFFFF; - write_data[6] = 0xAAAABBBB; - write_data[7] = 1; - - // Waiting for master idle - xSemaphoreTake(spi_slave_wr_sta_done_sem, portMAX_DELAY); - - while (1) { - for (x = 0;x < 100;x++) { - xRingbufferSend(spi_slave_tx_ring_buf, (void *) write_data, sizeof(uint32_t) * 8, portMAX_DELAY); - write_data[7]++; - } - - trans.miso = (uint32_t *) xRingbufferReceive(spi_slave_tx_ring_buf, &size, portMAX_DELAY); - gettimeofday(&now, NULL); - time_start = now.tv_usec; - gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 0); - spi_trans(HSPI_HOST, trans); - gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 1); - vRingbufferReturnItem(spi_slave_tx_ring_buf, trans.miso); - xSemaphoreTake(spi_slave_tx_done_sem, portMAX_DELAY); - gettimeofday(&now, NULL); - time_end = now.tv_usec; - - ESP_LOGI(TAG, "Slave wrote 3200 bytes in %d us", (int)(time_end - time_start)); - vTaskDelay(100 / portTICK_RATE_MS); - } -} - -static void spi_slave_read_master_task(void *arg) -{ - uint32_t *read_data = NULL; - uint32_t size; - - while (1) { - read_data = (uint32_t *) xRingbufferReceive(spi_slave_rx_ring_buf, &size, portMAX_DELAY); - - if (read_data) { - vRingbufferReturnItem(spi_slave_rx_ring_buf, read_data); - if (read_data[7] % 100 == 0) { - vTaskDelay(100 / portTICK_RATE_MS); - } - } - } -} - -void app_main(void) -{ - spi_trans_t trans = {0}; - spi_slave_tx_ring_buf = xRingbufferCreate(4096, RINGBUF_TYPE_NOSPLIT); - spi_slave_rx_ring_buf = xRingbufferCreate(4096, RINGBUF_TYPE_NOSPLIT); - spi_slave_wr_sta_done_sem = xSemaphoreCreateBinary(); - spi_slave_tx_done_sem = xSemaphoreCreateBinary(); - - ESP_LOGI(TAG, "init gpio"); - gpio_config_t io_conf; - io_conf.intr_type = GPIO_INTR_DISABLE; - io_conf.mode = GPIO_MODE_OUTPUT; - io_conf.pin_bit_mask = SPI_SLAVE_HANDSHARK_SEL; - io_conf.pull_down_en = 0; - io_conf.pull_up_en = 0; - gpio_config(&io_conf); - gpio_set_level(SPI_SLAVE_HANDSHARK_GPIO, 0); - - ESP_LOGI(TAG, "init spi"); - - spi_config_t spi_config; - // Load default interface parameters - // CS_EN:1, MISO_EN:1, MOSI_EN:1, BYTE_TX_ORDER:1, BYTE_TX_ORDER:1, BIT_RX_ORDER:0, BIT_TX_ORDER:0, CPHA:0, CPOL:0 - spi_config.interface.val = SPI_DEFAULT_INTERFACE; - // Load default interrupt enable - // TRANS_DONE: false, WRITE_STATUS: true, READ_STATUS: true, WRITE_BUFFER: true, READ_BUFFER: ture - spi_config.intr_enable.val = SPI_SLAVE_DEFAULT_INTR_ENABLE; - // Set SPI to slave mode - spi_config.mode = SPI_SLAVE_MODE; - // Register SPI event callback function - spi_config.event_cb = spi_event_callback; - spi_init(HSPI_HOST, &spi_config); - - trans.bits.val = 0; - // In Slave mode, spi cmd must be longer than 3 bits and shorter than 16 bits - trans.bits.cmd = 8 * 1; - // In Slave mode, spi addr must be longer than 1 bits and shorter than 32 bits - trans.bits.addr = 32 * 1; - trans.bits.mosi = 32 * 8; - spi_trans(HSPI_HOST, trans); // init spi slave buf - - // create spi_slave_write_master_task - xTaskCreate(spi_slave_write_master_task, "spi_slave_write_master_task", 2048, NULL, 10, NULL); - - // create spi_slave_read_master_task - xTaskCreate(spi_slave_read_master_task, "spi_slave_read_master_task", 2048, NULL, 10, NULL); -} - - diff --git a/examples/peripherals/spi_slave/wave_read_from_slave.png b/examples/peripherals/spi_slave/wave_read_from_slave.png deleted file mode 100644 index a4fa4651eff835ae7161e83ad374ee0faf1c7ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38147 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 diff --git a/examples/peripherals/spi_slave/wave_write_to_slave.png b/examples/peripherals/spi_slave/wave_write_to_slave.png deleted file mode 100644 index b258e28125dc0c34e94b6a1324df7053ff352fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35647 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 Kq!5xukN+3snK#4$