Stm32F103 datasheet на русском. STM32F103 без внешнего кварца: можно ли использовать USB-модуль с внутренним RC-генератором?

Можно ли использовать USB-модуль STM32F103 без внешнего кварцевого резонатора. Какие риски связаны с синхронизацией от внутреннего RC-генератора. Как обеспечить стабильную работу USB на STM32F103 без кварца.

Содержание

Особенности работы USB-модуля STM32F103 без внешнего кварцевого резонатора

Многие разработчики задаются вопросом — можно ли использовать USB-модуль микроконтроллера STM32F103 без подключения внешнего высокочастотного кварцевого резонатора? Давайте разберемся в этом вопросе подробнее.

Требования спецификации USB к точности тактовой частоты

Согласно спецификации USB, для стабильной работы на полной скорости (Full Speed) требуется обеспечить точность тактовой частоты в пределах ±0.25% или 2500 ppm от номинального значения 48 МГц. Это довольно жесткое требование, которое сложно обеспечить без использования кварцевого резонатора.

Характеристики внутреннего RC-генератора STM32F103

В микроконтроллере STM32F103 имеется внутренний RC-генератор HSI (High Speed Internal), который может работать на частоте 8 МГц. Однако его точность оставляет желать лучшего. Согласно документации, отклонение частоты HSI может составлять от -1.1% до +1.8% даже при постоянной температуре 25°C. Этого недостаточно для обеспечения стабильной работы USB.


Эксперименты с работой USB от внутреннего генератора

Несмотря на ограничения, некоторые разработчики пробовали запустить USB-модуль STM32F103 от внутреннего RC-генератора. Для этого использовалась следующая схема тактирования:

  • Частота HSI делится на 2, получаем 4 МГц
  • Сигнал 4 МГц подается на вход PLL
  • PLL настраивается на умножение частоты в 12 раз
  • На выходе PLL получаем требуемые для USB 48 МГц

При такой схеме в некоторых случаях удавалось добиться работоспособного состояния USB. Проводились даже температурные испытания в диапазоне от -10°C до +80°C, которые не выявили явных проблем.

Почему не стоит использовать USB без кварца на STM32F103

Несмотря на отдельные успешные эксперименты, использование USB-модуля STM32F103 без внешнего кварцевого резонатора крайне не рекомендуется по следующим причинам:

1. Недостаточная точность внутреннего генератора

Как было отмечено выше, точность HSI значительно хуже требований спецификации USB. Даже если на конкретном экземпляре микроконтроллера удалось добиться приемлемой работы, нет гарантии, что другие чипы из той же партии будут работать аналогично.


2. Отсутствие системы подстройки частоты

В отличие от некоторых более новых серий микроконтроллеров STM32, в STM32F103 отсутствует система автоматической подстройки частоты внутреннего генератора по сигналам USB. Это не позволяет компенсировать отклонения частоты HSI в процессе работы.

3. Зависимость от температуры и напряжения питания

Частота внутреннего RC-генератора может меняться при колебаниях температуры и напряжения питания. Это создает риск нестабильной работы USB при изменении условий эксплуатации устройства.

Как обеспечить стабильную работу USB на STM32F103

Для гарантированно стабильной работы USB-модуля на микроконтроллере STM32F103 рекомендуется использовать следующие решения:

1. Внешний кварцевый резонатор

Наиболее надежный способ — подключение внешнего кварцевого резонатора на 8 МГц к выводам OSC_IN и OSC_OUT микроконтроллера. Это обеспечит высокую точность тактовой частоты в широком диапазоне условий.

2. Внешний генератор

Альтернативный вариант — использование внешнего тактового генератора на 8 МГц или 48 МГц. Это может быть удобно, если в устройстве уже есть источник точной частоты.


3. Термокомпенсированный генератор

Для особо ответственных применений можно использовать внешний термокомпенсированный генератор (TCXO) с частотой 48 МГц. Это обеспечит максимальную стабильность тактирования USB.

Использование бескристального USB в других сериях STM32

Стоит отметить, что в некоторых более новых сериях микроконтроллеров STM32 реализована возможность работы USB без внешнего кварцевого резонатора. Например, в STM32F0 для этого используется специальный внутренний генератор HSI48 и система автоматической подстройки частоты.

Особенности HSI48 в STM32F0

  • Частота 48 МГц, оптимизирована для работы USB
  • Начальная точность хуже, чем у HSI (до ±2.9%)
  • Имеется система автоподстройки частоты по кадрам SOF шины USB
  • Позволяет обеспечить требуемую для USB точность без внешнего кварца

