В прошлый раз я издевался над микроконтроллерами ATtiny 85, сопрягая бедные восьминогие чипы с Arduino IDE. А потом мне захотелось посмотреть, что же за чудо такое — STM32, поклонники которых смотрят на программистов AVR (не говоря уж об ардуинщиках) с некоторым неодобрением. В процессе беглого гугления выяснилось, что STM32 «для идиотов» существует — есть проект Leaf Maple, в рамках которого — две платы на STM32F103 и среда разработки, являющая собой клон Arduino IDE.
Решающим фактором стала стоимость. Китайская версия Leaf Maple Mini продается за 4$ — это немногим дороже Arduino Nano. Заказав три штуки, я принялся ждать.
Пожалуй, со ставкой на Maple я немного поторопился — проект скорее мертв, чем жив. IDE не развивается, драйверов без бубна под Windows 8 нет, библиотеки в зачаточном состоянии, полное уныние и запустение. Ради интереса я поморгал светодиодом, запустив Maple IDE под OS X (заработало из коробки), а затем стал думать, с какой стороны подходить к плате для дальнейшего изучения.
Для начала, выяснил я вот что. В микроконтроллер STM32F103CBT6 (названия у ST, замечу, суровые) на плате Leaf Maple Mini зашит загрузчик, работающий через USB с Maple IDE. Находится он во флеш-памяти. А как программировать «голый» STM32? По-хорошему, надо использовать ST-Link, ведь он позволяет не только «заливать» прошивку, но и производить отладку. А без этой железяки что делать? Использовать «системный» загрузчик STM32, работающий по UART. Мини-плата на чипе CP2102 в закромах имеется, можно начинать чудить.
IDE, которые используются для программирования STM32, вгоняют меня в тоску. Дело в том, что я программистом не являюсь, и множественные окошки со вкладками и кучей страшных букв вызывают потаенное нежелание во всем этом копаться. Но, похоже, надо. Наименее замороченной из троицы (Keil, IAR, Coocox) мне показалась последняя.
Итак, последовательность действий. Ставим Coocox, к нему — компилятор GCC для ARM. Пишем шедевральный проект — Blink. Затем на монтажной «доске» собираем конструкцию из Maple Mini и CP2102. Выясняем, что для заливки прошивки нужно что-то еще, ибо «кокос» хочет ST-Link. Напрямую скомпилированный код легко прошивается по UART с помощью утилиты от ST — Flash Loader Demonstrator. Теперь подробнее.
Кокос с граблями
Без граблей у меня никак. Первая же «засада» — текущая версия IDE (2.0) — это нечто странное, внезапно не поддерживающее STM32F1xx. Удаляем, ставим версию 1.7.7, теперь можем создать проект. К проекту подключаем GPIO, берем из этого модуля пример с нужным нам Blink и немного его переделываем, чтобы задействовать светодиод Maple Mini (PORT B PIN 1). Инициализация портов тут — целая песня (понятная, но более сложная, чем на AVR). То есть, нужно не просто сказать, мол, этот порт — выход. Этот порт — его надо включить и тактировать, и будет он выходом с бантиком и плюшечкой, а не с закорючкой и гвоздиком…
Сборка железа
Тут все просто — берем модуль на CP2102 и соединяем с STM32.
STM — 2102
RX1 — TX
TX1 — RX
GND — GND
Vin — VCC
Хитрость одна — как заставить STM32F103 запускаться в режиме загрузчика UART. Процесс неплохо описан на сайте Leaf Labs в разделе «Что делать, если вы запороли USB загрузчик». Подключаем ножку BOOT1 к земле, нажимаем RESET и вторую кнопку, отпускаем RESET, отпускаем вторую кнопку. Привет, загрузчик!
Прожигаем!
Осталось запустить Flash Loader Demonstrator и «скормить» ему bin-файл, болтающийся после компиляции где-то в недрах проекта. Любопытно, как называются операции в этой утилите. Download — это В чип. А Upload — это ИЗ чипа. Мое восприятие бунтует, но, может быть, тут так принято.
Итого
Нельзя просто так взять и поморгать светодиодом на STM32. Сделать это двумя щелчками мыши (как в Arduino) или парой команд avr-gcc и avrdude тут не выйдет. Попытка (Maple IDE) была, но сдулась. Поэтому, придется реально садиться и разбираться, как тут чего работает.
UPD. Добавил опрос.
Начав свое знакомство с STM32 с китайских клонов Leaf Maple Mini (потому что самый дешевый вариант, 4$), я столкнулся с неудобством. Поскольку на Maple IDE рассчитывать не стоит, значит, приходится работать с «голым» STM32. А раз ST-Link у меня нет, заливать программу я могу только по UART, что неудобно (и нет возможности отладки).
Но хабраюзер imwode ровно через 9 часов после моей публикации написал ответный материал, из которого я узнал прекрасное: отладчик ST-Link основан на том же микроконтроллере STM. При этом, прошивка отладчика умельцами вытащена и готова к загрузке на неродные устройства. Maple Mini подходит идеально: ничего лишнего, USB распаян, надо только несколько резисторов подключить.
Нужно:
1. Соединить PA5 и PB13 (D6 и D30 у Maple Mini). Это будет линия SWСLK.
2. Между PB14 и PB12 (D29 и D31) поставить резистор в 220 Ом. PB14 (D29) — это линия SWDIO.
И тут тоже грабли!
После прошивки, по идее, ПК должен распознать плату как ST-Link. Но нет. Как будто ничего вообще не подключено. На поиск граблей было потрачено энное количество времени, а надо было всего лишь повнимательнее посмотреть на схему Maple Mini, а конкретно — на реализацию линии USB D+. Она подтягивается к +3.3В через резистор 1.5 КОм, но включается подтяжка транзисторным ключом. Который управляется с ножки МК и по умолчанию выключен. А раз так, ПК просто не понимает, что подключено к USB-порту. Не будем вмешиваться в плату, а просто «повесим» еще резистор в 1.5 КОм между +3.3В и D+ (D23).
Теперь у нас появилось устройство ST-Link. Ставим ST-Link Utility, там и драйвер имеется. Обновляем прошивку нашего ST-Link (через эту самую Utility), и с отладчиком можно начинать работу. По крайней мере, я подключил к нему вторую Maple Mini: SWCLK к PA14 (D21), SWDIO к PA13 (D22) и успешно как залил откомпилированный Blink, так и произвел его дебаг средствами Coocox.
В принципе, устройство уже можно оснащать нормальным разъемом и запихивать в корпус. Не забыв перед этим добыть «нормальные» резисторы, а не то, что под руку подвернулось. Не помешает и какая-нибудь светодиодная индикация. Я думаю, многие самодельщики подтвердят, что переход от «спички, желуди, синяя изолента» к законченному устройству — самый сложный и длительный, ибо «зачем, оно и так работает, хоть и провода торчат во все стороны».
И, да, китайский ST-Link можно купить за те же 4$ на Aliexpress, например.
Основополагающая тема на Easyelectionics.
Прошивка (тожe Easyelectronics).
Описание Leaf Maple Mini
ST-Link Utility
Мануал на «родной» ST-Link
Рассмотрим, как подключить плату STM32 Leaf Maple Mini к Windows Studio Code с PlatformIO с использованием загрузчика bootloader 2.0 в режиме DFU, на Windows 10.
На плате Leaf Maple Mini зашит загрузчик позволяющий загружать нашу прошивку через USB порт, как это делается в Arduino IDE. Загрузка производится в режиме DFU mode, что требует установки драйверов VID_1EAF&PID_0003.
При подключении плата определяется системой как COM порт, но в режиме загрузки прошивки переключается в режим DFU mode.
Прежде чем пытаться что-то прошить в наш контроллер нам необходимо установить драйвер.
Качаем набор компонентов для работы с платами STM32 для Arduino IDE
Подключаем нашу плату по USB
Переводим нашу плату в режим работы DFU mode:
Кратковременно нажимаем кнопку RESET и пока быстро мигает светодиод жмем кнопку but=32 и удерживаем некоторое время.
Или зажимаем кнопку but=32 и кратковременно нажимаем RESET и держим некоторое время.
В диспетчере задач у нас должно появиться устройство Maple 003 которое требует установки драйверов.
Распаковываем скаченный ранее архив, идем в папку ~\Arduino_STM32-master\drivers\win\ запускаем от АДМИНИСТРАТОРА — install_drivers.bat, драйвер должен установиться. Жмем RESET на плате, теперь установиться драйвер COM порта.
Если драйвера не установились или плата не определяется системой, пойдем по другому пути, зашьем загрузчик сами.
Я буду зашивать с использованием ST-LINK V2, но мы так же может прошить, используя COM переходники.
Качаем и устанавливаем:
Драйвер ST-LINK_V2
STM32 ST-LINK Utility
Подключаем ST-LINK V2 к плате Leaf Maple Mini:
ST-LINK V2 | Maple Mini | |
---|---|---|
2 | SWCLK (SWD clock) | D21 |
4 | SWDIO (SWD data input/output) | D22 |
6 | GND (Ground) | GND |
8 | 3.3V | VCC |
Запускаем STM32 ST-LINK Utility
Переводим нашу плату в режим DFU mode см.выше.
Жмем в программе Connect
Жмем на вкладку Binary File и выбираем скачанный ранее файл maple_mini_boot20.bin
Жмем Program Verify
В открывшемся окне жмем Start
Начнется прошивка нашего загрузчика.
Теперь еще раз пробуем установить драйвера описанным выше способом.
Запускам Windows Studio Code с установленной PlatformIO и добавляем платформы как на картинке
Создаем проект из примеров ST STM32 –> arduino-blink
Переходим в созданный проект
Правим platformio.ini
[env:maple_mini_b20]
platform = ststm32
framework = arduino
board = maple_mini_b20
Подключаем нашу плату по USB, она определиться системой как COM порт.
Жмем 3 см. картинку. Ждем окончания заливки прошивки в плату.
Если у вас выскакивает ошибка:
maple_loader v0.1
Resetting to bootloader via DTR pulse
Searching for DFU device [1EAF:0003]...
dfu-util - (C) 2007-2008 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Couldn't find the DFU device: [1EAF:0003]
Значит, вы не поставили драйвера на плату.
Еще информация по данной плате Leaf Maple Mini читать
Использование в Arduino IDE читать
Конечно, использовать DFU mode для заливки наших прошивок в плату по USB не есть хорошо, лучше прошивать, используя ST-LINK V2. Так же использование библиотек Arduino для работы с платой производительности нам не прибавит.
Разработку под STM32 лучше конечно производить в STM32CubeIDE — бесплатная среда разработки от STM, полностью поддерживает STM32CubeMX
Я использую Visual Studio 2019 Community с надстройкой VisualGDB – где Visual Studio 2019 Community – бесплатна, а вот VisualGDB стоит денег. Данная связка в последних версиях прекрасно работает с STM32CubeMX
Проект Leaf Maple призван стать аналогом Arduino для микроконтроллеров STM32. Пока нельзя сказать, что проект «выстрелил», но на мой взгляд достоин внимания. Заказать китайский клон Maple Mini можно всего за 4USD.
 
