ESP32-S3 DevKitC-1 имеет два порта USB micro с надписями "USB" и "UART". Для чего они нужны?

Я новичок в микроконтроллерах. У меня есть ESP32-S3-DevKitC-1, и я пытаюсь сделать простой привет, мир, с серийным номером. Я использую Arduino IDE для перепрошивки и последовательного мониторинга. Мой код таков:

/**
 * Настолько просто, насколько это возможно, не так ли? Настройте serial, подождите. Периодическая печать во время цикла
 */
void setup() {
  Serial.begin(9600);   // Инициализировать последовательную связь с ПК
  while (!Serial);      
}

void loop() {
  Serial.println("Hello World");
  delay(1000);
}

Я пробовал разные скорости передачи данных в бодах. Я также попробовал несколько разных конфигураций для перепрошивки - это включает перепрошивку через порт UART с режимом загрузки "UART0 / Hardware CDC" и "USB-OTG CDC (TinyUSB)". Я в основном занимаюсь угадыванием и проверкой прямо сейчас и ищу несколько советов или ресурсов для понимания портов. Мой сериал всегда показывает тарабарщину. Я даже пробовал miniterm вот так:

pyserial-miniterm / dev/cu.usserial-1410 9600

, 👍4

Обсуждение

Как вы устанавливаете ядро Arduino-ESP32 на свой IDE? Arduino-ESP32 по-прежнему поддерживает ESP32-S3 только в версии "development", если вы установили ESP32-S3 со "стабильной" версией, он еще не будет работать с ESP32-S3. См. раздел [установка] (https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html )., @hcheung


2 ответа


Лучший ответ:

5

USB-порт подключается непосредственно к D + / D-контактам ESP32, что позволяет ему выступать в качестве USB-хоста. CircuitPython, например, использует эту функциональность, чтобы выглядеть как флэш-накопитель USB. Вы также можете написать программное обеспечение, в котором ESP32 может имитировать клавиатуру, мышь или другие простые USB-устройства через этот порт. Как правило, вы не будете использовать его для программирования платы, хотя CircuitPython устанавливает собственные обновления прошивки из файлов, записанных на флэш-накопитель USB, представленный его загрузчиком.

Порт UART подключается к микросхеме USB / serial, которая подключается к контактам RX и TX ESP32. Если вы хотите прошить прошивку на плату традиционным способом (с помощью esptool.py) вы бы использовали этот разъем. Возможно, вам потребуется нажать кнопку ЗАГРУЗКИ, чтобы перевести устройство в режим загрузки прошивки.

ESP32 по умолчанию имеет скорость 115200 бод, поэтому вы увидите тарабарщину на скорости 9600 бод - это будут сообщения загрузчика.

Вам нужно будет убедиться, что прошивка, которую вы пытаетесь прошить на него, создана для правильной модели процессора, а также для объема PSRAM на вашей плате. Я бы придерживался последовательной скорости 115200 бод, чтобы вы могли видеть сообщения загрузчика, а также любые выходные данные вашей программы, если она правильно собрана и прошита на плату. [Обновление: как указал @hcheung, на момент, когда был задан этот вопрос, официальной стабильной поддержки S3 в ядре Arduino не было]

Вы можете узнать больше о своем устройстве, прочитав официальную документацию Espressif к нему.

,

Это сделало свое дело. Я использовал неправильную скорость передачи данных в бодах для своего последовательного монитора и изменил скорость загрузки во время отладки, так что это тоже сломалось. Спасибо!, @Spina

Рад, что у вас все получилось!, @romkey


-1

Мне пришлось потратить некоторое дополнительное время на отладку моего интеллектуального оборудования для настенного переключателя домашней автоматизации на базе ESP32 S3 (см. его на моем GitHub здесь )

потому что мне удалось загрузить в него код прошивки, однако при чтении последовательного вывода он отображал только «тарабарщину»; символы.

В Интернете я не смог найти ответа, поэтому мне пришлось приложить больше усилий, чтобы найти решение. Общие проблемы, возникающие при устранении ошибок последовательного вывода:

  • плохое заземление UART
  • отсутствие резистора сопротивлением 500 Ом на линии TX
  • Кабель UART слишком длинный.
  • Сцепление путей и несоответствие длины путей

все аппаратные проблемы, которые вызывают ошибки последовательной связи и сбои в работе. Однако для ESP32 в приведенном выше списке отсутствует один. На этом конкретном оборудовании я неправильно припаял кристалл RTC с частотой 32 768 МГц в место кристалла MCU, которое соответствует одному из 40 МГц. В результате стало возможным выполнить загрузку прошивки с использованием кристалла с частотой 32 768 МГц для MCU, однако из-за неправильной тактовой частоты последовательный выходной сигнал больше не имеет скорости 115 200 бит/с и отображает "тарабарщину"; символы.

Итак, убедитесь, что кристалл имеет правильное значение тактовой частоты.

,

Итак, вы использовали неправильный кристалл на своей печатной плате и добавляете это как ответ на вопрос о двух разъемах USB в официальном комплекте разработчика?, @Juraj

Не ждите, что получите ответ, соответствующий вашему пониманию. Прочтите все здесь и сами оцените, что может быть не так. В моем случае я случайно использовал другой кристалл. Загрузка прошивки по-прежнему возможна, ошибок нет. Однако последовательная связь страдает и демонстрирует «тарабарщину». Итак, проверьте кристалл, имеет ли он правильную частоту и работает ли он правильно., @Miguel Silva