Однако такая система отсутствует в STM32F103, поэтому для этого микроконтроллера использование внешнего кварцевого резонатора остается необходимым условием стабильной работы USB.

Заключение: стоит ли рисковать?

Хотя в отдельных случаях удается добиться работоспособного состояния USB-модуля STM32F103 без внешнего кварца, такое решение нельзя считать надежным и рекомендовать к применению в серийных устройствах. Риски нестабильной работы и отказов слишком высоки.


Использование USB без кварца на STM32F103 допустимо разве что для единичных прототипов или в исследовательских целях. Во всех остальных случаях настоятельно рекомендуется применять внешний кварцевый резонатор или генератор для тактирования USB-модуля.

Правильный выбор схемы тактирования на этапе разработки позволит избежать многих проблем при отладке и эксплуатации устройств на базе STM32F103 с функцией USB.


datasheet, Arduino и blue pill

stm32f103c8t6 — это мощный процессор и микроконтроллер. STM32 является платформой, основанной на устройствах STMicroelectronics, разных модульных и периферийных схемах, специальных программах IDE для работы с цифровой техникой.

Повсеместное использование решений на базе stm обеспечивается высокой работоспособностью микроконтроллера, его качественной архитектурой, невысоким потреблением электричества, приемлемой стоимостью. Сегодня существует несколько линеек STM32 разного назначения.

Востребованность и популярность STM32 объясняется тем, что она позволяет создавать оптимальные решения для автоматизации в разных сферах. Не являюсь таким доступным, как Arduino, этот микроконтроллер заставляет глубже погружаться в детали. Он сложнее для новичков, о не так просто найти stm32f103c8t6 datasheet на русском.

Плюсы и минусы STM32

Достоинствами платформы можно считать:

• невысокую цену;

• удобную эксплуатацию;

• широкий ассортимент способов разработки;

• взаимозаменяемость чипов при нехватке ресурсов одного из микроконтроллеров;

• хорошую производительность;

• удобство наладки микроконтроллера.

К недостаткам относятся:

• большой порог вхождения;

• отсутствие подробных описаний платформы;

• микроконтроллер пока не может стать заменой Ардуино.

 

Рассмотрим несколько устройств, в основе которых находится микроконтроллер.

Как возник STM32

Выпуск серии микроконтроллеров впервые состоялся 11 лет назад. Тогда фирма STMicroelectronics выпустила уже 4 вида аналогичных устройств на основе ARM, но их параметры были не так высоки. А вот рассматриваемые контроллеры превосходят их по качествам и стоимости. Сначала их производили в 14 видах. Они представляли собой 2 категории, разделенные по частоте: с уровнем тактовой частоты не более 2 МГц и 36 МГц. Обе группы имеют одно и то же ПО и не отличаются расположением контактов.

У первых контроллеров была встроенная флэш-память 128 Кбайт и ОЗУ — 20 Кбайт. Современная линейка — гораздо шире, что привело к появлению новых экземпляров с более высокими характеристиками.

Продуктовые линейки микроконтроллеров

В семействе STM32 — много изделий с разным объемом памяти, уровнем производительности, энергопотребления и другими показателями. STM32F-1, STM32F-2 и STM32L легко взаимодействуют друг с другом. В каждой серии — не один десяток микросхем. Они легко меняются на другие устройства. Первая линейка — STM32F-1 с ограниченной производительностью.

Транзисторы имеют самую низкую утечку, поэтому приборы демонстрируют почти идеальные показатели.

Отметим, что у контроллеров STM32W нет совместимости по пину с другими сериями. Дело в том, что разработчиком линейки является предприятие, предоставившее радиочастотную часть. Поэтому у ST есть ряд ограничений на разработку.

У микросхемы STM32F100R4 — минимум функций. Флэш-память равна 16 Кбайт, ОЗУ — 4, тактовая частота — 12 МГц. Когда необходимо устройство с более высокой скоростью с повышенным объемом FLASH-памяти, не более 128 Кбайт, лучше выбрать STM32F101RB. Интерфейсом USB обладает и STM32F103RE. Другой аналог, у которого энергопотребление чуть ниже, — STM32L151RB.

stm32f103c8t6: особенности отладочной платы

Эту конструкцию нередко именуют stm32f103c8t6 blue pill, что в переводе с английского языка нередко означает таблетку синего цвета. Это название соответствует внешнему виду устройства.

Нужно обратить внимание на несколько моментов:

