сайт для палких паяльників

STM32

Статьи о STM32 с примерами (SPL)
(на русском языке)

Список статей який допоможе вивчити мікроконтролер STM32 навіть початківцю. Детально про все з прикладами починаючи від мерехтіння світлодіодом до управління безколекторним двигуном. У прикладах використовується стандартна бібліотека SPL (Standard Peripheral Library).

Читати далі

Управление PMSM с помощью STM32
(на русском языке)

Керування PMSM за допомогою STM32

Викладений нижче матеріал ґрунтується на документації AVR447 від фірми Atmel. Приклад керування PMSM двигуном з трьома датчиками Холла для мікроконтролера STM32 базується на інформації, викладеної в цій документації.

Існує деяка плутанина в термінології пов’язаної з безколекторними двигунами. Саме поняття “безколекторний двигун” включає в себе кілька груп двигунів, в тому числі і безколекторні двигуни з постійними магнітами. Далі маються на увазі безколекторні двигуни з постійними магнітами.

У більшості літературних джерел двигуни з постійними магнітами розділені на дві категорії за формою зворотного ЕРС (електрорушійна сила). Зворотна ЕРС може мати вигляд трапеції або синусоїди. Хоча термінологія в літературі іноді суперечлива, в більшості випадків вважається, що безколекторні двигуни постійного струму (BLDC) мають зворотну ЕРС у формі трапеції, а синхронні двигуни з постійними магнітами (PMSM) мають синусоїдальну зворотну ЕРС. І BLDC і PMSM можуть збуджуватися синусоїдальними струмами.

Читати далі

Управление бесколлекторным двигателем постоянного тока (BLDC) с помощью STM32
(на русском языке)

Керування безколекторним двигуном постійного струму (BLDC) за допомогою STM32

У якості прикладу розглянемо керування трьохфазним безколекторним двигуном (BLDC Motor) з датчиками Холла. Про алгоритм керування безколекторним двигуном з датчиками Холла я раніше писав у статті Управление бесколлекторным двигателем с датчиками Холла (Sensored brushless motors). У цій статті ми розглянемо лише питання програмування мікроконтролера. Мається на увазі що ви знайомі з алгоритмом керування BLDC з датчиками Холла та розумієтесь на структурі регулятора, а силова частина обрана відповідно до потужності Вашого двигуна. Тому у статті не буде наведена принципова схема, розглядатиметься лише структурна схема з описом призначення виводів мікроконтролера.

Читати далі

24. STM32. Программирование STM32F103. Bootloader
(на русском языке)

У цій статті ми розглянемо що таке Bootloader, навіщо і коли потрібен власний Bootloader, приклад як написати власний Bootloader, приклад як адаптувати прошивку для використання з Bootloader-ом.

Що таке Bootloader?

Bootloader (загрузчик) – це програма яка знаходиться у пам’яті мікроконтролера. Основна функція загрузчика – записати програму (прошивку) у флеш пам’ять мікроконтролера. Тобто, прошивка мікроконтролера. Використовується коли треба дати можливість оновити прошивку кінцевому користувачеві приладу без використання програматора.

Читати далі

Keil – Keil uVision5
(на русском языке)

Keil – Keil uVision5

Встановлення і налаштування Keil. Створення першого проекту.
Офіційний сайт: http://www.keil.com/
Комерційна IDE для мікроконтролерів STM32.
У безкоштовному варіанті має обмеження за обсягом програми до 32Кб.
Завантажити можна з офіційного сайту.

Читати далі

IAR Workbench – IDE для STM32
(на русском языке)

IAR – IAR Embedded Workbench for ARM 7.80

Встановлення та налаштування. Створення першого проекту.
Офіційний сайт: https://www.iar.com/
Комерційне IDE для мікроконтролерів STM32. У безкоштовному варіанті має обмеження на 30 днів, або за обсягом програми до 32Кб.
Завантажити можна з офіційного сайту.

Читати далі

23. STM32. Программирование STM32F103. Option bytes
(на русском языке)

Option bytes, захист прошивки

Option bytes налаштовуються розробником прошивки в залежності від потреб. Це декілька байтів, у різних контролерів їх кількість різна, за допомогою яких можна встановити деякі налаштування та захистити Flash від запису та зчитування. Захистивши потрібні сторінки Flash від запису, можна запобігти помилковому пошкодженню програми під час роботи. Встановлення захисту від зчитування робить неможливим зчитування та копіювання прошивки.

Читати далі

22. STM32. Программирование STM32F103. PWR
(на русском языке)

