Лекция
Привет, Вы узнаете о том , что такое микроконтроллер, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое микроконтроллер, luanode32, esp-32 , настоятельно рекомендую прочитать все из категории Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ.
Домашняя страница для платы ESP32 под Arduino на GitHub - github.com/espressif/arduino-esp32
Аппаратная часть IoT-платформы выполнена на модуле ESP-WROOM-32 с однокристальной системой ESP32-D0WDQ6 производства компании Espressif.
Чип ESP32-D0WDQ6 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле).
ESP32-WROOM — модуль с чипом ESP32-D0WDQ6, Flash-памятью на 4 МБ и всей необходимой обвязкой, которые спрятаны под металлическим кожухом. Рядом с кожухом расположена миниатюрная антенна из дорожки на верхнем слое печатной платы. Металлический кожух экранирует компоненты модуля и тем самым улучшает электромагнитные свойства.
Кристалл включает в себя 2-ядерный 32-разрядный процессор Tensilica Xtensa LX6, 520 Кб памяти SRAM и 448 Кб флеш-памяти, 4 Мб внешней флеш-памяти. Тактовая частота выставляется до 240 МГц в зависимости от режима энергопотребления.
Имеются встроенный температурный датчик, датчик Холла, инфракрасный контроллер на прием и на передачу, контроллер сенсорных кнопок, Bluetooth (BLE v4.2 BR/EDR), Wi-Fi (стандарты связи Wi-Fi 802.11 b/g/n (2,4 ГГц)).
Преобразователь USB-UART на микросхеме CP2102 обеспечивает связь модуля ESP32-WROOM с USB-портом компьютера. При подключении к ПК — платформа ESP32 DevKit определяется как виртуальный COM-порт.
Разъем micro-USB предназначен для прошивки и питания платформы ESP32 DevKit с помощью компьютера.
C двух сторон платы расположены контактные гребенки по 15 пинов с шагом 2,54 мм (модификация на 30 пинов).
Доступны 25 пинов общего назначения. Все контакты поддерживают прерывания. Максимальный ток на пинах: 12 мА/
На пинах ввода-вывода можно сконфигурировать аппаратные интерфейсы:
Для экспериментов используйте выводы 2, 4, 12, 13, 14, 18, 19, 21, 22, 23, 25, 26, 27.
Сводная таблица выводов для использования в проектах
Сводная таблица выводов для использования в проектах
GPIO | Input | Output | Notes |
0 | pulled up | OK | outputs PWM signal at boot |
1 | TX pin | OK | debug output at boot |
2 | OK | OK | connected to on-board LED |
3 | OK | RX pin | HIGH at boot |
4 | OK | OK | |
5 | OK | OK | outputs PWM signal at boot |
6 | x | x | connected to the integrated SPI flash |
7 | x | x | connected to the integrated SPI flash |
8 | x | x | connected to the integrated SPI flash |
9 | x | x | connected to the integrated SPI flash |
10 | x | x | connected to the integrated SPI flash |
11 | x | x | connected to the integrated SPI flash |
12 | OK | OK | boot fail if pulled high |
13 | OK | OK | |
14 | OK | OK | outputs PWM signal at boot |
15 | OK | OK | outputs PWM signal at boot |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | input only | |
35 | OK | input only | |
36 | OK | input only | |
39 | OK | input only |
На отладочном модуле расположены две тактовые кнопки. Кнопка EN предназначена для ручного перезапуска платы - аналог кнопки RESET обычного компьютера.
Кнопка Boot служит для ручного запуска режима прошивки модуля. Алгоритм следующий: Зажмите кнопку BOOT; Нажмите и отпустите кнопку EN; Отпустите кнопку BOOT.
Также на плате находится светодиод питания и индикаторный светодиод, подключенный к цифровому пину 2 (вместо 13 как у стандартных Arduino).
Линейный понижающий регулятор напряжения AMS1117-3.3 обеспечивает питание микроконтроллер а. Выходное напряжение 3,3 вольта с максимальным током 1 А.
Питание подается через разъем micro-USB или контакт Vin. Источник определяется автоматически.
При питании через USB используйте зарядник на 5В совместно с кабелем Micro USB. В случае питания через Vin рекомендуется входное напряжение от 5 до 14 В. Преобразователь питания на плате выровняет входное напряжение до необходимых 3,3 В.
Как и в случае с платами Arduino, платы ESP32 также бывают от разных производителей с разным числом выводов и разной обвязкой. Также появляются модификации и конкретной платы. Например, плата ESP32 DEVKIT DOIT бывает с 30 и 36 пинами.
SoC ESP32 обладает существенно улучшенными характеристиками по сравнению со своим предшественником, но и стоит дороже. Так что, что именно применять - каждый решает сам.
Создаем проект через PlatformIO:
mkdir esp32-intro
cd esp32-intro
pio init -b esp32doit-devkit-v1 --ide vscode
Создаем в каталоге src
файл Main.cpp
со следующим содержимым (да, это тот самый блинкер):
#include <Esp.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(900);
}
И в файл platformio.ini
в секцию [env:esp32doit-devkit-v1]
дописывам параметр с указанием скорости загрузки:
upload_speed = 921600
В данном случае это имеет смысл, поскольку SoC ESP32 обладает большим быстродействием, и увеличение скорости канала повышает скорость загрузки. Правда у меня она получилась плавающая: от шести до десяти секунд.
Соберем наше приложение:
pio run
И загружаем:
pio run -t upload
Вообще не обязательно давать две отдельных команды. Вызов команды
pio run -t upload
самостоятельно пересоберет приложение при необходимости. Я даю две команды исключительно для того, что бы посмотреть на время загрузки приложения в плату.
В ходе загрузки выводится достаточно подробный лог.
[Fri Sep 29 11:52:53 2017] Processing esp32doit-devkit-v1 (platform: espressif32; upload_speed: 921600; board: esp32doit-devkit-v1; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 15 compatible libraries
Looking for dependencies...
No dependencies
Looking for upload port...
Auto-detected: /dev/ttyUSB0
Uploading .pioenvs/esp32doit-devkit-v1/firmware.bin
esptool.py v2.1-beta1
Connecting........_
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x022f
Compressed 10464 bytes to 7012...
Wrote 10464 bytes (7012 compressed) at 0x00001000 in 0.1 seconds (effective 1044.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 122...
Wrote 3072 bytes (122 compressed) at 0x00008000 in 0.0 seconds (effective 8280.8 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 35367.7 kbit/s)...
Hash of data verified.
Compressed 356880 bytes to 177296...
Wrote 356880 bytes (177296 compressed) at 0x00010000 in 3.2 seconds (effective 891.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting...
==== [SUCCESS] Took 8.46 seconds ====
Из лога видно интересное новвоведение в загрузчике: прошивка передается в упакованном виде, что солидно ускоряет процесс передачи данных и как сдедствие общую скорость загрузки.
Исследование, описанное в статье про микроконтроллер, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое микроконтроллер, luanode32, esp-32 и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ
Комментарии
Оставить комментарий
Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ
Термины: Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