STM32 vs Arduino

Приехала вчера крошечная платка на STM32F103C8.

STM32F103C8 Front

STM32F103C8 Front

Это 48ногий 32битный микроконтроллер. И это отличный вариант апгрейда для тех, кто использует Arduino.

Для масштаба положил рядом с Arduino Pro, которая меньше обычной Arduino Uno:
Arduino vs STM32F103C8_r
По размерам сам микроконтроллер точно такой же, только шаг ножек не 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 🙂

STM32 vs Arduino: 66 комментариев

  1. добрый день, и спасибо за статью.
    Вы упомянули, что есть документация. Немогли бы Вы опубликовать список ресурсов в помощь новичку, решившему использовать это «чудо»?
    Заранее благодарю

    • Пожалуйста
      STM32 usart на прерываниях на примере RS485
      Примеры инициализации периферии без библиотек
      ADC, описание модуля. (Сайт хороший)
      Руководство к быстрому старту по работе с периферией STM32F10x
      Но совсем уж новичку все же будет немного трудновато, если верить моим ощущениям.
      Я возможно попробую тоже снизить немного порог входа парой статей по инструментарию

      • Да, это точно, «совсем новичку» оказалось трудно воспринять. Очень хотелось бы увидеть введение «для чайников» в этой области.
        Можно ли сразу пытаться начать с STM32, если я понятия не имею, что такое Arduino?
        Спасибо за статью.

        • Можно, но непонятного будет много. Проблема в том, что основы совершенно неинтересно писать как только с ними разберешься, а пока не разберешься — вся остальная литература бесполезна. Вот это и называется порогом входа.
          Arduino поможет мало. Разве что научитесь копировать куски кода, называть их скетчами вместо программ и нажимать кнопочку Upload.
          Могу посоветовать прочитать AVR учебный курс на easyelectronics.ru, не обращайте внимания на ASM код и зацикленность автора на том, чтобы каждым битом дорожить и делать все мегабыстро и вообще на схемотехнике. Каждый, кто пришел из мира схемотехники больше инженер, чем программист, поэтому у них свой подход. Но остальная часть курса помогает понять что такое МК и как он работает.
          А дальше уже можно пытаться разобраться с STM32. Можно и по STM32 то же самое написать, но у меня пока времени нет, да и не настолько я хорошо знаю эту тему пока. Поэтому так сложилось, что начинают с AVR Atmega а потом уже преходят выше, если нужно. мне оказалось нужно.
          Для понимания STM32 нужно знать что такое тактовый генератор, порты ввода-вывода, булеву алгебру, понимать что такое TTL уровни и понимать как в целом работает МК. Ах да, С понимать хотя бы на минимальном уровне обязательно.

    • Спасибо, аналогично. Просто в STM32 только добрался до него. С использованием USB-HID, кстати, у меня тут есть проект USB-IRPC

  2. Года четыре назад надо было писать это. Сейчас актуальность = 0. Хотя LED Guru понравится.

    • И вы специально пришли на мой сайт, чтобы сказать мне о том, что для вас это неактуально? 🙂
      Любая железка тем интереснее, чем более она распространена. Моя задача не писать об уникальных вещах, а делать использование микроконтроллеров начинающими и теми кто не собирается посвящать этому жизнь, а всего лишь использует их в своих хобби, в том числе программистами, а не инженерами-электронщиками максимально простым и дешевым.
      Это инженеры-фанаты не постоят за ценой на новую интересную железку — это их основной интерес. А для большинства — чем дешевле железка и доступнее, тем она актуальнее. Если можно купить на развес на рынке, а сделать с ее помощью хоть робота — это самое то, что нужно для всех. Как LEGO.

  3. Интересная платка и не только как отладочная, почти нет ни чего лишнего, можно использовать и в конечных устройствах.
    А сам проект получившейся для USB HID не выложите?

    • Это не совсем проект — так, скорее заготовка для обмена с ПК. Но скорее всего выложу.

      • тоже интересны исходники.
        подскажите с какой максимальной скоростью у вас может идти обмен по usb?

        • Не проверял. У меня настроена вообще интересная схема — комп сам опрашивает девайс с заданной периодичностью — каждые 32мс. В девайсе генерится прерывание и он отвечает репортом. Когда надо передать — то же самое, генерится прерывание и девайс обрабатывает пакет. Самое то для управления и небольшого количества данных.

          • 64кб? печаль (
            а быстрее никак?
            это кстати в одну сторону или в обе?

        • Скорость у USB HID известна — 64кб\с максимум, это при обмене 64б пакетами. Чем короче пакет тем медленнее, т.к. пауза между пакетами фиксирована 1мс.

  4. Такими темпами скоро на каждый привод можно ставить по интеллектуальному контроллеру.

    🙂

    • А оно примерно так и есть уже 🙂
      Например, в мультикоптерах каждый двигатель управляется своим микроконтроллером.

    • Пожалуйста.
      А вообще, если хотите только прошивать и не нужен отладчик, то программатор вообще не нужен, досточно любого USB-UART переходника — в чипе есть встроенный Bootloader: управляется комбинацией пинов BOOT0 BOOT1: Для входа во встроенный загрузчик, надо чтобы во время и после аппаратного сброса микроконтроллера на выводе BOOT0 был высокий уровень, а на выводе BOOT1 – низкий.

      • Как пользоваться бутлоадером? Flash Loader Demo — не видт контроллер, boot0=1 boot1=0, какую скорость нужно выставлять на COM порту?

        • COM порт настраивать не нужно. Если все правильно подключили, то FlashLoader Demo сам все сделает. В сети есть пошаговая инструкция. Убедитесь также, что питание подано.

  5. по приведенной ссылке девайсы с ценами от $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.
      ST-Link/V2
      Стоит примерно $25. Если постараться, можно купить за 20-22.
      Также точно работает ColinkEx, который можно купить например на easyelectronix.ru у DiHALT. Но он дороже и менее удобен

  6. в данном случае какую микруху для UART лучше использовать? MAX232 или MAX3232 у которой на выходах понижено напряжение?

    • Без разницы. Вход USART1 5V tolerant. Вопрос только зачем оно надо? У вас есть аппартные COM порты на ПК? У меня вот всего один. И USB-UART переходник на CP2102 или FTDI удобнее, чем громоздкий DB9 разъем, да еще с переходником на TTL.

      • ну в моем мухоср…е нет в продаже FTDI (вроде нашел в одном месте но 500р как то многовато) ) а вот MAX232 и 3232 есть за копейки считай, припаять 5 конденцаторов не проблема, и комп порт найдется без проблем. мне туда надо то только вторичный лоадер залить, чтоб потом прошивки через USB как на флэшку кидать. 🙂

          • ну если у меня ружба с STM заладится, то конечно соберу для прошивки/отладки что нить посерьезнее. А пока ток знакомства ради)

  7. Похоже, вы опробовали много устройств, аналогичных «платке на STM32F103C8». Скажите, знаете ли вы такие же устройства, у которых на борту есть беспроводной (радио) интерфейс? Или хотябы внешние устройства, которые можно было бы подулючить по UART, I2C или другому стандартному интерфейсу к готовой платке, типа описанной в статье.
    Хочется сделать радиоуправляемую игрушку, но нет достаточных знаний, чтобы самому реализовать радиоинтерфейс.

    • Да, например STM32-103STK. Есть и другие платы, но они сложнее.
      Но я преподчитаю универсальную плату, к которой легко подключить распространенный трансивер — например NRF24L01 (SPI) или 3DRRadio на 433 или 915 Мгц (UART), APC220 (UART), bluetooth модуль (UART). Вариантов достаточно.
      На bluetooth я уже показывал проект. Разобранный радиоуправляемый танк у меня лежит, подключал к нему Atmega 168, проверял, что могу управлять им.

  8. Здравствуйте. По Вашему наитию решил начать изучение ARM с этой платки 🙂 Немного смущает тот факт, что там на борту 8Mz кварц. Значит ли это, что с большей частотой плата не заведется? Если да, то может возможно туда напаять свой кварц? Обидно как-то, камень вроде на 72Mz работать может..

    • Бегом читать про PLL на STM32 (например тут). Если кратко — это встроенный умножитель частоты. Данная плата по умолчанию как раз работает на 72МГц. Так что для обиды нет причин.
      Прелесть именно в том, что со скромным 8МГц кристаллом она работает на 72МГц. Примерно по тому же принципу, что на шине частотой 133МГц (quad pupmped bus делала из них 533) Pentium4 работал с частотой под 3-4ГГц.

  9. Добрый день.
    Летом закончил свой небольшой проект CNC на Arduino. Делал всё сам, даже разбор Gкода, походу разработки придумывая и улучшая конструкцию и программную часть. Но с самого начала меня удручает COM порт.
    Очень интересует возможность этой платы как HID. Вчера получил эту плату, потыкался помыкался но не понял как это сделать. Возможно ли как то взглянуть на ваш «адаптированный» проект ? Порог вхождения в разработку для этой платы по сравнению с Ардуино несколько выше.

    • В принципе я планирую статью на эту тему, но времени пока не хватает.
      Порог входа в мир STM32 выше, это факт, но и возможности существенно шире. Cortex-M3 ядро и 32битный быстрый МК того стоит. Да и ублюдочность wiring для Arduino это отдельный разговор.
      CNC это интересно, а какой бюджет этого проекта? И что получается в итоге?

      • Бюджет минималистичен. Всё строится в свободное от работы время, для самого себя. На данный момент станок уверенно справляется с резкой/фрезеровкой/сверловкой плат, выпливанием из пластика и дерева. С некоторой натяжкой справляется с аллюминием, медью, латунью. Сейчас я строю 2 версию(используя возможности CNC), с более жёсткой рамой, что бы справляться с металлами без натяга. Увеличиваю рабочую площадь до 30см во всех измерениях. Собираюсь опробовать STM32 для управления 3 (а в планах и 4) осями. И если новый каркас решает проблему люфта на больших нагрузках, то без HID это улучшение будет малозаметно. При малейшей ошибке либо на стороне МК либо на стороне компа мне приходится перезапускать управляющий софт и в это же время переподключать Ардуино. COM порт иначе остаётся заблокированным. Второй день рою разные примеры STM32 HID и понимание ни на йоту не прибавляется.

        • Интересный проект.
          Что касается HID — у меня такое же ощущение было. Возился довольно долго пока разобрался. Зато теперь задача решена довольно надежно.

  10. Получил сегодня эту платку. Ничего не понятно 🙂 Может встречали где принципиальную схему этого «девайса»? Хотя бы понять, что за 2 boot перемычки.. Или это всё в даташите на микруху есть?

  11. Добрый день. Пятые сутки бьюсь с этой платой (такой же, как статье), пытаясь завести USB-HID. Результат всё-время один — сбой запроса дескриптора USB-устройства. Что-то я делаю не так, но что не понятно. Отладчика у меня нет, прошиваюсь через COM. Похоже шансы уже стремятся к нулю. Сделайте доброе дело, поделитесь своим проектом )))

    • День добрый.
      Для отлади USB-HID COM, конечно тот еще мазохизм 🙂 USB — не самая простая шина. Без описания выкладывать проект не хочу- слишком много будет вопросов, а отвечать на них пока времени нет.

    • Тут не все так просто… Я прошил такую-же платку прошивкой, взятой на Хабре. Так вот, на ноутбуке с USB3.0, если включить устройство напрямую кабелем в порт, выдается сообщение «сбой запроса дескриптора»… Но если подключиться через старый хаб USB2.0 то устройство определяется нормально! Нормально девайс подключается и к старому компу, где USB тоже второй версии… То ли проблема в прошивке, и блок USB STM-ки инициализируется не совсем корректно, то ли этот контроллер принципиально не дружит с USB3.0!

      • Принципиально есть проблема с некоторыми USB 3.0 контроллерами. Я тоже это заметил. Причем, дело не в прошивке.

  12. Нормальная статья для начинающих.
    Вот только одно мне режет глаз:
    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. А порог входа вызванный недостатком информации постепенно снизится. Я не один пишу статьи.

    • А SWD и часовой кварц тоже зажилили?
      Я возмущался тем, что не нужен весь JTAG порт. Для отладки достаточно 4-5 проводков SWD.

      • SWD есть — достаточно оказывается всего двух проводков…
        Я только двумя его прошиваю ужо и мигаю.
        Ну и третий — земля.

        • Зависит от программатора. Для ST-Link/V2 необходим пин VDD. Иначе не увидит. Так что там 4 пина: VDD, SWDIO, SWCLK, GND

          • у меня ST-Link/V2 (часть DISCO-152L) и я прошиваю тремя проводами 🙂

  13. кстати, этот SWD — это же вроде просто PA13 и PA14, или типа того?
    т.е. нет большого смысла в отдельных выходах…
    Если токмо они у тебя уже заняты, чтобы не перетыкивать.

    • Да, это они, но у меня не одна плата, не один проект и каждый раз перетыкать одиночные провода и искать куда воткнуть надоедает очень быстро — можно легко спалить плату промахнувшись. К тому же я не помню наизусть какой пин за что отвечает, предпочитаю разъем, который нельзя воткнуть неправильно, что голова была занята делом, а не тем, как воткнуть кабель 🙂

  14. Здравствуйте, 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+ к питанию для обнаружения девайса хостом. Это можно делать программно, а можно просто джампером, тогда программно подключаться или отключаться о ПК не получится.

  15. Всем доброго времени суток.

    Подскажите, пожалуйста, как быть с такой платой 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 или дай свой майл и я тебе подробнее обьясню где я тебя нашел и что мне нужно 😉

  16. Вопрос: если такая платка при подключении по USB к компьютеру вызывает появление сообщения — windows не может опознать устройство, ошибка подключения — то что, платка не рабочая?

    • Плата скорее всего рабочая, просто USB на ней предназначен не для отладки — это USB device. То есть пишите прошивку для работы с USB и девайс подключается этим коннектором.

  17. Здравствуйте. Приятно видеть такие статьи, спасибо 🙂 Меня в первую очередь интересует информация о плате. Надеюсь, по этому вопросу обратиться тоже можно.
    Присмотрел плату на алиэкспрессе, только не знаю, где найти к ней информацию. Конечно, обвязки не много, но я чайник. Только начал изучать 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 Гц?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.