====== Teensy 4.0: подключение, настройка и начало работы ======
[[amp>product/teensy-40?utm_source=man&utm_campaign=teensy356&utm_medium=wiki|Teensy 4.0]] — компактная платформа для разработки на базе микроконтроллера NXP MIMXRT1062DVL6A с вычислительным ядром ARM Cortex® M7.
{{ :products:teensy-40:teensy-40.1.jpg?nolink |}}
Teensy 4.0 превосходит типичные платы на базе 8-битных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:
* Тактовая частота: 600 МГц
* Объем Flash-памяти: 1 МБ
* Объем RAM-памяти: 2 МБ
* DMA-контроллер, который позволяет разгрузить центральный процессор, выполняя ресурсоёмкие операции с памятью.
В итоге на Teensy 4.0 можно разрабатывать сложные и ресурсоёмкие программы, например: обработка звука, управление многосуставными роботами или распознавание образов.
===== Подключение и настройка =====
==== Шаг 1 ====
Подключите плату к компьютеру по USB. Для коммуникации используйте [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|кабель micro-USB]].{{ :products:teensy-40:teensy-40-install.1.png?nolink |}}
==== Шаг 2 ====
[[articles:arduino-ide-install|Скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE.
==== Шаг 3 ====
По умолчанию среда программирования настроена только на платы семейства Arduino. Для работы с платформой Teensy 4.0 — [[:articles:teensy-install|установите дополнительный патч Teensyduino]].
===== Пример работы =====
В качестве примера повторим первый эксперимент [[:конспект-arduino:светильник-с-управляемой-яркостью|«Маячок»]] из набора [[amp>product/matryoshka-z?utm_source=man&utm_campaign=teensy-35&utm_medium=wiki|Матрёшка]]. На плате уже есть встроенный пользовательский светодиод, подключенный к ''13'' пину микроконтроллера.
void setup() {
// initialize digital pin LED_BUILTIN as an output
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// turn the LED on (HIGH is the voltage level)
digitalWrite(LED_BUILTIN, HIGH);
// wait for a 100 ms
delay(100);
// turn the LED off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW);
// wait for a 100 ms
delay(100);
}
После загрузки встроенный светодиод ''LED'' начнёт мигать 10 раз в секунду. {{ :products:teensy-40:teensy-40-blink.gif?nolink |}}
Это значит всё получилось и можно смело переходить к другим экспериментам на Teensy.
===== Элементы платы =====
{{ :products:teensy-40:teensy-40-annotation.png?nolink |}}
==== Микроконтроллер MIMXRT1062DVL6A ====
Сердцем платформы Teensy 4.0 является 32-битный микроконтроллер фирмы NXP — {{ :products:teensy-40:mimxrt1062dvl6a-datasheet.pdf |MIMXRT1062DVL6A}} с вычислительном ядром ARM Cortex-M7. Контроллер работает на тактовой частое 600 МГц и обладает 1 МБ RAM-памяти для хранения глобальных и статических переменных.
==== Flash-память W25Q16JVUXIM ====
Прошивка пользователя хранится на отдельной микросхеме внешней Flash-памяти {{ :products:teensy-40:winbond-w25q16jvuxim-datasheet.pdf |Winbond W25Q16JVUXIM}} на 2 МБ.
==== Микроконтроллер MKL02Z32VFG4 ====
Что бы не занимать ни одного байта памяти основного процессора [[#микроконтроллер_mimxrt1062dvl6a|MIMXRT1062DVL6A]], для хранения и записи загрузчика используется дополнительный сопроцессор {{ :products:teensy-40:mkl02z32vfg4-datasheet.pdf |MKL02Z32VFG4}}.
==== Разъём micro-USB ====
Порт micro-USB предназначен для прошивки и питания платформы Teensy. Для подключения к ПК понадобиться [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|кабель micro-USB]].
==== Светодиодная индикация ====
Пользовательский светодиод на ''13'' пине микроконтроллера. Используйте определение ''LED_BUILTIN'' в Arduino IDE для работы со светодиодом. При задании значения высокого уровня светодиод загорается, при низком — гаснет.
==== Кнопка PROG ====
Клик по кнопке приводит к остановке выполнения пользовательской программы из Flash-памяти основного контроллера и переводит плату в режим программирования.
При подачи питания на плату, основной процессор загружает данные из Flash-памяти и исполняет записанные инструкции.
При прошивки Teensy по USB, нажатии на кнопку PROG или подачи низкого сигнала на пин ''Prog'', сопроцессор [[#микроконтроллер_mkl02z32vfg4|MKL02Z32VFG4]] загружает код загрузчика в RAM-память основного процессора [[#микроконтроллер_mimxrt1062dvl6a|MIMXRT1062DVL6A]] и запускает его. Загрузчик стирает всю Flash-память основного процессора, считывает новые данные по USB и записывает во Flash-память. Далее плата перезагружается и основной процессор уже исполняет новые инструкции из Flash-памяти.
==== Понижающий регулятор ====
Понижающий DC-DC преобразователь {{ :products:teensy-40:tlv757p-datasheet.pdf |TLV757P}} обеспечивает питание микроконтроллера и другой логики платы при подключении питания через USB-порт или пин Vin. Диапазон входного напряжения от 3,6 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 250 мА.
По документации на регулятор {{ :products:teensy-40:tlv757p-datasheet.pdf |TLV757P}}, максимальный выходной ток составляет 1 А. Но в силу защиты платы от перегрева, в схеме используется ограничения до 250 мА.
===== Распиновка =====
[[this>_media/products:teensy-40:teensy-40-pinout.pdf|{{:products:teensy-40:teensy-40-pinout.png}}]]
==== Пины питания ====
* **VIN** Входной пин для подключения внешнего источника напряжения в диапазоне от 3,5 до 5 вольт.
* **3V3** Выходной пин от [[#понижающий_регулятор|стабилизатора напряжения]] с выходом 3,3 вольта и максимальных током 250 мА. Регулятор обеспечивает питание микроконтроллера [[#микроконтроллер_mimxrt1062dvl6a|MIMXRT1062DVL6A]] и другой вспомогательной логики платы.
* **GND** Выводы земли.
==== Пины ввода-вывода ====
В отличие от большинства плат Arduino, родным напряжением Teensy 4.0 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!
Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.
* **Цифровые входы/выходы:** 40 пинов: ''0''–''39''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **АЦП:** 14 пинов: ''14''–''26''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность АЦП установлена в 10 бит. Используйте функцию [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/|analogReadResolution()]] для смены разрядности АЦП. Диапазон входного напряжения от 0 до 3,3 В. При подаче большего напряжения микроконтроллер может выйти из строя.
* **ШИМ:** 31 пин: ''0''–''15'', ''18''–''19'', ''22''–''25'', ''28''–''29'' и ''33''–''39''\\ Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. По умолчанию разрядность ШИМ установлена в 8 бит. Используйте функцию [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/|analogWriteResolution()]] для смены разрядности ШИМ.
* **I²C** Для общения Teensy c [[amp>collection/boards?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|сенсорами]] по интерфейсу I²C.
* **I²C0**: пины ''SDA0/18'' и ''SCL0/19''
* **I²C1**: пины ''SDA1/17'' и ''SCL1/16''
* **SPI** Для общения Teensy c [[amp>collection/boards?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|сенсорами]] по интерфейсу SPI.
* **SPI**: пины ''MOSI/11'', ''MISO/12'' и ''SCK/13''
* **SPI2**: пины ''MOSI2/35'', ''MISO2/34'' и ''SCK2/37''
* **Serial/UART** Для общения Teensy c [[amp>collection/boards?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|сенсорами]] по интерфейсу UART.
* **Serial1**: пины ''TX1/1'' и ''RX1/0''
* **Serial2**: пины ''TX2/8'' и ''RX2/7''
* **Serial3**: пины ''TX3/14'' и ''RX3/15''
* **Serial4**: пины ''TX4/17'' и ''RX4/16''
* **Serial5**: пины ''TX5/20/39'' и ''RX5/21/38''
* **Serial6**: пины ''TX6/24'' и ''RX6/25''
* **Serial7**: пины ''TX7/29'' и ''RX7/28''
* **CAN** Для общения Teensy c модулями по интерфейсу CAN.
* **CAN1**: пины ''CTX1/11/22'' и ''CRX1/13/23''
* **CAN2**: пины ''CTX2/1'' и ''CRX2/0''
* **CAN3**: пины ''CTX3/31'' и ''CRX3/30''
===== Принципиальная схема =====
{{ :products:teensy-40:teensy-40-schematic.png?nolink |}}
===== Габаритный чертёж =====
[[this>_media/products:teensy-40:teensy-40-dimensions.pdf|{{:products:teensy-40:teensy-40-dimensions.png}}]]
===== Характеристики =====
* Микроконтроллер: NXP MIMXRT1062DVL6A
* Ядро: 32-битный ARM Cortex-M7
* Тактовая частота: 600 МГц
* Flash-память: 2 МБ
* RAM-память: 1 МБ
* Пинов ввода-вывода: 40
* Пины с прерыванием: 40
* Пины с АЦП: 14
* Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит)
* Пины с ШИМ: 31
* Разрядность ШИМ: 8/10/12/16 бит (по умолчанию 8 бит)
* Каналы DMA: 16
* Аппаратные интерфейсы: 7× UART, 3× I²C, 3× SPI, 3× CAN, 1× S/PDIF, 2× I²S
* Входное напряжение питания:
* через USB: 5 В
* через пин Vin: 3,3–5 В
* Напряжение логических уровней: 3,3 В
* Максимальный выходной ток пина 3V3: 250 мА
* Габариты: 35×18×4 мм
===== Ресурсы =====
* [[articles:arduino-ide-install|Установка и настройка Arduino IDE]]
* [[:articles:teensy-install|Установка патча Teensyduino для Arduino IDE]]
* [[amp>product/teensy-40?utm_source=man&utm_campaign=teensy-40&utm_medium=wiki|Teensy 4.0]] в магазине
* [[https://github.com/amperka/hardware-drawings/blob/master/teensy-40.svg|Векторное изображение Teensy 4.0]]
* [[https://grabcad.com/library/teensy-4-0-1|3D-модель Teensy 4.0]]