Teensy 3.5: подключение, настройка и начало работы

Teensy 3.5 — компактная платформа для разработки на базе микроконтроллера MK64FX512VMD12 с вычислительным ядром ARM Cortex® M4.

Teensy 3.5 превосходит типичные платы на базе 8-битных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:

  • Тактовая частота: 120 МГц
  • Объем Flash-памяти: 512 КБ
  • Объем RAM-памяти: 192 КБ
  • DMA-контроллер, который позволяет разгрузить центральный процессор, выполняя ресурсоёмкие операции с памятью.

В итоге на Teensy 3.5 можно разрабатывать сложные и ресурсоёмкие программы, например: обработка звука, управление многосуставными роботами или распознавание образов.

Видеообзор

Шаг 1

Подключите плату к компьютеру по USB. Для коммуникации используйте кабель micro-USB.

Шаг 2

Скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.

Шаг 3

По умолчанию среда программирования настроена только на платы семейства Arduino. Для работы с платформой Teensy 3.5 — установите дополнительный патч 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.

Элементы платы

Микроконтроллер MK64FX512VMD12

Сердцем платформы Teensy 3.5 является 32-битный микроконтроллер фирмы NXP — MK64FX512VMD12 с вычислительном ядром ARM Cortex-M4 с тактовой частотой 120 МГц. Контроллер обладает блоком памяти на 512 КБ Flash для хранения прошивки и 192 КБ RAM для хранения глобальных и статических переменных.

Микроконтроллер MKL02Z32VFG4

Что бы не занимать ни одного байта памяти основного процессора MK64FX512VMD12, для хранения и записи загрузчика используется дополнительный сопроцессор MKL02Z32VFG4.

Разъём micro-USB

Порт micro-USB предназначен для прошивки и питания платформы Teensy. Для подключения к ПК понадобиться кабель micro-USB.

Светодиодная индикация

Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN в Arduino IDE для работы со светодиодом. При задании значения высокого уровня светодиод загорается, при низком — гаснет.

Кнопка PROG

Клик по кнопке приводит к остановке выполнения пользовательской программы из Flash-памяти основного контроллера и переводит плату в режим программирования.

При подачи питания на плату, основной процессор загружает данные из Flash-памяти и исполняет записанные инструкции. При прошивки Teensy по USB, нажатии на кнопку PROG или подачи низкого сигнала на пин Prog, сопроцессор MKL02Z32VFG4 загружает код загрузчика в RAM-память основного процессора MK64FX512VMD12 и запускает его. Загрузчик стирает всю 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,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать 3,3 В. Но есть дополнительный бонус, все GPIO пины 057 толерантны к 5 вольтам, так что смело можете подключать свои любимые датчики к этой платформе.

  • Цифровые входы/выходы: 58 пинов: 057
    Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 25 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
  • АЦП: 27 пинов: A0A26
    Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность АЦП установлена в 10 бит. Используйте функцию analogReadResolution() для смены разрядности АЦП. Диапазон входного напряжения от 0 до 3,3 В. При подаче большего напряжения микроконтроллер может выйти из строя.
  • ЦАП: 2 пина: A21 и A22
    Позволяет выводить аналоговое напряжение из цифровых значений. Разрядность ЦАП не меняется и установлена в 12 бит.
  • ШИМ: 20 пинов: 210,14, 2023,2930 и 3538
    Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. По умолчанию разрядность ШИМ установлена в 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
  • 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

Принципиальная схема

Габаритный чертёж

Характеристики

  • Микроконтроллер: NXP MK64FX512VMD12
  • Ядро: 32-битный ARM Cortex-M4
  • Тактовая частота: 120 МГц
  • Flash-память: 512 КБ
  • RAM-память: 256 КБ
  • Пинов ввода-вывода: 58 (толерантны к 5 В)
  • Пины с АЦП: 27
  • Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит)
  • Пины с ЦАП: 2
  • Разрядность ЦАП: 12 бит
  • Контакты с ШИМ: 20
  • Разрядность ШИМ: 8/10/12/16 бит (по умолчанию 8 бит)
  • Каналы DMA: 16
  • Аппаратные интерфейсы: 6× UART, 3× I²C, 3× SPI, 1× CAN
  • Входное напряжение питания:
    • через USB: 5 В
    • через пин Vin: 3,3–5 В
  • Напряжение логических уровней: 3,3 В
  • Максимальный выходной ток пина 3V3: 250 мА
  • Габариты: 62×18×4 мм

Ресурсы