Необходимое напряжение, подаваемое на микроконтроллер — 3 Вольта. Такое же значение — при большом количестве дискретных сигналов выхода и входа. Некоторые выводы допускают возможность подключения сигналов 5 В. Другие входы поддерживают напряжение меньше, чем для питания, 3 В. При его повышении повреждается микроконтроллер.

Когда микроконтроллерные выводы применяются в виде выходов, максимальное значение тока вытекания и втекания — 20 миллиампер. Желательно, чтобы этот показатель не превышал 8 мА. Но есть 3 вывода, используемые лишь в системах с током втекания до 3 мА.

Подключение светодиода общего значения осуществляется через вывод PC13. Его свечение возможно при низкоуровневом.

А теперь взгляните на конструкцию цепей питания.

На узле вырабатывается напряжение 3,3 В, которое нужно для питания устройства. Применяется стабилизатор XC6204. К нему подается питание 5 В от порта USB или вывода платы 5V. Цепи соединяются напрямую без специального диода для защиты.

Тактическая частота и применения дополнительных приборов влияет на ток, потребляемый микроконтроллером. Выбор оптимальных показателей очень важен, особенно, для приложений, чувствительных к потреблению электроэнергии. Благодаря устройствам STM32 это можно делать быстро и аккуратно.

Взгляните на полноценную схему платы:

Чтобы загрузить программу в устройство, применяется системный бутлоадер. Разъем с 4 контактами с боковой стороны платы необходим, чтобы загружать программы через аппаратный загрузчик программ, к примеру, StLink. Устройство оборудовано программным загрузчиком, который помогает зашить программу посредством UART 1. Это стандартный загрузчик, который зашивают в память устройства при производстве.

За стандартный режим функционирования платы ответственны 2 перемычки желтого цвета. Команда сброса или включения запускают программу из FLASH.

Если перемычки расположены так, как на рисунке, происходит запуск системного загрузчика.

Происходит закачка программной информации в ОЗУ. Это применяется в ходе отлаживания для хранения программного ресурса в памяти FLASH.

Входы BOOT соответствуют рабочим режимам устройства STM32. Создание программ с помощью бутлоадера происходит таким образом:

1. подключение выходов А9, А10 и к компьютерному СОМ-порту;

2. установка перемычки BOON0 из памяти системы в позицию запуска;

3. сброс микроконтроллера;

4. запуск на ПК прошивки FLASH устройства;

5. возврат перемычки в позицию запуска приложения из ФЛЭШ;

6. выключение устройства.

Новейшие ПК не всегда оборудуются СОМ-портами. К тому же, разных процедур со сбросом и участием перемычек — очень много, так что процесс утомителен. Его можно упростить следующим образом.

Подсоедините устройство к ПК посредством моста (USB-UART). Можно использовать как PL2303, так и другие модули, в том числе, плату Ардуино, куда входит интерфейсный преобразователь. К примеру, это может быть Arduino Nano. Просто свяжите вход «сброс» с землей, во избежание влияния микроконтроллера на работу интерфейсного преобразователя Ch440.

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

Припаяйте резистор с сопротивлением электричества 10 кОм на участке, ограниченном выводами PLS с 3 контактами. Он устанавливается взамен перемычки. Ток на устройство STM32 идет от моста (USB-UART). Поставьте там элемент питания в позицию 5 В.

Насчет резистора, у нас есть на сайте цветовая маркировка резисторов.

Использовать устройство не сложно. Без нажатия кнопок действует стандартный режим функционирования платы. Для программирования нужно:

• нажать и удержать команду прошивки;

• на короткое время нажать сброс;

• загрузить программу в ФЛЭШ микроконтроллера;

• отпустить клавишу прошивки;

• нажать клавишу сброса.

Все перечисленное осуществляется с помощью пальцев одной руки.

Как настроить Arduino IDE

Одна из отличительных черт платы состоит в том, что под нее пишется Arduino IDE с использованием знакомого набора классов и процедур, и многих библиотек, заранее написанных под Arduino. Этим stm32f103c8t6 плата и привлекает новичков.

Программирование осуществляется с помощью кросс-компилятора для ARM, стандартной библиотеки С, отладчика, клиента к программатору.

После настроек нужно проверить 2 джампера на плате, чтобы они были в нулевом положении. Во избежание долгой работы с проводами для выяснения соответствия проводов разных цветов пинам, возьмите макетку и спаяйте адаптр на основе разъема IDC-10.

