ESP32S3 SPI主机模式下发送第一帧数据老是出错什么问题?

393877719
Posts: 10
Joined: Wed Jun 13, 2018 5:52 am

ESP32S3 SPI主机模式下发送第一帧数据老是出错什么问题?

Postby 393877719 » Tue Nov 07, 2023 11:01 am

大家好
我使用ESP32S3的SPI master模式控制一个SPI器件,配置为mode=3,但是初始化完成后,时钟线一直保持在低电平。
我查了是在spi_bus_initialize函数调用spicommon_bus_initialize_io里面再调用esp_rom_gpio_connect_out_signal(bus_config->sclk_io_num, spi_periph_signal[host].spiclk_out, false, false);之后时钟线即被拉低。无论SPI模式mode=0~3任何情况。
尝试了各种配置,没找打解决办法,不知道大家有遇到过吗?
信号我用saleae logic2采集了波形,测试了多次,每次都是上电后第一帧数据出错。
数据和代码见附件。
MCU:ESP32S3
IDE:ESP-IDF V5.1
  1. void CSLOW(void)
  2. {
  3.     gpio_set_level(48, 0);
  4. }
  5. void CSHIGH(void)
  6. {
  7.     gpio_set_level(48, 1);
  8. }
  9.  
  10. void app_main(void)
  11. {
  12.     spi_device_handle_t spi;
  13.     char buf[] = {1, 2, 3, 4, 5, 6, 7, 8};
  14.     gpio_config_t ioconfig = {
  15.         .mode = GPIO_MODE_OUTPUT,
  16.         .intr_type = GPIO_INTR_DISABLE,
  17.         .pull_up_en = GPIO_PULLUP_ENABLE,
  18.         .pin_bit_mask = (1ULL << 48),
  19.     };
  20.     gpio_config(&ioconfig);
  21.     spi_bus_config_t busconfig = {
  22.         .mosi_io_num = 19,
  23.         .miso_io_num = 20,
  24.         .sclk_io_num = 21,
  25.         .quadhd_io_num = -1,
  26.         .quadwp_io_num = -1,
  27.     };
  28.     spi_bus_initialize(SPI2_HOST, &busconfig, SPI_DMA_CH_AUTO);
  29.     spi_device_interface_config_t devconfig = {
  30.         .spics_io_num = -1,
  31.         .clock_speed_hz = 1000000,
  32.         .mode = 3,
  33.         .queue_size = 3,
  34.         // .post_cb = CSHIGH,
  35.         // .pre_cb = CSLOW,
  36.     };
  37.     spi_bus_add_device(SPI2_HOST, &devconfig, &spi);
  38.     spi_transaction_t t = {
  39.         .length = 8 * 8,
  40.         .tx_buffer = buf,
  41.         .rx_buffer = NULL,
  42.     };
  43.     while (1)
  44.     {
  45.         vTaskDelay(pdMS_TO_TICKS(3000));
  46.         CSLOW();
  47.         spi_device_transmit(spi, &t);
  48.         CSHIGH();
  49.     }
  50.     vTaskDelete(NULL);
  51. }
Attachments
ESP32S3_SPI.zip
(21 KiB) Downloaded 357 times

393877719
Posts: 10
Joined: Wed Jun 13, 2018 5:52 am

Re: ESP32S3 SPI主机模式下发送第一帧数据老是出错什么问题?

Postby 393877719 » Wed Nov 08, 2023 1:02 am

ESP32S3_SPI Master mode issue.jpg
ESP32S3_SPI Master mode issue.jpg (376.29 KiB) Viewed 1104 times
波形如图

Who is online

Users browsing this forum: Google [Bot] and 32 guests