Приехала вчера крошечная платка на STM32F103C8.
Это 48ногий 32битный микроконтроллер. И это отличный вариант апгрейда для тех, кто использует Arduino.
Для масштаба положил рядом с Arduino Pro, которая меньше обычной Arduino Uno:
По размерам сам микроконтроллер точно такой же, только шаг ножек не 0.8, а 0.5мм, поэтому их поместилось в тот же корпус 48, а не 32. А вот плата с ним поменьше и стоит от $10 с доставкой.
А что у нас с функционалом?
Arduino
32 kB Flash
2 kB RAM
1 kB EEPROM
8-битная архитектура ATMEL AVR, до 20МГц, в Arduino работает на 16МГц. 1 MIPS/MHz
Напряжение питания 5В или 3.3В на 8МГц и не 5В-толерантно.
Пины общего назначения GPIO — 20
Из них:
PWM — 6 (аппаратный PWM для управления сервоприводами — 2)
Входов АЦП — 6 (10 битный)
Периферия:
Шина I2C
Шина SPI
1 UART
1х 16 битный таймер
2х 8 битных таймера
Ну и по мелочам немного: контроллер прерываний, watchdog.
Программируется либо через SPI — 4 проводный интерфейс (MOSI, MISO, SCK, RST) или через UART, если предварительно прошить бутлоадер, который занимает до 2кб флеша.
STM32F103C8
64 kB Flash (128 kb если поставить STM32F103CB (от $2.6 штука))
20 kB RAM
32-битная архитектура ARM CORTEX-M3, до 72МГц, 1.25MIPS/MHz
Напряжение питания 3.3В (2.7-3.6), почти все пины 5В-толерантны. На плате есть стабилизатор напряжения 3.3В, который питается от внешний 5В или USB.
Пины общего назначения GPIO — 26
Из них:
PWM — 12 (все пригодны для управления сервоприводами)
Входов АЦП — 6 (12 битный, 1мкс)
Периферия:
3x USART
2x I2C
2x SPI (18Mbit/s)
1 x CAN 2.0B
USB 2.0 FS (FullSpeed — 12Mbit)
3x 16 битных таймера + 1 PWM timer
DMA — 7 каналов (АЦП, SPI, I2C, USART)
RTC — часы реального времени (32768 Гц кварц уже распаян), могут работать от батареи, когда МК спит или вообще остановлен.
Backup registers — регистры, питающиеся от батарейки вместе с часами на время выключения МК от основного питания
CRC — блок вычисления контрольной суммы
96-bit уникальный ID МК
Программируется через SWD — 2 проводный интерфейс или JTAG (промышленный стандарт).
Есть аппаратная отладка — можно заглянуть в регистры процессора, посмотреть состояние всей периферии, пошагово выполнять программу, менять руками значения в RAM и Flash, посмотреть значения переменных в любой момент, поставить Breakpoint.
Также есть вшитый бутлоадер, который невозможно стереть и он позволяет прошить МК через обычный UART, переставив перемычку.
Функционал шикарный. Из недостатков только более высокий порог входа при обучении — МК так нафарширован возможностями, что не сразу получается с ними разобраться. Но есть подробная документация, есть примеры. Они не так примитивны как для AVR Atmega и тем более Arduino с ее Wiring, но и не особо сложны.
В общем, на мой взгляд плата по всем параметрам превосходит Arduino включая цену. А учитывая, что все МК STM32 серий STM32F100, F101, F102, F103, F104, F105, F107 в одном корпусе полностью pin to pin совместимы, можно расширить функционал платы, не меняя ее разводку, а просто заменив чип. Корпуса на выбор есть 48, 64, 100, 144 ноги. А у старших серий (например F4) есть и больше.
Разобрался вчера с USB HID для этой платы, проект без особых изменений адаптировал под этот МК. В итоге — подключаем плату USB шнурком. Никаких драйверов ставить не нужно — плата видится как стандартный HID девайс. Поддержка USB полностью аппаратная, до 8 endpoints. Я использую 1 endpoint для двусторонней связи с ПК. Программа на Delphi может управлять светодидами и получать состояния кнопок в виде обычных HID репортов. Пакетный обмен куда удобнее, чем UART поток, в котором нужно возиться с заголовками, поиском начала и конца пакета. Если COM порт занят программой, то уже никто подключиться не может. Если девайс отключить, то программа не сможет корректно закрыть COM-порт. С USB HID таких проблем нет. Полностью hot-plug. Выдернул, вставил девайс обратно, программа может на лету переподключиться к нему без перезапуска.
В МК все работает на прерываниях, поэтмоу большую часть времени он просто отдыхает и его можно занять полезными делами, в отличие от V-USB для AVR, где МК еле справляется с программной эмуляцией USB и то ущербно.
HelloWorld через USB 🙂
А где, если не секрет, покупали?
Не секрет, на Aliexpress
добрый день, и спасибо за статью.
Вы упомянули, что есть документация. Немогли бы Вы опубликовать список ресурсов в помощь новичку, решившему использовать это «чудо»?
Заранее благодарю
Пожалуйста
STM32 usart на прерываниях на примере RS485
Примеры инициализации периферии без библиотек
ADC, описание модуля. (Сайт хороший)
Руководство к быстрому старту по работе с периферией STM32F10x
Но совсем уж новичку все же будет немного трудновато, если верить моим ощущениям.
Я возможно попробую тоже снизить немного порог входа парой статей по инструментарию
Да, это точно, «совсем новичку» оказалось трудно воспринять. Очень хотелось бы увидеть введение «для чайников» в этой области.
Можно ли сразу пытаться начать с STM32, если я понятия не имею, что такое Arduino?
Спасибо за статью.
Можно, но непонятного будет много. Проблема в том, что основы совершенно неинтересно писать как только с ними разберешься, а пока не разберешься — вся остальная литература бесполезна. Вот это и называется порогом входа.
Arduino поможет мало. Разве что научитесь копировать куски кода, называть их скетчами вместо программ и нажимать кнопочку Upload.
Могу посоветовать прочитать AVR учебный курс на easyelectronics.ru, не обращайте внимания на ASM код и зацикленность автора на том, чтобы каждым битом дорожить и делать все мегабыстро и вообще на схемотехнике. Каждый, кто пришел из мира схемотехники больше инженер, чем программист, поэтому у них свой подход. Но остальная часть курса помогает понять что такое МК и как он работает.
А дальше уже можно пытаться разобраться с STM32. Можно и по STM32 то же самое написать, но у меня пока времени нет, да и не настолько я хорошо знаю эту тему пока. Поэтому так сложилось, что начинают с AVR Atmega а потом уже преходят выше, если нужно. мне оказалось нужно.
Для понимания STM32 нужно знать что такое тактовый генератор, порты ввода-вывода, булеву алгебру, понимать что такое TTL уровни и понимать как в целом работает МК. Ах да, С понимать хотя бы на минимальном уровне обязательно.
Тоже оценил USB HID, пару лет назад ещё. Держите Пять! 🙂
Спасибо, аналогично. Просто в STM32 только добрался до него. С использованием USB-HID, кстати, у меня тут есть проект USB-IRPC
Года четыре назад надо было писать это. Сейчас актуальность = 0. Хотя LED Guru понравится.
И вы специально пришли на мой сайт, чтобы сказать мне о том, что для вас это неактуально? 🙂
Любая железка тем интереснее, чем более она распространена. Моя задача не писать об уникальных вещах, а делать использование микроконтроллеров начинающими и теми кто не собирается посвящать этому жизнь, а всего лишь использует их в своих хобби, в том числе программистами, а не инженерами-электронщиками максимально простым и дешевым.
Это инженеры-фанаты не постоят за ценой на новую интересную железку — это их основной интерес. А для большинства — чем дешевле железка и доступнее, тем она актуальнее. Если можно купить на развес на рынке, а сделать с ее помощью хоть робота — это самое то, что нужно для всех. Как LEGO.
Интересная платка и не только как отладочная, почти нет ни чего лишнего, можно использовать и в конечных устройствах.
А сам проект получившейся для USB HID не выложите?
Это не совсем проект — так, скорее заготовка для обмена с ПК. Но скорее всего выложу.
тоже интересны исходники.
подскажите с какой максимальной скоростью у вас может идти обмен по usb?
Не проверял. У меня настроена вообще интересная схема — комп сам опрашивает девайс с заданной периодичностью — каждые 32мс. В девайсе генерится прерывание и он отвечает репортом. Когда надо передать — то же самое, генерится прерывание и девайс обрабатывает пакет. Самое то для управления и небольшого количества данных.
64кб? печаль (
а быстрее никак?
это кстати в одну сторону или в обе?
Скорость у USB HID известна — 64кб\с максимум, это при обмене 64б пакетами. Чем короче пакет тем медленнее, т.к. пауза между пакетами фиксирована 1мс.
Такими темпами скоро на каждый привод можно ставить по интеллектуальному контроллеру.
🙂
А оно примерно так и есть уже 🙂
Например, в мультикоптерах каждый двигатель управляется своим микроконтроллером.
А где программатор для него купить? Желательно ссылку на aliexpress.com.
Пожалуйста.
А вообще, если хотите только прошивать и не нужен отладчик, то программатор вообще не нужен, досточно любого USB-UART переходника — в чипе есть встроенный Bootloader: управляется комбинацией пинов BOOT0 BOOT1: Для входа во встроенный загрузчик, надо чтобы во время и после аппаратного сброса микроконтроллера на выводе BOOT0 был высокий уровень, а на выводе BOOT1 – низкий.
Как пользоваться бутлоадером? Flash Loader Demo — не видт контроллер, boot0=1 boot1=0, какую скорость нужно выставлять на COM порту?
COM порт настраивать не нужно. Если все правильно подключили, то FlashLoader Demo сам все сделает. В сети есть пошаговая инструкция. Убедитесь также, что питание подано.
по приведенной ссылке девайсы с ценами от $6 до $50, не совсем понятна разница между этими программаторами.
Всетаки если не затруднит, дайте ссылку на один или несколько программаторов с алиэкспресасса которые точно смогут прошить этот контроллер, например достаточно ли будет этого за $6
http://www.aliexpress.com/item/St-link-v2-stlin-mini-perfect-stm8-stm32-full-series-artificial-device/1209317861.html
Понятия не имею. Что это за китай-девайс не знаю, ни описания ни фига нету. Я бы ориентировался на ST-Link/v2 от ST Microelectronics.

Стоит примерно $25. Если постараться, можно купить за 20-22.
Также точно работает ColinkEx, который можно купить например на easyelectronix.ru у DiHALT. Но он дороже и менее удобен
в данном случае какую микруху для UART лучше использовать? MAX232 или MAX3232 у которой на выходах понижено напряжение?
Без разницы. Вход USART1 5V tolerant. Вопрос только зачем оно надо? У вас есть аппартные COM порты на ПК? У меня вот всего один. И USB-UART переходник на CP2102 или FTDI удобнее, чем громоздкий DB9 разъем, да еще с переходником на TTL.
ну в моем мухоср…е нет в продаже FTDI (вроде нашел в одном месте но 500р как то многовато) ) а вот MAX232 и 3232 есть за копейки считай, припаять 5 конденцаторов не проблема, и комп порт найдется без проблем. мне туда надо то только вторичный лоадер залить, чтоб потом прошивки через USB как на флэшку кидать. 🙂
Ну тогда можно и так ) Хотя CP2102 из Китая заказывается за пару баксов.
ну если у меня ружба с STM заладится, то конечно соберу для прошивки/отладки что нить посерьезнее. А пока ток знакомства ради)
Похоже, вы опробовали много устройств, аналогичных «платке на STM32F103C8». Скажите, знаете ли вы такие же устройства, у которых на борту есть беспроводной (радио) интерфейс? Или хотябы внешние устройства, которые можно было бы подулючить по UART, I2C или другому стандартному интерфейсу к готовой платке, типа описанной в статье.
Хочется сделать радиоуправляемую игрушку, но нет достаточных знаний, чтобы самому реализовать радиоинтерфейс.
Да, например STM32-103STK. Есть и другие платы, но они сложнее.
Но я преподчитаю универсальную плату, к которой легко подключить распространенный трансивер — например NRF24L01 (SPI) или 3DRRadio на 433 или 915 Мгц (UART), APC220 (UART), bluetooth модуль (UART). Вариантов достаточно.
На bluetooth я уже показывал проект. Разобранный радиоуправляемый танк у меня лежит, подключал к нему Atmega 168, проверял, что могу управлять им.
Здравствуйте. По Вашему наитию решил начать изучение ARM с этой платки 🙂 Немного смущает тот факт, что там на борту 8Mz кварц. Значит ли это, что с большей частотой плата не заведется? Если да, то может возможно туда напаять свой кварц? Обидно как-то, камень вроде на 72Mz работать может..
Бегом читать про PLL на STM32 (например тут). Если кратко — это встроенный умножитель частоты. Данная плата по умолчанию как раз работает на 72МГц. Так что для обиды нет причин.
Прелесть именно в том, что со скромным 8МГц кристаллом она работает на 72МГц. Примерно по тому же принципу, что на шине частотой 133МГц (quad pupmped bus делала из них 533) Pentium4 работал с частотой под 3-4ГГц.
Спасибо, успокоили 🙂
Добрый день.
Летом закончил свой небольшой проект CNC на Arduino. Делал всё сам, даже разбор Gкода, походу разработки придумывая и улучшая конструкцию и программную часть. Но с самого начала меня удручает COM порт.
Очень интересует возможность этой платы как HID. Вчера получил эту плату, потыкался помыкался но не понял как это сделать. Возможно ли как то взглянуть на ваш «адаптированный» проект ? Порог вхождения в разработку для этой платы по сравнению с Ардуино несколько выше.
В принципе я планирую статью на эту тему, но времени пока не хватает.
Порог входа в мир STM32 выше, это факт, но и возможности существенно шире. Cortex-M3 ядро и 32битный быстрый МК того стоит. Да и ублюдочность wiring для Arduino это отдельный разговор.
CNC это интересно, а какой бюджет этого проекта? И что получается в итоге?
Бюджет минималистичен. Всё строится в свободное от работы время, для самого себя. На данный момент станок уверенно справляется с резкой/фрезеровкой/сверловкой плат, выпливанием из пластика и дерева. С некоторой натяжкой справляется с аллюминием, медью, латунью. Сейчас я строю 2 версию(используя возможности CNC), с более жёсткой рамой, что бы справляться с металлами без натяга. Увеличиваю рабочую площадь до 30см во всех измерениях. Собираюсь опробовать STM32 для управления 3 (а в планах и 4) осями. И если новый каркас решает проблему люфта на больших нагрузках, то без HID это улучшение будет малозаметно. При малейшей ошибке либо на стороне МК либо на стороне компа мне приходится перезапускать управляющий софт и в это же время переподключать Ардуино. COM порт иначе остаётся заблокированным. Второй день рою разные примеры STM32 HID и понимание ни на йоту не прибавляется.
Интересный проект.
Что касается HID — у меня такое же ощущение было. Возился довольно долго пока разобрался. Зато теперь задача решена довольно надежно.
Получил сегодня эту платку. Ничего не понятно 🙂 Может встречали где принципиальную схему этого «девайса»? Хотя бы понять, что за 2 boot перемычки.. Или это всё в даташите на микруху есть?
А чего там непонятного? Все пины подписаны и полностью соответствуют названиям в даташите — они напрямую от МК выведены.
BOOT0 и BOOT1 служат для выбора режима работы встроенного bootloader — прошивка или обычная работа. На этот вопрос я уже отвечал
Спасибо
Вам наврено уже не актуально, но может кому еще пригодится) вот тут схему брал http://www.purlance.com/product/product126.html
Добрый день. Пятые сутки бьюсь с этой платой (такой же, как статье), пытаясь завести USB-HID. Результат всё-время один — сбой запроса дескриптора USB-устройства. Что-то я делаю не так, но что не понятно. Отладчика у меня нет, прошиваюсь через COM. Похоже шансы уже стремятся к нулю. Сделайте доброе дело, поделитесь своим проектом )))
День добрый.
Для отлади USB-HID COM, конечно тот еще мазохизм 🙂 USB — не самая простая шина. Без описания выкладывать проект не хочу- слишком много будет вопросов, а отвечать на них пока времени нет.
Тут не все так просто… Я прошил такую-же платку прошивкой, взятой на Хабре. Так вот, на ноутбуке с USB3.0, если включить устройство напрямую кабелем в порт, выдается сообщение «сбой запроса дескриптора»… Но если подключиться через старый хаб USB2.0 то устройство определяется нормально! Нормально девайс подключается и к старому компу, где USB тоже второй версии… То ли проблема в прошивке, и блок USB STM-ки инициализируется не совсем корректно, то ли этот контроллер принципиально не дружит с USB3.0!
Принципиально есть проблема с некоторыми USB 3.0 контроллерами. Я тоже это заметил. Причем, дело не в прошивке.
Нормальная статья для начинающих.
Вот только одно мне режет глаз:
AVR — 1 MIPS/MHz
STM32 — 1.25 DMIPS/MHz
Это сАААвсем разные мипсы :). Если для AVR производитель «скромно» оглашает «миллионы коротких операций (регистр-регистр) в секунду», то для 32-битного Cortex-M оглашаются Dhrystone MIPS — результаты работы специальной тестовой программы. Соответственно DMIPS для AVR будет намного ниже единицы. Точных данных я не встречал, но реально где-то не более ~0.3 DMIPS/MHz в самом оптимистичном случае. Так что отставание AVR еще более усугубляется.
К сожалению данное «сравнение» кочует по всему интернету. Напоминает аналогичное «сравнение» на заре холиваров PIC vs AVR, когда сравнивали 40 МГц PIC и 20 МГц AVR и делали выводы, забывая что у PIC частота делилась на 4, для получения командного цикла :).
Спасибо. На начинающих и ориентирована.
Все верно, мипсы разные. С оценкой производительности все еще сложнее. В зависимости от данных 32 битный код может быть быстрее просто за счет вычислений за один такт числа, на которое 8 битному понадобится несколько.
Размер flash тоже напрямую сравнивать нельзя. Программы для 32 битного ARM обычно больше. Но по факту все равно преимущество за STM32. А порог входа вызванный недостатком информации постепенно снизится. Я не один пишу статьи.
появилась такая же штука, но без жтага (вроде ты возмущался никчёмностью его и размерами):
http://www.aliexpress.com/item/mini-Stm32f103c8t6-system-board-stm32-learning-development-board/1568685935.html
А SWD и часовой кварц тоже зажилили?
Я возмущался тем, что не нужен весь JTAG порт. Для отладки достаточно 4-5 проводков SWD.
SWD есть — достаточно оказывается всего двух проводков…
Я только двумя его прошиваю ужо и мигаю.
Ну и третий — земля.
Зависит от программатора. Для ST-Link/V2 необходим пин VDD. Иначе не увидит. Так что там 4 пина: VDD, SWDIO, SWCLK, GND
у меня ST-Link/V2 (часть DISCO-152L) и я прошиваю тремя проводами 🙂
кстати, этот SWD — это же вроде просто PA13 и PA14, или типа того?
т.е. нет большого смысла в отдельных выходах…
Если токмо они у тебя уже заняты, чтобы не перетыкивать.
Да, это они, но у меня не одна плата, не один проект и каждый раз перетыкать одиночные провода и искать куда воткнуть надоедает очень быстро — можно легко спалить плату промахнувшись. К тому же я не помню наизусть какой пин за что отвечает, предпочитаю разъем, который нельзя воткнуть неправильно, что голова была занята делом, а не тем, как воткнуть кабель 🙂
Здравствуйте, RaJa.
Мне очень нравятся Ваши статьи, спасибо за них. Кажется легкость, с которой Вы создаете такие интересные проекты и программы, знак отличного профессионализма.
Я действовал почти что по материалам сайта. Купил пульт радиоуправления, пару контроллеров STM32F103 и несколько arduino nano, модули bluetooth, датчики, кнопки, светодиоды, сервомоторы и маленькие шаговые двигатели, небольшой аккумулятор, в общем придумал набор для начинающего.
Потренировался на nano — довольно легко программируется, выводится информация на экранчик от nokia, моторы вращаются, bluetooth работает, управляю с компьютера платой через USB и так же управляю курсором мыши через arduino + модуль с акселерометром.
Затем установил Keil, дополнительные модули с устройствами ST, залил на nano прошивку UART booltoader. И через нее и TMicroelectronics flash loader demonstrator прошиваю программы для STM32.
Начал с простых примеров — запустил «бегущий текст» red led matrix 8×8 на stm32f103c8.
Плата: http://www.ebay.com/itm/321358378367?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
Видео: https://cloud.mail.ru/public/788318a48fde/20140428_141304.mp4
Но в следующей же задаче я сильно застрял на теме USB. Примерно неделю ничего не могу поделать. Совершенно уже упростил проект, ничего лишнего и от себя тоже ничего, только стандартные библиотеки и кода по-минимуму. https://cloud.mail.ru/public/fdfe477645fd/STM32USB.7z
Компилируется, прошивается, контроллер работает, но USB устройство в PC не появляется. Вообще при подключении к USB — в компьютере ни какой реакции, и в списке устройств ничего нового.
Так же проверил все примеры приложенные к библиотеке STM32_USB-FS-Device_Lib_V4.0.0, там довольно удобно размещены файлы проектов keil в папках MDK-ARM, остается только задать устройство и цель *.hex — все компилируется и прошивается без проблем.
Но опять же, та же проблема — при подключении к компьютеру в режиме RUN через USB — ничего не происходит, ни один пример, и Virtual Serial тоже не работает. Видимо я что-то упускаю важное, на плате, которая у Вас есть джампер включения USB, на той плате которая у меня — его нет и в помине. Пока буду искать схемы чтобы выяснить что соединяет этот джампер. Если у Вас есть возможность, выручите пожалуйста с пониманием моей ошибки.
Была не была, еще есть один вопрос который я не понимаю: всеми портами получается управлять (например, выдавать на них сигнал для мигания светодиода) но почему-то не получается управлять портами PA13, PA14, PB3 и PB4 (проверил на двух платках — результат одинаков) — они задействованы в USB?
Я бы написал Вам на почту, чтобы не «засорять» комментарии к статье, но не нашел адреса.
Спасибо.
Спасибо за комплимент. Я как раз не отвечаю на вопросы в почте. Комментарии именно для вопросов и обсуждений созданы.
USB — не самая простая тема. Именно поэтому я написал шаблонный проект. Статью об этом можно найти по тегу STM32.
Джампер на плате всего лишь включает подтяжку линии D+ к питанию для обнаружения девайса хостом. Это можно делать программно, а можно просто джампером, тогда программно подключаться или отключаться о ПК не получится.
Всем доброго времени суток.
Подскажите, пожалуйста, как быть с такой платой http://www.ebay.com/itm/321358378367?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 ? Перепробовала все примеры из библиотеки STM32_USB-FS-Device_Lib_V4.0.0, результат — новое устройство не появляется ((.
Прикладываю фотографию настроенного проекта из этой шикарной статьи.
http://i56.fastpic.ru/big/2014/0502/1e/c3861bcdefab436dee8096c2f500251e.jpg
Перед этим я пробовала на этой плате писать программы без использования USB: https://cloud.mail.ru/public/788318a48fde/20140428_141304.mp4
Перепробовала все порты на обеих своих платах и выяснилось, что не получатся управлять портами: PA13, PA14, PB3 и PB4.
Может они задействованы в USB?
Помогите, пожалуйста, так же найти даташит на плату.
Буду очень благодарна за помощь!
Вот с даташита и надо начинать 🙂
Если найдется даташит, то и обуздать плату не проблема.
RaJa наконец я тебя нашел не могбы ты мне помочь с webdav я нашел коментарий на одном сайте где у тебя получился put запрос.Можешь скинуть рабочий код на майл dikov.andrei@mail.ru или дай свой майл и я тебе подробнее обьясню где я тебя нашел и что мне нужно 😉
Вопрос: если такая платка при подключении по USB к компьютеру вызывает появление сообщения — windows не может опознать устройство, ошибка подключения — то что, платка не рабочая?
Плата скорее всего рабочая, просто USB на ней предназначен не для отладки — это USB device. То есть пишите прошивку для работы с USB и девайс подключается этим коннектором.
Здравствуйте. Приятно видеть такие статьи, спасибо 🙂 Меня в первую очередь интересует информация о плате. Надеюсь, по этому вопросу обратиться тоже можно.
Присмотрел плату на алиэкспрессе, только не знаю, где найти к ней информацию. Конечно, обвязки не много, но я чайник. Только начал изучать STM32L-discovery, которую мне одолжили добрые люди. Немного информации узнал по адресу http://www.fi-com.ru/mcu/stm32/stm32f103c8.html
Уже вижу, что можно прошивать и отлаживать с помощью st-link через SWD.
S1 и D1 — это что? Кнопка Reset и светодиод-индикатор питания?
Почему слева USART1 (обведено на картинке по ссылке выше) подписан так странно? В даташите пишут CTS и RTS, а где они на данном USART1?
Что такое Bootload/Run (обведено на картинке по ссылке выше)? Чтобы подавать через USB-разъём питание, надо перемычку снять или поставить?
S1 — Reset
D1 — Индикатор питания
USART1 — название периферийного модуля, к которому подключены даннные пины. Т.к. аппаратное управление потоком используется довольо редко, то на эту гребенку его выводить и не стали, однако сигналы USART CTS,RTS, CK можно найти на соответствующих пинах. В документации на странице 31 ест описание где что брать.
http://www.st.com/web/en/resource/technical/document/datasheet/CD00161566.pdf
Лично мне с момента исчезновения потребности в DialUp модемах не приходилось использовать эти пины по назначению ни разу. Даже на Arduino DTR испоользуется всего лишь для сброса МК.
Оперативность ответа порадовала 🙂 Спасибо.
Текст про DTR относится к USART1? 🙂 Про DTR впервые слышу.
Меня беспокоят перемычки Bootload/Run справа сверху на рисунке. Для чего они?
Кварцевые резонаторы подключены к OSC и OSC32? Часовой кварц на 32768 Гц?
Полная спецификация RS232 включает кучу сигналов:
https://ru.wikipedia.org/wiki/RS-232
Из них собственно за обмен данными отвечают Tx и Rx. Остальные — управление и сигнализация.
Для чего нужны этип пины я уже писал: https://ravenium.ru/прошивка-stm32-с-помощью-stm32-flash-loader-demonstrator/
Основной кварц и часовой подключены стандартно, ровным счетом ничего делать не нужно, часовой кварц подписан, да, он тоже стандартный на 32.768 кГц