Подключение адаптера к плате осуществляется с помощью 4 угловых гнезд, а к программатору — посредством специального шлейфа.

На плате Blue Pill светодиод находится между PC13 и VCC . Так что, при подаче HIGH на PC13 устройство гасится, на LOW — зажигается. Если проверка показывает ошибку, разберитесь, не спутали ли вы пин CLK и IO и зажмите кнопку Reset на плате. Если ошибок нет, светодиод на плате замигает, а частота сигналов будет изменяться при разных вариациях кода.

Как прошить плату STM32F103C8T6 посредством usb/ttl и st-link v2

Чтобы началось взаимодействие stm32f103c8t6 с arduino ide, соедините плату с конвертером. У устройства stm32 — 3,3 вольтная логика. Значит, такие требования и к usb/ttl. Не стоит делать прошивку обычным, с 5-вольтовой логикой, устройство может сгореть. Перемычка должна быть поставлена определенным образом.

Загрузите ряд приложений:

  1. TM32 Flash loader demonstrator — это необходимо для того, чтобы прошить микроконтроллер 1-й раз. Дальнейшая прошивка будет осуществляться посредством arduino ide. Загрузить приложение возможно через официальный сайт.
  2. Arduino_STM32. Эти устройства stm32 добавляют в arduino ide, для выбора нужной платы, когда вы заливаете скетч. Загружайте архивный файл с адреса github.
  3. STM32duino-bootloader. В этой программе есть прошивка, которая требуется для первоначальной прошивки прибора. Целый архивный файл скачивается на github.

После скачивания нужна разархивация архивных файлов. STM32 Flash loader demonstrator устанавливают в одну из папок на ПК. Она легко находится по словосочетанию deminstrator gui. Запустите то, что установили.

При открытии первого окна нужно выбрать СОМ-порт, где будет виден конвертер usb/ttl. Нажмите клавишу “Далее”.

При наличии в 1-м участке информации, которая отображена красным шрифтом, нажмите клавишу “Remove protection”, а затем — “Next”. Если ваше окно соответствует данной фотографии, просто нажмите “Next”.

Теперь необходимо сделать выбор платы из 2 версий: 64 и 128К. Устройству STM32F103C8 соответствует 64К, (STM32F103CB, соответственно, — 128К). После выполнения этого действия, нажмите “Next”.

Выберите в окошке слово «загрузка» и перейдите к раскрытому архивному файлу STM32duino-bootloader. Выберите в одной из папок (binaries) документ gd32f1_pc13.bin .

Нажмите “Далее” для начала закачки файла . bin.

Закройте приложение вслед за запуском и откройте Arduino ide. В инструментальном разделе появится возможность определиться с типом платы.

Для заливки выберите “Generic STM32F103C series”. Существует 2 варианта прошивки. Первый — посредством usb/ttl. Чтобы им воспользоваться, выберите serial в “Upload method”.

Загрузка в устройство пройдет успешно. Но на сайтах вроде Алиэкспресс, чаще всего, продают такие приборы вместе с загрузчиком приложений st-link v2. Он обеспечивает более быструю загрузку скетча. Он обладает 3,3 вольтной логикой, которая необходима нашему контроллеру. Так что логичнее — загружать приложения посредством st-link. Подсоедините его к плате вот так:

Как только произойдет подключение, выберите “STLink”, и загрузка будет происходить посредством данного свистка.

Хочу поделиться с Вами интересной статьёй — электрическое напряжение. Кликай и читай дальше.

ARM. STM32 быстрый старт

Данная статья, которая является еще одним «быстрым стартом» в освоении ARM-контроллеров, возможно поможет сделать первые шаги в освоении 32-битных контроллеров ARM на базе ядра Cortex-M3 — STM32F1xxx серии. Возможно данная статья (которых на эту тему появляется как грибов после дождя) станет для кого-то полезной.

Введение

Почему ARM?
1. Есть из чего выбрать (разными производителями сегодня выпускается более 240 ARM-контроллеров)
2. Низкая цена (например за 1$ можно получить 37хI / O, 16K Flash, 4K RAM, 2xUART, 10x12bitADC, 6x16bitPWM).

А начнем нашу работу с контроллеров фирмы ST Microelectronics. Контроллеры на основе ядра ARM Cortex-M3 характеризуются широким набором периферии, высоким уровнем рабочих характеристик, низкой цене
P.S. В самом начале создается впечатление, что ARM’ы это какие-то страшные (в пайке, разводке, программировании) существа. Но это только на первый взгляд 🙂 и вы в этом сами убедитесь.

