Teensy 3.6: подключение, настройка и начало работы
Teensy 3.6 — компактная платформа для разработки на базе микроконтроллера MK66FX1M0VMD18 с вычислительным ядром ARM Cortex® M4.
Teensy 3.6 превосходит типичные платы на базе 8-битных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:
- Тактовая частота: 180 МГц
- Объем Flash-памяти: 1 МБ
- Объем RAM-памяти: 256 КБ
- DMA-контроллер, который позволяет разгрузить центральный процессор, выполняя ресурсоёмкие операции с памятью.
В итоге на Teensy 3.6 можно разрабатывать сложные программы, например: обработка звука, управление многосуставными роботами или распознавание образов.
Видеообзор
Шаг 1
Подключите плату к компьютеру по USB. Для коммуникации используйте кабель micro-USB.
Шаг 2
Скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
Шаг 3
По умолчанию среда программирования настроена только на платы семейства Arduino. Для работы с платформой Teensy 3.6 — установите дополнительный патч Teensyduino.
Пример работы
В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод, подключенный к 13
пину микроконтроллера.
- blink.ino
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 раз в секунду.
Это значит всё получилось и можно смело переходить к другим экспериментам на Teensy.
Элементы платы
Микроконтроллер MK66FX1M0VMD18
Сердцем платформы Teensy 3.6 является 32-битный микроконтроллер фирмы NXP — MK66FX1M0VMD18 с вычислительном ядром ARM Cortex-M4 с тактовой частотой 180 МГц. Контроллер обладает блоком памяти на 1 МБ Flash для хранения прошивки и 256 КБ RAM для хранения глобальных и статических переменных.
Микроконтроллер MKL02Z32VFG4
Что бы не занимать ни одного байта памяти основного процессора MK66FX1M0VMD18, для хранения и записи загрузчика используется дополнительный сопроцессор MKL02Z32VFG4.
Разъём micro-USB
Порт micro-USB предназначен для прошивки и питания платформы Teensy. Для подключения к ПК понадобиться кабель micro-USB.
Светодиодная индикация
Пользовательский светодиод на 13
пине микроконтроллера. Используйте определение LED_BUILTIN
в Arduino IDE для работы со светодиодом. При задании значения высокого уровня светодиод загорается, при низком — гаснет.
Кнопка PROG
Клик по кнопке приводит к остановке выполнения пользовательской программы из Flash-памяти основного контроллера и переводит плату в режим программирования.
При подачи питания на плату, основной процессор загружает данные из Flash-памяти и исполняет записанные инструкции.
При прошивки Teensy по USB, нажатии на кнопку PROG или подачи низкого сигнала на пин Prog
, сопроцессор MKL02Z32VFG4 загружает код загрузчика в RAM-память основного процессора MK66FX1M0VMD18 и запускает его. Загрузчик стирает всю Flash-память основного процессора, считывает новые данные по USB и записывает во Flash-память. Далее плата перезагружается и основной процессор уже исполняет новые инструкции из Flash-памяти.
Понижающий регулятор
Понижающий линейный преобразователь LP38691 обеспечивает питание микроконтроллера и другой логики платы при подключении питания через USB-порт или пин Vin. Диапазон входного напряжения от 3,6 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 250 мА.
По документации на регулятор LP38691, максимальный выходной ток составляет 500 мА. Но в силу защиты платы от перегрева, в схеме используется ограничения до 250 мА.
Распиновка
Пины питания
- VIN Входной пин для подключения внешнего источника напряжения в диапазоне от 3,5 до 5 вольт.
- 3V3 Выходной пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 250 мА.
- GND Выводы земли.
- AGND Вывод аналоговой земли. Добавление аналоговой земли позволяет развязать между собой аналоговые и цифровые части микросхемы, уменьшить импульсные помехи, повысить инструментальную точность каналов АЦП и ЦАП.
Пины ввода/вывода
В отличие от большинства плат Arduino, родным напряжением Teensy 3.6 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!
Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.
- Цифровые входы/выходы: 58 пинов:
0
–57
Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 25 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно. - АЦП: 27 пинов:
A0
–A24
Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность АЦП установлена в 10 бит. Используйте функцию analogReadResolution() для смены разрядности АЦП. Диапазон входного напряжения от 0 до 3,3 В. При подаче большего напряжения микроконтроллер может выйти из строя. - ЦАП: 2 пина:
A21
иA22
Позволяет выводить аналоговое напряжение из цифровых значений. Разрядность ЦАП не меняется и установлена в 12 бит. - ШИМ: 20 пинов:
2
–10
,14
,20
–23
,29
–30
и35
–38
Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. По умолчанию разрядность ШИМ установлена в 8 бит. Используйте функцию analogWriteResolution() для смены разрядности ШИМ. - I²C Для общения Teensy c платами расширения и сенсорами по интерфейсу I²C.
- I²C0: пины
SDA0/8/17/18/34/48
иSCL0/7/16/19/33/47
- I²C1: пины
SDA1/38/
иSCL1/37
- I²C2: пины
SDA2/4
иSCL2/3/26
- I²C3: пины
SDA3/56
иSCL3/57
- SPI Для общения Teensy c платами расширения и сенсорами по интерфейсу SPI.
- SPI0: пины
MOSI0/7/11/28
,MISO0/8/12/39
,SCK0/13/14/27
иCS0/9/10/15/20/21
- SPI1: пины
MOSI1/0/21
,MISO1/1/5
,SCK1/20/32
иCS1/31
- SPI2: пины
MOSI2/44/52
,MISO2/45/51
,SCK2/46/53
иCS2/43/54
- Serial/UART Для общения Teensy c платами расширения и сенсорами по интерфейсу UART.
- Serial1: пины
TX1/1/5/26
иRX1/0/21
- Serial2: пины
TX2/10
иRX2/9
- Serial3: пины
TX3/8
иRX3/7
- Serial4: пины
TX4/32
иRX4/31
- Serial5: пины
TX5/33
иRX5/34
- Serial6: пины
TX6/48
иRX6/47
- CAN Для общения Teensy c модулями по интерфейсу CAN.
- CAN0: пины
CTX0/3/29
иCRX0/4/30
- CAN1: пины
CTX1/33
иCRX1/34
Принципиальная схема
Габаритный чертёж
Характеристики
- Микроконтроллер: NXP MK66FX1M0VMD18
- Ядро: 32-битный ARM Cortex-M4
- Тактовая частота: 180 МГц
- Flash-память: 1 МБ
- RAM-память: 256 КБ
- Пинов ввода-вывода: 58
- Пины с АЦП: 25
- Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит)
- Пины с ЦАП: 2
- Разрядность ЦАП: 12 бит
- Контакты с ШИМ: 22
- Разрядность ШИМ: 8/10/12/16 бит (по умолчанию 8 бит)
- Каналы DMA: 32
- Аппаратные интерфейсы: 6× UART, 4× I²C, 3× SPI, 2× CAN
- Входное напряжение питания:
- через USB: 5 В
- через пин Vin: 3,3–5 В
- Напряжение логических уровней: 3,3 В
- Максимальный выходной ток пина 3V3: 250 мА
- Габариты: 62×18×4 мм