Полную спецификацию можно посмотреть на официальном сайте фирмы STMicroelectronics: STM32F103x8 STM32F103xB datasheet
подключив микроконтроллер к USB порту в dmesg имеем такой лог:
usb 5-2: new full-speed USB device number 11 using ohci-pci usb 5-2: New USB device found, idVendor=1eaf, idProduct=0003 usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 5-2: Product: Maple 003 usb 5-2: Manufacturer: LeafLabs usb 5-2: SerialNumber: LLM 003
Документация на Leaf Maple здесь: LeafLabs Documentation Index. Нам пока будет интересен только Quick Start. Следуя по ссылке в документации: «Установка и запуск IDE», попадаем на страницу загрузки Maple IDE:
Как видно, из Виндоус систем поддреживается только XP, но меня интересует конечно же версия для linux 64-bit. Cкачав и распаковав архив, следует заглянуть в папку tools, там лежат правила для udev.
Запустив maple-ide видим еще один клон среды разработки Processing
Найдя в примерах Blink и выбрав в Tools плату: LeafLabs Maple Mini Rev2 to Flash можно нажать на компиляцию, а если микроконтроллер подключен, то можно и на Upload. В отличие от Arduino IDE не нужно выбирать порт и программатор. Последовательный порт здесь нужен только для Serial Monitor, и у меня порт ACM0 в системе появился только после первой прошивки Blink’ом
При прошивке, в консоль выкинет такой лог:
Going to build using 'armcompiler' (ARM) Compiling core... No libraries to compile. Compiling the sketch... Linking... Computing sketch size... /tmp/build4053041559428951272.tmp/Blink.cpp.bin : section size addr .data 12632 0 Total 12632 Binary sketch size is reported above. Check it against a 108000 byte maximum. Loading via dfu-util Resetting to bootloader via DTR pulse Searching for DFU device [1EAF:0003]... Found it! Opening USB Device 0x1eaf:0x0003... Found Runtime: [0x1eaf:0x0003] devnum=21, cfg=0, intf=0, alt=1, name="DFU Program FLASH 0x08005000" Claiming USB DFU Interface... Setting Alternate Setting ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Transfer Size = 0x0400 bytes_per_hash=252 Starting download: [##################################################] finished! error resetting after download: No such file or directory state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present Done! Resetting USB to switch back to runtime mode
Мaple mini — клон платы STM32 Leaf Maple Mini
Полнофункциональный ARM контроллер на основе процессора ARM Cortex M3. На плате установлен процессор STM32F103CBT6. Плата приходит с нераспаянными гребенками. Плата не дорогая, размер небольшой. Хорошо подходит для небольших устройств Размеры платы: 50 х 18 мм
Программируется через ST-LINK. Плата сама может использоваться как программатор ST-Link при соответствующей прошивке.
Для программирования через ST-Link подключить
1 VDD_TARGET VDD from application — не нужно
2 SWCLK SWD clock —>D21
3 GND Ground —->GND
4 SWDIO SWD data input/output —>D22
Внимание! Питание 3.3V через пин VCC, либо питание через USB, либо до 3-12V через VIN.
При программировании через STM32Discovery можно использовать питание от одного USB хаба, чтобы не нагружать схему питания Discovery
описание и документация на сайте ST
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF189782?sc=internet/mcu/product/189782.jsp#
Technical Specifications
:MCU: STM32F103CBT6 a 32-bit ARM Cortex M3 microprocessor
Clock Speed: 72 MHz
128 KB Flash and 20 KB SRAM
34 digital I/ pins (GPIOs)
12 PWM pins at 16 bit resolution
9 analog input (ADC) pins at 12 bit resolution
2 SPI peripherals
2 I2C peripherals
7 Channels of Direct Memory Access (DMA) (dma.h)
3 USART (serial port) peripherals
1 advanced and 3 general-purpose timers
Dedicated USB port for programming and communications
JTAG
Nested Vectored Interrupt Controller (NVIC) (including external interrupt on GPIOs)
Supplies up to 500 mA at 3.3 V, with separate 250 mA digital and analog regulators for low-noise analog performance
Open source, four layer design
Support for low power, sleep, and standby modes (<500 μA)
Operating Voltage: 3.3 V
Input Voltage (recommended): 3 V — 12 V
Распиновка Maple Mini STM32Note that this table is not exhaustive; on some pins, more peripherals are available than are listed here.
Pin |
GPIO |
ADC |
Timer |
I2C |
UART |
SPI |
5 V Tolerant? |
D0 |
PB11 |
|
|
2_SDA |
3_RX |
|
Yes |
D1 |
PB10 |
|
|
2_SCL |
3_TX |
|
Yes |
D2 |
PB2 |
|
|
|
|
|
Yes |
D3 |
PB0 |
CH8 |
3_Ch4 |
|
|
|
|
D4 |
PA7 |
CH7 |
3_Ch3 |
|
|
1_MOSI |
|
D5 |
PA6 |
CH6 |
3_Ch2 |
|
|
1_MISO |
|
D6 |
PA5 |
CH5 |
|
|
|
1_SCK |
|
D7 |
PA4 |
Ch5 |
|
|
2_CK |
1_NSS |
|
D8 |
PA3 |
Ch4 |
2_Ch5 |
|
2_RX |
|
|
D9 |
PA2 |
Ch3 |
2_Ch4 |
|
2_TX |
|
|
D10 |
PA1 |
Ch2 |
2_Ch3 |
|
2_RTS |
|
|
D11 |
PA0 |
CH0 |
2_Ch2_ETR |
|
2_CTS |
|
|
D12 |
PC15 |
|
|
|
|
|
|
D13 |
PC14 |
|
|
|
|
|
|
D14 |
PC13 |
|
|
|
|
|
|
D15 |
PB7 |
|
4_Ch3 |
1_SDA |
|
|
Yes |
D16 |
PB6 |
|
4_Ch2 |
2_SCL |
|
|
Yes |
D17 |
PB5 |
|
|
1_SMBA |
|
|
|
D18 |
PB4 |
|
|
|
|
|
Yes |
D19 |
PB3 |
|
|
|
|
|
Yes |
D20 |
PA15 |
|
|
|
|
|
Yes |
D21 |
PA14 |
|
|
|
|
|
Yes |
D22 |
PA13 |
|
|
|
|
|
Yes |
D23 |
PA12 |
|
1_ETR |
|
1_RTS |
|
Yes |
D24 |
PA11 |
|
1_Ch5 |
|
1_CTS |
|
Yes |
D25 |
PA10 |
|
1_Ch4 |
|
1_RX |
|
Yes |
D26 |
PA9 |
|
1_Ch3 |
|
1_TX |
|
Yes |
D27 |
PA8 |
|
1_Ch2 |
|
1_CK |
|
Yes |
D28 |
PB15 |
|
|
|
|
2_MOSI |
Yes |
D29 |
PB14 |
|
|
|
3_RTS |
2_MISO |
Yes |
D30 |
PB13 |
|
|
|
3_CTS |
2_SCK |
Yes |
D31 |
PB12 |
|
1_BKIN |
2_SMBA |
3_CK |
2_NSS |
Yes |
D32 |
PB8 |
|
4_Ch4 |
|
|
|
Yes |
D33 |
PB1 |
CH9 |
3_Ch5 |
|
|
|
|
Источник <http://static.leaflabs.com/pub/leaflabs/maple-docs/latest/hardware/maple-mini.html>
GPIO Port Pin Map
The following table shows what pins are associated with each GPIO port.
GPIOA |
GPIOB |
GPIOC |
PA0: D11 |
PB0: D3 |
PC0: — |
PA1: D10 |
PB1: D33 |
PC1: — |
PA2: D9 |
PB2: D2 |
PC2: — |
PA3: D8 |
PB3: D19 |
PC3: — |
PA4: D7 |
PB4: D18 |
PC4: — |
PA5: D6 |
PB5: D17 |
PC5: — |
PA6: D5 |
PB6: D16 |
PC6: — |
PA7: D4 |
PB7: D15 |
PC7: — |
PA8: D27 |
PB8: D32 |
PC8: — |
PA9: D26 |
PB9: — |
PC9: — |
PA10: D25 |
PB10: D1 |
PC10: — |
PA11: D24 |
PB11: D0 |
PC11: — |
PA12: D23 |
PB12: D31 |
PC12: — |
PA13: D22 |
PB13: D30 |
PC13: D14 |
PA14: D21 |
PB14: D29 |
PC14: D13 |
PA15: D20 |
PB15: D28 |
PC15: D12 |
Timer Pin Map
The following table shows what pins are associated with a particular timer’s capture/compare channels.
Timer |
Ch. 1 |
Ch. 2 |
Ch. 3 |
Ch. 4 |
1 |
D27 |
D26 |
D25 |
D24 |
2 |
D11 |
D10 |
D9 |
D8 |
3 |
D5 |
D4 |
D3 |
D33 |
4 |
D16 |
D15 |
D32 |
|
EXTI Line Pin Map
The following table shows which pins connect to which EXTI lines.
EXTI Line |
Pins |
EXTI0 |
D3, D11 |
EXTI1 |
D10, D33 |
EXTI2 |
D2, D9 |
EXTI3 |
D8, D19 |
EXTI4 |
D7, D18 |
EXTI5 |
D6, D17 |
EXTI6 |
D5, D16 |
EXTI7 |
D4, D15 |
EXTI8 |
D27, D32 |
EXTI9 |
D26 |
EXTI10 |
D1, D25 |
EXTI11 |
D0, D24 |
EXTI12 |
D23, D31 |
EXTI13 |
D14, D22, D30 |
EXTI14 |
D13, D21, D29 |
EXTI15 |
D12, D20, D28 |
USART Pin Map
The Maple Mini has three serial ports (also known as USARTs). They communicate using the pins given in the following table.
Serial Port |
TX |
RX |
CK |
CTS |
RTS |
Serial1 |
D26 |
D25 |
D27 |
D24 |
D23 |
Serial2 |
D9 |
D8 |
D7 |
D11 |
D10 |
Serial3 |
D1 |
D0 |
D31 |
D30 |
D29 |
Board-Specific Values
This section lists the Maple Mini’s board-specific values.
Источник <http://static.leaflabs.com/pub/leaflabs/maple-docs/latest/hardware/maple-mini.html>
Мaple mini — клон платы STM32 Leaf Maple Mini
Полнофункциональный ARM контроллер на основе процессора ARM Cortex M3. На плате установлен процессор STM32F103CBT6. Плата приходит с нераспаянными гребенками. Плата не дорогая, размер небольшой. Хорошо подходит для небольших устройств Размеры платы: 50 х 18 мм
Программируется через ST-LINK. Плата сама может использоваться как программатор ST-Link при соответствующей прошивке.
Для программирования через ST-Link подключить
1 VDD_TARGET VDD from application — не нужно
2 SWCLK SWD clock —>D21
3 GND Ground —->GND
4 SWDIO SWD data input/output —>D22
Внимание! Питание 3.3V через пин VCC, либо питание через USB, либо до 3-12V через VIN.
При программировании через STM32Discovery можно использовать питание от одного USB хаба, чтобы не нагружать схему питания Discovery
описание и документация на сайте ST
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF189782?sc=internet/mcu/product/189782.jsp#
Technical Specifications
:MCU: STM32F103CBT6 a 32-bit ARM Cortex M3 microprocessor
Clock Speed: 72 MHz
128 KB Flash and 20 KB SRAM
34 digital I/ pins (GPIOs)
12 PWM pins at 16 bit resolution
9 analog input (ADC) pins at 12 bit resolution
2 SPI peripherals
2 I2C peripherals
7 Channels of Direct Memory Access (DMA) (dma.h)
3 USART (serial port) peripherals
1 advanced and 3 general-purpose timers
Dedicated USB port for programming and communications
JTAG
Nested Vectored Interrupt Controller (NVIC) (including external interrupt on GPIOs)
Supplies up to 500 mA at 3.3 V, with separate 250 mA digital and analog regulators for low-noise analog performance
Open source, four layer design
Support for low power, sleep, and standby modes (<500 μA)
Operating Voltage: 3.3 V
Input Voltage (recommended): 3 V — 12 V
Распиновка Maple Mini STM32Note that this table is not exhaustive; on some pins, more peripherals are available than are listed here.
Pin |
GPIO |
ADC |
Timer |
I2C |
UART |
SPI |
5 V Tolerant? |
D0 |
PB11 |
|
|
2_SDA |
3_RX |
|
Yes |
D1 |
PB10 |
|
|
2_SCL |
3_TX |
|
Yes |
D2 |
PB2 |
|
|
|
|
|
Yes |
D3 |
PB0 |
CH8 |
3_Ch4 |
|
|
|
|
D4 |
PA7 |
CH7 |
3_Ch3 |
|
|
1_MOSI |
|
D5 |
PA6 |
CH6 |
3_Ch2 |
|
|
1_MISO |
|
D6 |
PA5 |
CH5 |
|
|
|
1_SCK |
|
D7 |
PA4 |
Ch5 |
|
|
2_CK |
1_NSS |
|
D8 |
PA3 |
Ch4 |
2_Ch5 |
|
2_RX |
|
|
D9 |
PA2 |
Ch3 |
2_Ch4 |
|
2_TX |
|
|
D10 |
PA1 |
Ch2 |
2_Ch3 |
|
2_RTS |
|
|
D11 |
PA0 |
CH0 |
2_Ch2_ETR |
|
2_CTS |
|
|
D12 |
PC15 |
|
|
|
|
|
|
D13 |
PC14 |
|
|
|
|
|
|
D14 |
PC13 |
|
|
|
|
|
|
D15 |
PB7 |
|
4_Ch3 |
1_SDA |
|
|
Yes |
D16 |
PB6 |
|
4_Ch2 |
2_SCL |
|
|
Yes |
D17 |
PB5 |
|
|
1_SMBA |
|
|
|
D18 |
PB4 |
|
|
|
|
|
Yes |
D19 |
PB3 |
|
|
|
|
|
Yes |
D20 |
PA15 |
|
|
|
|
|
Yes |
D21 |
PA14 |
|
|
|
|
|
Yes |
D22 |
PA13 |
|
|
|
|
|
Yes |
D23 |
PA12 |
|
1_ETR |
|
1_RTS |
|
Yes |
D24 |
PA11 |
|
1_Ch5 |
|
1_CTS |
|
Yes |
D25 |
PA10 |
|
1_Ch4 |
|
1_RX |
|
Yes |
D26 |
PA9 |
|
1_Ch3 |
|
1_TX |
|
Yes |
D27 |
PA8 |
|
1_Ch2 |
|
1_CK |
|
Yes |
D28 |
PB15 |
|
|
|
|
2_MOSI |
Yes |
D29 |
PB14 |
|
|
|
3_RTS |
2_MISO |
Yes |
D30 |
PB13 |
|
|
|
3_CTS |
2_SCK |
Yes |
D31 |
PB12 |
|
1_BKIN |
2_SMBA |
3_CK |
2_NSS |
Yes |
D32 |
PB8 |
|
4_Ch4 |
|
|
|
Yes |
D33 |
PB1 |
CH9 |
3_Ch5 |
|
|
|
|
Источник <http://static.leaflabs.com/pub/leaflabs/maple-docs/latest/hardware/maple-mini.html>
GPIO Port Pin Map
The following table shows what pins are associated with each GPIO port.
GPIOA |
GPIOB |
GPIOC |
PA0: D11 |
PB0: D3 |
PC0: — |
PA1: D10 |
PB1: D33 |
PC1: — |
PA2: D9 |
PB2: D2 |
PC2: — |
PA3: D8 |
PB3: D19 |
PC3: — |
PA4: D7 |
PB4: D18 |
PC4: — |
PA5: D6 |
PB5: D17 |
PC5: — |
PA6: D5 |
PB6: D16 |
PC6: — |
PA7: D4 |
PB7: D15 |
PC7: — |
PA8: D27 |
PB8: D32 |
PC8: — |
PA9: D26 |
PB9: — |
PC9: — |
PA10: D25 |
PB10: D1 |
PC10: — |
PA11: D24 |
PB11: D0 |
PC11: — |
PA12: D23 |
PB12: D31 |
PC12: — |
PA13: D22 |
PB13: D30 |
PC13: D14 |
PA14: D21 |
PB14: D29 |
PC14: D13 |
PA15: D20 |
PB15: D28 |
PC15: D12 |
Timer Pin Map
The following table shows what pins are associated with a particular timer’s capture/compare channels.
Timer |
Ch. 1 |
Ch. 2 |
Ch. 3 |
Ch. 4 |
1 |
D27 |
D26 |
D25 |
D24 |
2 |
D11 |
D10 |
D9 |
D8 |
3 |
D5 |
D4 |
D3 |
D33 |
4 |
D16 |
D15 |
D32 |
|
EXTI Line Pin Map
The following table shows which pins connect to which EXTI lines.
EXTI Line |
Pins |
EXTI0 |
D3, D11 |
EXTI1 |
D10, D33 |
EXTI2 |
D2, D9 |
EXTI3 |
D8, D19 |
EXTI4 |
D7, D18 |
EXTI5 |
D6, D17 |
EXTI6 |
D5, D16 |
EXTI7 |
D4, D15 |
EXTI8 |
D27, D32 |
EXTI9 |
D26 |
EXTI10 |
D1, D25 |
EXTI11 |
D0, D24 |
EXTI12 |
D23, D31 |
EXTI13 |
D14, D22, D30 |
EXTI14 |
D13, D21, D29 |
EXTI15 |
D12, D20, D28 |
USART Pin Map
The Maple Mini has three serial ports (also known as USARTs). They communicate using the pins given in the following table.
Serial Port |
TX |
RX |
CK |
CTS |
RTS |
Serial1 |
D26 |
D25 |
D27 |
D24 |
D23 |
Serial2 |
D9 |
D8 |
D7 |
D11 |
D10 |
Serial3 |
D1 |
D0 |
D31 |
D30 |
D29 |
Board-Specific Values
This section lists the Maple Mini’s board-specific values.
Источник <http://static.leaflabs.com/pub/leaflabs/maple-docs/latest/hardware/maple-mini.html>
Эта страница является общим источником информации, относящейся к Maple Мини. Maple Mini — уменьшенная версия Maple, которая устанавливается на макетный.
Вы можете включить Maple Mini через USB-штекер или от Vin непосредственно.
Предупреждение
Шелкография на Maple Mini предполагает, что она примет входное напряжение до 16 В. Мы рекомендуем применять не более чем 12 В , и потенциально даже ниже в зависимости от тока оформить требования заявки.Пожалуйста, смотрите Power Инструкция по Maple Mini для больше информации.
Регулировка мощности на клене обеспечивается двумя линейными с малым падением напряжения регуляторы напряжения (Часть MCP1703 от Microchip, в Пакет СОТ-23А. Вы можете скачать таблицу здесь). Один из регуляторов подает питание на цифровую плоскость напряжения; другой подает питание на аналоговую плоскость напряжения.
Эти регуляторы напряжения номинально принимают входное напряжение до 16 В. В Кроме того, в то время как максимальный длительный выходной ток для платы 250 мА, если вы отключаете питание от более высоких напряжений, количество отключенный ток, который может подаваться, снижается из-за необходимости регулирования рассеять дополнительную мощность.Так что, если вы отключаете питание от 12 В, максимальный ток составляет около 40 мА при комнатной температуре. В общем (опять же, при комнатной температуре) максимальная мощность рассеяния (PD) для чипа около 0,37 Вт, а выходной ток = PD / (Vin-Vout). Для точного максимального тока расчеты, пожалуйста, обратитесь к таблице данных, связанной выше.
Если вы планируете получать большое количество тока с кленовой доски, это необходимо обеспечить входную мощность как можно ближе к 3,3 В возможно. Питание микроконтроллерной схемы и светодиодов на плате один занимает примерно 30 мА, так что если вы питаете плату от 12 В, что оставляет только 10 мА (в лучшем случае) доступным для питания любого пользователя схема.Попытка извлечь более 10 мА может привести к короткому замыканию из-за регуляторов мощности и кирпичной кладки.
Maple Mini имеет всего 34 входа / выхода, пронумерованных D0 через D33. Эти цифры соответствуют числовым значениям рядом к каждому заголовку на шелкографии Maple Mini. Тем не менее, некоторые из них по умолчанию имеют специальное использование.
Контакт D23 — это линия USB D +, а D24 — это USB D- линия. Чтобы использовать их в качестве GPIO, ваша программа должна будет отключить SerialUSB первый.Имейте в виду, однако, что отключение SerialUSB означает, что загрузчик не будет работать должным образом, и вам нужно будет использовать Perpetual Bootloader Mode для следующей загрузки.
Контакт D32 — это мини-контакт кнопки . Таким образом, это в основном полезно в качестве ввода . PIN-код будет читать ВЫСОКИЙ, когда кнопка нажата .
Пин D33 — это светодиодный штырь Mini . Это Таким образом, в основном полезен в качестве выхода .Светодиод будет светиться, когда ВЫСОКОЕ значение записано в . (Он также поддерживает PWM для более тонкой регулировки яркости).
В этой таблице приведены сводные данные о доступных функциях для каждого GPIO. штифт, по периферийному типу. «5 В?» документы столбца, независимо от того, штырь 5 Вольт терпимый .
Обратите внимание, что эта таблица не является исчерпывающей; на некоторых выводах больше периферии доступны, чем перечислены здесь.
Карта контактов порта GPIOВ следующей таблице показано, какие выводы связаны с каждым GPIO порт .
GPIOA | GPIOB | GPIOC |
---|---|---|
PA0: D11 | PB0: D3 | PC0: — |
PA1: D10 | PB1: D33 | ПК1: — |
PA2: D9 | PB2: D2 | ПК2: — |
PA3: D8 | PB3: D19 | ПК3: — |
PA4: D7 | PB4: D18 | ПК4: — |
PA5: D6 | PB5: D17 | PC5: — |
PA6: D5 | PB6: D16 | ПК6: — |
PA7: D4 | PB7: D15 | ПК7: — |
PA8: D27 | PB8: D32 | ПК8: — |
PA9: D26 | PB9: — | ПК9: — |
PA10: D25 | PB10: D1 | PC10: — |
PA11: D24 | PB11: D0 | ПК11: — |
PA12: D23 | PB12: D31 | PC12: — |
PA13: D22 | PB13: D30 | PC13: D14 |
PA14: D21 | PB14: D29 | PC14: D13 |
PA15: D20 | PB15: D28 | PC15: D12 |
В следующей таблице показано, какие выводы связаны с конкретным захват таймера / сравнение каналов.
Таймер | Ch. 1 | Ch. 2 | Ch. 3 | Ch. 4 |
---|---|---|---|---|
1 | D27 | D26 | D25 | D24 |
2 | D11 | D10 | D9 | D8 |
3 | D5 | D4 | D3 | D33 |
4 | D16 | D15 | D32 |
В следующей таблице показано, какие контакты подключены к каким линиям EXTI .
EXTI Line | Пинов |
---|---|
EXTI0 | D3, D11 |
EXTI1 | D10, D33 |
EXTI2 | D2, D9 |
EXTI3 | D8, D19 |
EXTI4 | D7, D18 |
EXTI5 | D6, D17 |
EXTI6 | D5, D16 |
EXTI7 | D4, D15 |
EXTI8 | D27, D32 |
EXTI9 | D26 |
EXTI10 | D1, D25 |
EXTI11 | D0, D24 |
EXTI12 | D23, D31 |
EXTI13 | D14, D22, D30 |
EXTI14 | D13, D21, D29 |
EXTI15 | D12, D20, D28 |
Maple Mini имеет три последовательных порта (также известный как USART ).Они общаются, используя контакты, указанные в следующем стол.
Серийный порт | TX | RX | СК | CTS | РТС |
---|---|---|---|---|---|
Serial1 | D26 | D25 | D27 | D24 | D23 |
Serial2 | D9 | D8 | D7 | D11 | D10 |
Serial3 | D1 | D0 | D31 | D30 | D29 |
Maple Mini имеет электрически изолированную аналоговую плоскость питания с собственный регулятор и геометрически изолированная заземляющая плоскость, подключенная к цифровая плоскость с помощью индуктора.Его аналоговые входные контакты, D3 — D11, выложены так, чтобы соответствовать этим аналоговым плоскостям, а наши измерения показывают, что они обычно предлагают малошумящий АЦП производительность. Однако аналоговые характеристики могут отличаться в зависимости от деятельность других GPIO. Обратитесь к оборудованию Maple Mini файлы дизайна для более подробной информации.
Схемы оборудования и файлы макетов платы доступны в Maple Mini GitHub хранилище.
На главной странице репозитория GitHub вы можете загрузить весь хранилище, нажав кнопку «Скачать».Если вы знакомы с помощью Git вы также можете клонировать репозиторий в командной строке с
$ git clone git: //github.com/leaflabs/maplemini.git,
последний
Начало работы
Конфигурация
Инструменты
Maple Mini имеет 34 входа / выхода, пронумерованных от D0 до D33. Метка Maple Mini на экране соответствует порту и прилегающим к нему. Тем не менее, они по умолчанию имеют специальное назначение.
D23 — это USB-порт D +, D24 — это USB D-. Такие, как их использование в качестве GPIO, то ваша программа должна сначала отключить порт USB. Но вы знаете, отключение последовательного загрузчика USB означает, что приоритет не будет работать, вам нужно будет передать Perpetual Bootloader для следующего обновления.
Порт D32 — это порт мини-кнопки. Поэтому он в основном используется в качестве входного порта. Когда клавиша нажата, магнитный порт будет читать высоко.
Порт D33 — это мини светодиодный порт. Поэтому его основная роль заключается в качестве выходного порта. Когда будет написано с высоким, светодиодные фонари будут гореть
,