Итак, изучать ARMы будем на примере контроллеров STM32F1. Одновременно эта серия имеет несколько линеек:

  • Value line STM32F100 — 24 МГц CPU, motor control, CEC.
  • Access line STM32F101 — 36 МГц CPU, до 1 Mб Flash
  • USB access line STM32F102 — 48 МГц CPU with USB FS
  • Performance line STM32F103 — 72 МГц, до 1 Mб Flash, motor control, USB, CAN
  • Connectivity line STM32F105/107 — 72 МГц CPU, Ethernet MAC, CAN, USB 2.0 OTG

Также существует следующая классификация:

Low-density devices

STM32F101xx, STM32F102xx, STM32F103xx

Medium-density devices

STM32F101xx, STM32F102xx, STM32F103xx

High-density devices

STM32F101xx, STM32F103xx

XL-density devices

STM32F101xx, STM32F103xx

Connectivity line devices

STM32F105xx, STM32F107xx

Придется часто лазить здесь
Еще скажу несколько слов об этом ресурсе. Ясное дело, выбираем нужный контроллер и попадаем на страницу с кучей файлов в формате. рdf. (вкладка Design support). Можно читать все, но достаточно ознакомиться с такими файлами:
1. REFERENCE MANUAL (содержит полную спецификацию на контроллер).
2. ERRATA SHEET (содержит описание ошибок, которые могут возникать при работе с периферией).
3. Остальные документы содержат примеры работы с периферией, вопросы, связанные с программированием, описание некоторых библиотек, а с самого низа страницы можно найти EVARM-проекты демоплат и подобное ПО.

Архитектура

Итак, наш контроллер STM32 содержит в себе Cortex-M3 процессор (M означает серию для бюджетных устройств). Для того, чтобы начать программировать ARMы и не пользоваться только default’ными примерам и настройками нужно иметь представление об их архитектуре. Для начала:
1) 32-битный МК, выполненный по Гарвардской архитектуре (память программ и данных разделены),
2) имеет несколько отдельных шин и 3-ступенчатый конвейер и более 10 регистров общего назначения, что позволяет выполнять операции параллельно и (большинство) — за один такт.
3) набор инструкций — Thumb-2 (смесь 16 — и 32-битных команд, ориентированный на компиляторы C / C + +).

Рассмотрим упрощенную блок-схему шинной архитектуры STM32:

Архитектура на примере линейки Connectivity devices

Итак, давайте коротко пройдемся по основам основ:
Матрица шин (bus matrix) — контроллер высокоскоростных шин, обеспечивающий независимую связь и арбитраж (в случае одновременного доступа к одному ресурсу) между системной шиной и шиной данных ядра, DMA, Ethernet (masters) и периферией — SRAM, FLASH, AHB (slaves) .

Шины ядра:
ICode bus — 32-битная шина инструкций — обеспечивает связь ядра с интерфейсом инструкций Flash.
DCode bus — шина данных — обеспечивает связь ядра с интерфейсом данных во Flash.
System bus — системная шина ядра — обеспечивает связь ядра и периферии
Flash interface (FLITF) интерфейс Flash-памяти — обеспечивает чтение, запись, стирание, чтение с буфером предварительной выборки, защиту памяти (от записи или чтения).
AHB system bus (Advanced High-performance Bus) — шина, которая связывает матрицу шин и периферийные шины APB (Advanced Peripheral Bus (Bridge)). Шина AHB, предназначена для управления, например, регистрами системной периферии (GPIO ЦАП и т.п.). Надо сказать, что шины APB1,2 работают на разных частотах: так APB2 может работать на частоте ядра, а быстродействие APB1 ограничено 36 МГц. Поэтому, на APB2 и висит скоростная периферия (АЦП, некоторые таймеры порты ввода / вывода и т.д.)
DMA (Direct Memory Access) — обеспечивает прямой доступ к памяти в обход ядра (нужно лишь задать что, откуда и куда передать, а DMA сам все возьмет и передаст кому надо через матрицу шин)
Reset & Clock Control (RCC) — обеспечивает тактирование ядра и периферии (которая по дефолту отключена от тактового сигнала) и сброс контроллера.

Стандартная схема подключения

