====== Espruino Pico: распиновка, схема подключения и программирование ======
Espruino Pico — миниатюрная платформа для разработки со встроенным интерпретатором JavaScript.
{{ :products:espruino-pico:espruino-pico.jpg?nolink |}}
Платформа Espruino Pico поставляется в двух вариантах исполнения:
* [[amp>product/espruino-pico-with-headers?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|Espruino Pico (с ногами)]] пригодится для разработки и прототипирования устройств на [[amp>collection/breadboards?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|макетной плате]].
* [[amp>product/espruino-pico?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|Espruino Pico (без ног)]] для установки в самых труднодоступных местах.
===== Видеообзор ======
{{youtube>Q5bT34Lf4gY?large}}
===== Подключение и настройка =====
==== Шаг 1 ====
Подключите платформу Espruino Pico в USB-порт компьютера. Плата выполнена в виде USB-стика, так что процесс аналогичен подключению обычной флешки.{{ :products:espruino-pico:espuino-pico-getting-started.png?nolink |}}
==== Шаг 2 ====
Для работы с платой Espruino Pico добавьте и настройте в Google Chrome среду программирования [[js:ide|Espruino Web IDE]].
===== Пример работы =====
В качестве примера прошьём платформу Espruino Pico скриптом, который каждую секунду будет переключать встроенные светодиоды ''LED1'' и ''LED2''.
// переменная состояния светодиода
var state = false;
// каждую секунду переключаем светодиоды
// один включаем, другой выключаем
setInterval(function() {
state = !state;
LED1.write(state);
LED2.write(!state);
}, 1000);
{{ :products:espruino-pico:espruino-pico-blink.gif?nolink |}}
===== Элементы платы =====
{{ :products:espruino-pico:espruino-pico-annotation.png?nolink |}}
==== Микроконтроллер STM32F401CDU6 ====
Сердцем платформы является 32-битный микроконтроллер семейства ARM — {{ :products:espruino-pico:stm32f401cdu6-datasheet.pdf |STM32F401CDU6}} с тактовой частотой до 84 МГц. Контроллер предоставляет 384 КБ Flash-памяти для хранения прошивки и 96 КБ оперативной памяти SRAM для хранения временных данных.
==== USB-порт ====
Плата выполнена в виде USB-стика Type-A, что позволяет включать устройство непосредственно в USB-порт компьютера без дополнительных кабелей аналогично обычной флешке.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| LED1 | Пользовательский светодиод красного цвета на ''B2'' пине микроконтроллера. Используйте определение ''LED1'' для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.|
| LED2 | Пользовательский светодиод зелёного цвета на ''B12'' пине микроконтроллера. Используйте определение ''LED2'' для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.|
==== Понижающий регулятор 3V3 ====
Линейный понижающий регулятор напряжения {{ :products:espruino-pico:mcp1703t-3302e-datasheet.pdf |MCP1703T-3302E}} обеспечивает питание микроконтроллера [[#микроконтроллер_stm32f401cdu6|STM32F401CDU6]] и другой логики платформы при подключении питания через USB или пин ''Vin''. Диапазон входного напряжения от 3,6 до 16 вольт. Выходное напряжение 3,3 В с максимальным выходным током 250 мА.
==== Пользовательская кнопка ====
Пользовательская кнопка подключённая к ''C13'' цифровому пину микроконтроллера. Для работы в программе используйте определение ''BTN''. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.
Кнопка также может переводить плату в [[#dfu-режим|DFU-режим]], если замкнуть на обратной стороне контактную площадку BOOT0.
==== Площадки под USB Mini ====
На обратной стороне платы под маской расположены контактные площадки под пайку для разъёма mini-USB, который позволит подключать платформу с помощью [[amp>product/usb-cable-mini?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|кабеля USB (A — Mini USB)]].
{{ :products:espruino-pico:espruino-pico-usb-mini.png?nolink |}}
==== Площадки под JST-разъём ====
Контактные колодки под пайку для внешнего разъёма JST-PH-2, через который удобно подключать внешний аккумулятор. Входное напряжение от 3,5 до 16 вольт.
{{ :products:espruino-pico:espruino-pico-jst-battery-connect.png?nolink |}}
==== DFU-режим ====
Если капнуть припоем на контактную площадку, то [[#пользовательская_кнопка|встроенная кнопка на плате]] получит возможность включать платформу в DFU-режиме. Это позволит [[js:ide:dfu-firmware|перепрошить или обновить интерпретатор JavaScript]] в микроконтроллер по USB без дополнительного программатора.
- Замкните контактную площадку каплей олова.{{ :products:espruino-pico:espruino-pico-dfu.png?nolink |}}
- При включении платформы по USB удерживайте [[#пользовательская_кнопка|кнопку]].
==== Перемычка FET ====
На плате расположен силовой ключ P-Channel {{ :products:espruino-pico:fdn358p-datasheet.pdf |FDN358P}}, который может управлять мощной нагрузкой, например [[amp>product/white-led-strip-sealed?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|светодиодной лентой]] или [[amp>collection/dc-motors?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|коллекторным мотором]] без дополнительных драйверов. Диапазон выходного напряжения повторяет напряжение на пине ''VIN'' c максимально коммутируемым током нагрузки до 1,5 А.
По умолчанию управляющий контакт транзистора отключён от микроконтроллера, но если замкнуть перемычку ''FET'', затвор ключа соединиться с цифровым пином ''B0'', с помощью которого вы сможете управлять транзистором.{{ :products:espruino-pico:espruino-pico-fet.png?nolink |}}
Отрицательный контакт нагрузки подключается к контакту ''GND'', а положительный — ''VOUT''.
Для примера подключим к платформе Espruino Pico батарейный отсек: плюсовой контакт к пину ''VIN'', минусовой — к земле. Батарейный отсек состоит из 6 [[amp>product/battery-aaa-duracell?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|батареек AAA]] c выходным напряжением в сумме 9 вольт. В качестве нагрузки подключим коллекторный мотор напрямую к плате Espruino Pico через встроенный ключ: плюсовой контакт к пину ''VOUT'', минусовой — к земле. В итоге путём управления пином ''BO'' вы сможете включать/выключать и регулировать скорость мотора.
{{ :products:espruino-pico:espruino-pico-fet-control.png?nolink |}}
==== SWD-разъём ====
Колодки SWD предназначены для подключения программатора и отладчика ST-Link.
===== Распиновка =====
[[this>_media/products:espruino-pico:espruino-pico-pinout.pdf|{{:products:espruino-pico:espruino-pico-pinout.png}}]]
На плате Espruino Pico с двух сторон выведено по 9 контактов, со стандартным шагом 2,54 мм. Если вам мало пинов и хотите получить доступ к дополнительным ножкам микроконтроллера, воспользуйтесь отдельным разъёмом на 8 пинов с шагом 1,27 мм.
==== Пины питания ====
* **VIN** Входной пин для подключения внешнего источника напряжения в диапазоне от 3,5 до 16 вольт.
* **VOUT** Выходной пин [[#перемычка_fet|со встроенного силового ключа на плате]] для подключения плюсового контакта управляемой нагрузки. Диапазон выходного напряжения повторяет напряжение на пине ''VIN''. По умолчанию транзистор отключён от цепи управления.
* **3V3** Выходной пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 250 мА. Регулятор обеспечивает питание микроконтроллера [[#микроконтроллер_stm32f401cdu6|STM32F401CDU6]] и другой вспомогательной логики платы.
* **GND** Выводы земли.
==== Порты ввода/вывода ====
* **Цифровые входы/выходы** 22 пина: ''A0''–''A8'', ''A10'', ''B1'', ''B3''–''B10'' и ''B13''–''B15'' \\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 25 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ** 21 пинов: ''A0''–''A3'', ''A5''–''A8'', ''A10'', ''B1'', ''B3''–''B10'' и ''B13''–''B15''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 16 бит.
* **АЦП** 9 пинов: ''A0''–''A7'' и ''A10''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 12 бит.
* **TWI/I²C** Для общения Espruino Pico c [[amp>collection/boards?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|сенсорами]] по интерфейсу [[js:i2c|I²C]].
* **I²C1**: пины ''SDA1/B8/B9'' и ''SCL1/B6/B9''
* **I²C2**: пины ''SDA2/B3'' и ''SCL2/B10''
* **I²C3**: пины ''SDA3/B4'' и ''SCL3/A8''
* **SPI** Для общения Espruino Pico c [[amp>collection/boards?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|сенсорами]] по интерфейсу [[js:spi|SPI]].
* **SPI1**: пины ''MOSI1/A7/B5'', ''MISO1/A6/B4'' и ''SCK1/A5/B3''
* **SPI2**: пины ''MOSI2/B15'', ''MISO2/B14'' и ''SCK2/B10/B13''
* **SPI3**: пины ''MOSI3/B5'', ''MISO3/B4'' и ''SCK3/B3''
* **Serial/UART** Для общения Espruino Pico c [[amp>collection/boards?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|сенсорами]] по интерфейсу [[js:serial|Serial/UART]].
* **Serial1**: пины ''TX1/B6'', ''RX1/A10/B7'' и ''CK1/A8''
* **Serial2**: пины ''TX2/A2'', ''RX2/A3'' и ''CK2/A4''
===== Принципиальная и монтажная схемы =====
{{:products:espruino-pico:espruino-pico-schematic.png?direct&480 |}}
{{ :products:espruino-pico:espruino-pico-layout-top.png?direct&190|}}
{{ :products:espruino-pico:espruino-pico-layout-bottom.png?direct&190|}}
===== Габаритный чертёж =====
[[this>_media/products:espruino-pico:espruino-pico-dimensions.pdf|{{:products:espruino-pico:espruino-pico-dimensions.png}}]]
===== Характеристики =====
* Микроконтроллер: STM32F401CDU6
* Ядро: 32-битный ARM Cortex M4
* Тактовая частота: 84 МГц
* Flash-память: 384 КБ
* SRAM-память: 96 КБ
* Пинов ввода-вывода всего: 22
* Напряжение логических уровней: 3,3 В
* Пины с толлератностью к 5 В: 22
* Пины с АЦП: 9
* Разрядность АЦП: 12 бит
* Пины с ШИМ: 21
* Разрядность ШИМ: 16 бит
* Аппаратных интерфейсов SPI: 3
* Аппаратных интерфейсов I²C / TWI: 3
* Аппаратных интерфейсов UART / Serial: 2
* Максимальный ток с пина или на пин: 25 мА
* Максимальный выходной ток пина 3V3: 250 мA
* Входное напряжение через пин Vin: 3,5–16 В
* Габариты платы: 33×15 мм
===== Ресурсы =====
* [[amp>product/espruino-pico?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|Espruino Pico (без ног)]] в магазине.
* [[amp>product/espruino-pico-with-headers?utm_source=man&utm_campaign=espruino-pico&utm_medium=wiki|Espruino Pico (с ногами)]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/espruino-pico.svg|Векторное изображение Espruino Pico (без ног)]]
* [[https://github.com/amperka/hardware-drawings/blob/master/espruino-pico-with-headers.svg|Векторное изображение Espruino Pico (с ногами)]]
* [[js:ide|Как настроить платформу Pico со средой Espruino Web IDE]]
* [[js:start|Учебные и справочные материалы по JavaScript’у в микроконтроллере]]
* {{ :products:espruino-pico:stm32f401cdu6-datasheet.pdf |Datasheet на микроконтроллер STM32F401CDU6}}
* {{ :products:espruino-pico:mcp1703t-3302e-datasheet.pdf |Datasheet на понижающий регулятор 3V3 MCP1703T-3302E}}
* {{ :products:espruino-pico:espruino-pico-scheme.zip |Исходники платы в Eagle}}