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
@Spina, 👍4
Обсуждение2 ответа
Лучший ответ:
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
Мне пришлось потратить некоторое дополнительное время на отладку моего интеллектуального оборудования для настенного переключателя домашней автоматизации на базе ESP32 S3 (см. его на моем GitHub здесь )
потому что мне удалось загрузить в него код прошивки, однако при чтении последовательного вывода он отображал только «тарабарщину»; символы.
В Интернете я не смог найти ответа, поэтому мне пришлось приложить больше усилий, чтобы найти решение. Общие проблемы, возникающие при устранении ошибок последовательного вывода:
- плохое заземление UART
- отсутствие резистора сопротивлением 500 Ом на линии TX
- Кабель UART слишком длинный.
- Сцепление путей и несоответствие длины путей
все аппаратные проблемы, которые вызывают ошибки последовательной связи и сбои в работе. Однако для ESP32 в приведенном выше списке отсутствует один. На этом конкретном оборудовании я неправильно припаял кристалл RTC с частотой 32 768 МГц в место кристалла MCU, которое соответствует одному из 40 МГц. В результате стало возможным выполнить загрузку прошивки с использованием кристалла с частотой 32 768 МГц для MCU, однако из-за неправильной тактовой частоты последовательный выходной сигнал больше не имеет скорости 115 200 бит/с и отображает "тарабарщину"; символы.
Итак, убедитесь, что кристалл имеет правильное значение тактовой частоты.
Итак, вы использовали неправильный кристалл на своей печатной плате и добавляете это как ответ на вопрос о двух разъемах USB в официальном комплекте разработчика?, @Juraj
Не ждите, что получите ответ, соответствующий вашему пониманию. Прочтите все здесь и сами оцените, что может быть не так. В моем случае я случайно использовал другой кристалл. Загрузка прошивки по-прежнему возможна, ошибок нет. Однако последовательная связь страдает и демонстрирует «тарабарщину». Итак, проверьте кристалл, имеет ли он правильную частоту и работает ли он правильно., @Miguel Silva
- Как платы Arduino устраняют необходимость нажимать кнопки для прошивки?
- USB-OTG и ESP32-S2
- Как подключить LILYGO ESP32-S3 1,9 "T-Display без USB?
- Невозможно загрузить скетч в Lolin S3 Pro (ESP32-S3)
- Esp32 между двумя ноутбуками одно боковое USB-соединение другое WiFi-соединение
- Первая настройка - отказ в доступе к usb-порту - ubuntu 14.04
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Может ли Arduino взаимодействовать с USB-устройствами без USB-хост-экрана?
Как вы устанавливаете ядро Arduino-ESP32 на свой IDE? Arduino-ESP32 по-прежнему поддерживает ESP32-S3 только в версии "development", если вы установили ESP32-S3 со "стабильной" версией, он еще не будет работать с ESP32-S3. См. раздел [установка] (https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html )., @hcheung