И здесь для начинающих возникает вопрос в чем и как рисовать и разводить печатные платы для, например, 144-ногого микроконтроллера (48-ноги еще куда не шло). Однако ничего страшного в рисовании схемы, разводке и пайке данных контроллеров нет. Для этого можно пользоваться программой Eagle (она содержит библиотеку компонентов ST или в крайнем случае можно поискать в Интернете или скачать внизу статьи), можно попробовать рисовать платы в старом добром Sprint-е (хотя, первый вариант мне кажется более надежным). Ниже приведены стандартные схемы включения контроллеров семейства Value line STM32F100С4 и Connectivity line STM32F105

Привожу базовую схему подключения контроллеров STM32F1 и некоторые их нюансы:

  1. Корпус: контроллеры STM32 помещены в корпусах LQFP с числом лапок от 48 до 144, при этом распиновка ножек контроллеров в одинаковых корпусах — совпадает, что не может не радовать.
  2. Питание:
    1.  Контроллер питается от источника в 3.3 В (хотя можно подключать 2-3.6 В).
    2. Хотя напряжение питания равно 3.3В, много ножек контроллера толерантны к 5В сигналов (см. в спецификации лапки с пометкой FT).
    3. Vbat — используется для подключения резервного источника питания. Если в схеме резервный источник не используется, то Vbat надо посадить на общий источник питания.
    4. Vdd_1 … 4 подтягиваем к «+», Vss_1 … 4 сажаем на «-» источника питания.
    5. Спецификация на контроллер советует поставить параллельно источнику питания 5 конденсаторов в 100нФ (поближе к контроллеру) и один на 4.7мкФ (ближе к Vdd_3). Во многих схемах авторы часто не ставят их, думаю, если контроллер питается от чистого стабилизированного источника их можно не ставить.
    6. Питание АЦП (он питается напряжением 2,4-3,6 В) и цифровой части схемы в STM32 разделены (для большей надежности, очевидно) и если мы не используем отдельный источник для АЦП, Vdda / Vssa сажаем на соответствующие выводы общего источника, иначе схема может работать некорректно и непредсказуемо. В 100-пиновых корпусах есть еще дополнительные лапки опорного источника АЦП Vref + / Vref-. Vref- нужно повесить на Vdda, а на Vref + можно бросить от 2,4 В до Vdda.
  3. Резонатор. STM32 может тактироваться от:
    1. Внутреннего высокочастотного генератора на 8 МГц (HSI).
    2. Внутреннего низкочастотного источника тактовых импульсов 40 кГц (LSI).
    3. Внешнего высокочастотного осциллятора (HSE).
    4. Внешнего низкочастотного осциллятора на 32,768 кГц (LSE-генератор может работать вместе с HSE или синхросигналом и обеспечивает синхронизацию часов реального времени и работу оконного сторожевого таймера).
    5. Внешнего сигнала синхронизации (его частота должна быть целым делителем максимальной рабочей частоты контроллера).
  4. Сброс контроллера можно провести:
    1. «заземлив» лапку NRST. Стоит сказать, что разработчик постарался и уже включил подтягивающий резистор этой лапки. (external reset)
    2. С помощью одного из сторожевых таймеров независимого или оконного (IWDG или WWDG reset).
    3. С помощью схемы слежения за низким напряжением (low-power management reset)
    4. при входе в режим Standby
    5. при входе в режим Stop
    6. Программно — установкой определенного бита

Для удобства пайки LQFP корпусов, существуют переходники. Продаются на eBay, бывают универсальные и под фиксированное количество ножек. Средняя цена: 1$ за штуку, посмотреть можно здесь.

Программирование. Отладка

BOOT1

BOOT0

Boot mode

X

0

Flash память

0

1

Системная память (bootloader)

1

1

Память SRAM

Контроллеры STM32 можно заставить загружаться с 3-х областей памяти (в зависимости от состояния ножек BOOT0 и BOOT1 при старте контроллера или после его сброса). Записать программу в память контроллера можно следующими способами:

1 способ:
Используя загрузчик (он уже записан в системную память) и USART1 (USART2 remaped): использует внутренний тактовый сигнал 8 МГц. Чтобы запустить встроенный загрузчик, зашитый в контроллер производителем, достаточно просто бросить на лапки контроллера TX1, RX1 сигнал с преобразователя RS232-3.3В (например на базе FT232RL) и выставить перед этим BOOT0 = 1 и BOOT1 = 0 жмем RESET и можем шить программу в контроллер. А зашивается она в программе Flash Loader Demonstartor от STM (для Windows).