Зниження енергоспоживання мікроконтролера частіше за все нас цікавить при розробці приладів, які живляться від акумуляторів чи батарей. STM32 дозволяє керувати власним енергоспоживанням. Перш, ніж ми навчимося застосовувати режими зниженого енергоспоживання, розглянемо, як організоване живлення мікроконтролера та загальні методи зниження енергоспоживання.

Читати далі

21. STM32. Программирование STM32F103. USB
(на русском языке)

На тестовій платі STM32F103 маємо microUSB роз’єм. І він служить не тільки для подачі живлення. STM32F103 може працювати з USB у якості різних USB – пристроїв. Як USB HID пристрій, у тому числі – як клавіатура чи мишка, як віртуальний послідовний порт, USB Mass Storage, тощо. Ми розглянемо лише пару прикладів. У першому – комп’ютер буде сприймати STM32F103 як віртуальний послідовний порт. У другому прикладі STM32F103 емулюватиме клавіатуру і мишку.  STM32F103 буде рухати мишкою, (звісно на екрані :), та емулювати натискання кнопок на клавіатурі.

Читати далі

20. STM32. Программирование STM32F103. I2C Slave
(на русском языке)

У попередній статті ми розглянули роботу STM32 з шиною I2C у якості Майстра. Тобто, він був ведучий і опитував сенсор. Тепер зробимо так, щоб STM32 був Slave-ом і відповідав на запити, тобто сам працював як сенсор. Ми виділимо 255 байт пам’яті під регістри з адресами від 0 до 0xFF, і дозволимо Майстру в них писати/читати. А щоб приклад був не таким примітивним, зробимо з нашого STM32, ще і аналого-цифровий перетворювач з інтерфейсом I2C. ADC буде обробляти 8 каналів. Результати перетворень контролер буде віддавати Майстру при читанні з регістрів. Оскільки результат перетворення ADC займає 12 біт, нам потрібно буде 2 регістра (2 байта) на кожний канал ADC.

Читати далі

19. STM32. Программирование STM32F103. I2C Master
(на русском языке)

Шина I2C досить популярна і дуже багато сенсорів та інших пристроїв використовують саме I2C. Я не буду писати хто, коли і для чого винайшов цю шину та як по ній бігають байти. Цієї інформації повно у Інтернеті, для цього існує Вікіпедія. Коли Ви тримаєте в руках сенсор і бажаєте якнайшвидше отримати з нього дані, та вирішити поставлену задачу, Вам вистачить наступного мінімуму знань:

  1. Шина I2C – це двопровідна шина з лініями SCL, SDA. Теоретично, на одну шину I2C можна паралельно підключити до 112 пристроїв.
  2. Обидві лінії шини мають бути через резистори підключеними до живлення. Рекомендований номінал резисторів залежить від швидкості та інших параметрів шини. Зазвичай мало хто з цим морочиться і ставлять резистори у межах від 4.7кОм до 10кОм. Резисторів має бути по одному на кожну лінію.
    Якщо Ви підключаєте декілька модулів, а на кожному модулі вже впаяні підтягуючі резистори, то виходить, що резистори вмикаються паралельно і їх сумарний опір стає меншим. Це не дуже добре. Та, якщо ви вмикаєте лише два таких модуля і на кожному впаяні резистори по 10 кОм, тоді сумарний опір буде 5КОм, що попадає у межі допустимої норми і шина I2C, скоріш за все, буде працювати. Але повторюю: чіпляти на кожну лінію більше одного резистора – не дуже гарна ідея.
  3. Кожен пристрій на шині I2C має окрему адресу.
  4. На шині I2C може бути лише один Master і один, або декілька Slave.
  5. Швидкість шини може бути різною. Зазвичай використовують два стандарти 100 і 400 КГц. Швидкість лінії має визначатися по самому повільному пристрою на шині. Якщо Slave не встигає, він може “притримати” шину і всі його будуть чекати. Та такий підхід, хоч і є стандартом, але на практиці працює не завжди. У випадку, коли Master не вміє чекати (цим, наприклад страждають мікрокомп’ютери), на шині починається безлад. Тобто, некоректна робота одного з пристроїв на шині I2C (не важливо, у якій ролі – Master або Slave) може викликати проблеми у роботі усіх приладів.
  6. Якщо напруга живлення контролера відрізняється від напруги живлення датчика, вони мають вмикатися через двонаправлену схему узгодження логічних рівнів.

Читати далі

Translate
Архіви

© 2011-2017 Андрій Корягін, Кременчук - Київ, Україна