PS. Если вы сидите под LINUX и не имеете отладочной платы типа дискавери, можно заливать прошивку в контроллер через всеми любимый rs-232 (собственно — через преобразователь rs-232-3,3В). Для этого нужно использовать python-скрипт (Ivan A-R) (для LINUX или MACOSX).
Для начала у вас должен быть установлен Python 2.6 версии и библиотека для работы с последовательным портом — PySerial library.
Теперь, чтобы запустить скрипт stmloader.py (из терминала, разумеется) нужно его немного подправить под свой компьютер: откроем его в текстовом редакторе.
Набираем в командной строке
~$ dmesg | grep tty
чтобы увидеть все последовательные порты ПК.
и после набора…
 ~$ setserial -g /dev/ttyS[0123]
мы узнаем путь к нашему 232-му порту. Если система ругается на setserial, установим его
~$ sudo apt-get install setserial
мы узнаем путь к нашему физическому порту (например, у меня — /dev/ttyS0). Теперь нужно записать этот путь в файл скрипта stm32loader.py вместо дефолтного «/dev/tty.usbserial-…». Набираем в терминале
~$ python stm32loader.py -h
…для вызова справки и заливаем прошивку в наш контроллер.

2 способ:
Через USB OTG, используя DFU-режим, требует внешнего кварца на 8 МГц, 14.7456 МГц или 25 МГц (этот загрузчик есть не у всех контроллерах с USB OTG надо внимательно смотреть на маркировку вашего контроллера)

3 способ:
JTAG/SWD. Ну и для тех, кто имеет демоплату типа Discovery или самопальный JTAG/SWD программатор, можно заливать код и уже отлаживать свой микроконтроллер этим способом. Для JTAG в микроконтроллере отведено 6 лапок (TRST, TDI, TMS, TCK, TDO, RST) + 2 на питание. SWD использует 4 сигнала (SWDIO, SWCLK SWO, RESET) и 2 на питание.

PS. В среде EAGLE я набросал несколько схем-заготовок для 48-ми, 64-х и 100-ногих контроллеров (папка eagle), а stm32loader содержит скрипт stm32loader.py

Теги:

  • STM32
  • Cortex
  • ARM
  • Микроконтроллер
  • Eagle

stm32 — Может ли модуль USB STM32F103 синхронизироваться с помощью HSI?

спросил

Изменено 6 лет, 5 месяцев назад

Просмотрено 7к раз

\$\начало группы\$

Имеется плата STM32F103CBT6 без внешнего высокоскоростного кристалла.

Я хочу использовать модуль USB на этой плате. Вход PLL составляет 4 МГц, так как я настроил источник PLL на внутренний RC-генератор (обычно 8 МГц с 2-кратным делением), затем я настраиваю PLL на 12x, что означает, что тактовая частота модуля USB составляет 48M.

Тогда USB модуль работает хорошо, вроде стабильно.

Пробовал разогревать плату до 80С для проверки стабильности USB модуля при снижении точности хода часов, также пробовал охлаждать до -10С, проблем не вызывает.

Но я все же переживал за стабильность загнанного таким образом модуля USB.

В некоторых спецификациях серии STM32F0 от ST подчеркивается, что их USB-модуль «без кристалла», что, по-видимому, означает, что USB других серий, таких как STM32F1, не может работать без внешнего кристалла. Но в техническом описании STM32F1 эта проблема четко не указана.

Мне стало интересно, достаточно ли стабильно работает usb без внешнего кристалла.

Кстати, для добавления функции IAP в проект необходим usb, так что это серьезная проблема.

Спасибо.

\$\конечная группа\$

1

\$\начало группы\$

USB, согласно спецификации, требует, чтобы частота находилась в пределах 0,25% (2500 ppm) от идеального значения (для полной скорости — высокая скорость требует более точных часов). В техническом описании STM32F103xB (глава 5.3.7: Характеристики внутреннего источника синхронизации ) вы увидите, что HSI гарантированно будет иметь допуск от -1,1% до +1,8%, даже при постоянной температуре 25 °C. что не достаточно.

Обратите внимание, что STM32F0 (указанный для бескристаллического USB, как вы заметили) имеет HSI48, указанный с еще худшим допуском (от -2,8 до +2,9%), что на первый взгляд кажется противоречивым. Но он также имеет функцию, называемую автоматической обрезкой , часть блока системы восстановления часов (CRS) (упоминается в главе 3. 20 таблицы данных и подробно описано в главе 8 справочного руководства), которая позволяет настраивать этот генератор в зависимости от кадра SOF, полученного от USB, эффективно восстанавливая часы с требуемым допуском.

Эта система восстановления тактовой частоты не включена в STM32F1, поэтому вы не можете полагаться на USB для правильной работы на этом чипе без внешнего кристалла. Скорее всего, у вас есть чип с более чем средней точностью HSI, но он может не работать с другим образцом.

Короче: не делайте этого, если только это не единичный прототип.

\$\конечная группа\$

3

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Российский беспилотник Орлан-10 состоит из деталей производства США и других стран — фотодоказательства

Многоцелевой беспилотный летательный аппарат (БПЛА) Орлан-10 активно используется российской армией в боевых действиях против Украины на Донбассе. По данным из открытых источников, система разработана российской компанией «Центр специальных технологий» из Санкт-Петербурга. Система является частью российской единой тактической системы управления, разработанной в рамках концепции сетецентрической войны. Однако оказалось, что русские изготовили только корпус беспилотника и навигационный приемник МНП-М7. Однако даже в основе приемника лежит микросхема ADSP-BF534 производства американской компании Analog Devices. Другие компоненты, т.е. GPS-трекер, стартер-генератор, двигатель, модуль зажигания, контроллер полета, модуль передачи телеметрии и модуль GPS, были произведены в США, Германии, Японии, Китае и других странах. Эти комплектующие являются товарами двойного назначения, которые Россия закупает для применения в военных целях.

Беспилотник упал в акваторию Азовского моря

Добровольцы Армейского отряда SOS эксклюзивно предоставили InformNapalm отчет с описанием составных частей российского БПЛА «Орлан-10» (бортовой №10332), который потерпел крушение в Азовском море 6 ноября 2016 года у прибрежного поселка Мелекино Донецкой области. В журнале полетов , опубликованном в предыдущем отчете , указано, что этот БПЛА неоднократно использовался для ведения разведки территории Украины российской армией, начиная с вторжения на Крымский полуостров. Беспилотник также использовался для разведывательных полетов над украинским Донбассом. Он был запущен с площадок, расположенных в оккупированном Крыму, а также с российских военных полигонов в Краснодарском крае и Волгоградской области России.

«Наши техники разобрали этот дрон до винтика, выпарили соль из элементов, прочитали все платы и схемы », — прокомментировали армейские волонтеры SOS.

Благодаря этой кропотливой работе мы выяснили, из каких компонентов состоит российский беспилотник «Орлан-10».

Орлан-10 в деталях

GPS-трекер

GPS-трекер расположен на расстоянии 100/150 мм от отсека створок крыла. Он питается от внешнего и встроенного аккумулятора. Сим-карты в модуле передачи данных не было, трекер должен быть предварительно запрограммирован на определенных операторов. Микросхемы с маркировкой HC4060 2H7A201 и STC 12LE5A32S2 35i были произведены в Китае.

Selection_941

Selection_942

Selection_943

Starter-generator

PTN78020 was manufactured by the American company Texas Instruments Incorporated

Selection_944

Selection_945

Selection_946

Engine, ignition module

Двигатель внутреннего сгорания с 4,8-9Модуль зажигания V, 500мА производства японской компании SAITO .

Selection_948

Selection_949

Контроллер полета

Собран на микросхеме STM32F103 QFP100 франко-итальянского производителя STMicroelectronics .   В качестве датчиков давления используются микросхемы MPXA4115A и MPXV5004DP производства американской компании Freescale Semiconductor (в настоящее время компания принадлежит голландской NXP Semiconductors NV ).   Датчик компаса HMC6352 производства американской компании Honeywell.

SELECTION_950

SELECTION_951

Сборка управления полетом

SELECTION_959

SELECTION_960

TELEMTRY MODRALENTRIOL 9002

9002. 9002. Almoster.0041 Microchip, его диапазон передачи составляет 902-928 МГц. Передатчик RF3110 производства немецкой компании Municom .   DP1205-C915 Ресивер произведен немецкой компанией AnyLink и имеет наклейку российского дистрибьютора ImoTech .   Антенна, установленная внутри хвоста, представляет собой классический четвертьволновый диполь на 915 МГц с вертикальной поляризацией.

Выбор_955

Выбор_956

 

Модуль GPS

Модуль выполнен на базе приемника ГЛОНАСС/GPS/QZSS LEA-6N производства швейцарской фирмы u-blox в паре с российским MNP-M7 (построен на американский чип ADSP-BF534 производства Analog Devices ).

Selection_958

Selection_957

По состоянию на январь 2018 года в Луганской и Донецкой областях зафиксировано пропажу девяти дронов этого типа.

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

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