Як створити пристрій на stm32 з нуля

Підсаджують народ на STM, тут з'ясували що всякі плати Discovery для простого радіоаматора занадто космічна технологія - на дорогих каміннях, фаршу зайвого багато. Ось покажи нам як зробити, що-небудь на рядових мікроконтролерах, щоб дешево і сердито.

Все таки, якщо ви вперше побачили STM і не знаєте з чого почати, настійно рекомендую взяти готову отладочную плату і почати вивчення з портів введення-виведення GPIO, таймерів і т.д. Ми ж в цій статті будемо мучитися муками залізної частини.

На мій погляд все це страшно і незрозуміло до тих пір поки один раз не зробив, далі йде як по маслу. Хоча ні, одна проблема поки ще висить, це тактирование, але про це іншим разом.

Озвучимо завдання. Ви награлися налагоджування платою, вже трохи вмієте писати код і вирішили запив що небудь своє. Перше питання - який вибрати камінь? Спочатку варто замислитися над і почитати якусь загальну інформацію про різні серії мікроконтролерів, чим вони відрізняються, що можна зробити і чого не можна. Припустимо лінь.

Тоді такий варіант. Припустимо, одні пишуть що stm32f4 це круто, інші пишуть що круто, але ціна нас не влаштовує або не купити - відмітаємо. Шукаємо далі, знайшли stm32f1 круто, інший пише що круто - дивимося ціну, більш менш порядок - вирішено, нехай буде серія 103.

Відразу потрібно подбати про те, чим будемо прошивати мікроконтролер, тобто потрібен програматор - саме елементарне писати в гуглі - "програматор для STM32». У всіх налагоджувальних платах, що мені доводилося тримати в руках, був програматор St-link. Можете купити його окремо, можете купити ще якийсь програматор, ніхто вам цього не забороняє.

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

Як створити пристрій на stm32 з нуля

Харчування зазвичай 3.3В, але хіба мало що буває. Найправильніше це прочитати все це в даташіте, але можна підглянути як це реалізовано в чужих схемах, гугл картинки вам на допомогу. В результаті ще перед покупкою всіх деталей, ви повинні розуміти, від чого ви будете живити схему, від чого тактіровать і чим прошивати. Все це є в даташіте.

Припустимо, я вибрав STM32F103C8T6, чому вибрав, а тому що де то почув про нього (метод проб і помилок). Крім того, у нього 64 Кб флеша, корпус LQFP-48, 20 КБ рами, 3 Юарта, 2 spi, прийнятним ціна. За характеристиками це вельми непогано, як дізнався? У цьому допоміг досвід отриманий від AVR, якби я юзал цей камінь вперше то крім ціни і корпусу в 48 ніжок інше мені б ні про що не говорило. Знову ж, тоді метод проб і помилок.

Як створити пристрій на stm32 з нуля

Живити я буду від лабораторного джерела живлення в 3.3В, для тактирования візьму кварц на 16МГц і 2 конденсатора на 22пФ. Як програматора задіюю плату STM32F4Discovery, яку придбав раніше. Йдемо в магазин, купуємо все що потрібно.

Коли все є, переходимо до процесу проектування. Я вирішив просто розпаяти камінь і ніжки вивести на штирі. Просто макетке.
1. Так як я малюю в Altium, то потрібно спробувати знайти посадочне місце мікросхеми і її символ. Велика удача, якщо це є в гуглі, якщо немає тоді доведеться брати даташит в зуби і малювати все з нуля. Хоч це і здається складним, але насправді це не так. У моєму випадку є схема, яка містить посадочне місце і символ. Я тупо копіюю їх до себе в бібліотеку, бо може стане в нагоді ще.
2. Обов'язково відкриваємо даташит і перевіряємо те, що скопіювали, щоб не отримати лажу потім, в цьому прикладі я подивився тільки 1 пін і 25, але краще перевірити кожен пін.
3. Створюємо проект, чіпляємо бібліотеки, дивимося вже конкретно, куди чіпляти кварц, куди чіпляти роз'єм програматора.

Коли всі елементи забиті в бібліотеку, йде довгий етап підготовки схеми і розводка плати, такі моменти як протягнути проводок від одного елемента до іншого думаю інтуїтивно зрозумілий, тому в прискореному режимі. Ключові моменти, як перейти від схематика до pcb і заливка полігоном показані в нормальній швидкості.

Тепер можна переходити до програмування. Знімаємо перемички з F4 і юзаем її як погроматор.

Як створити пристрій на stm32 з нуля

Перевіряю в Кейлі, камінь визначається.

Як створити пристрій на stm32 з нуля

ЗИ: З'ясувалося, що ніжку Boot0 треба заземлювати, щоб шити саме флеш пам'ять

Прошивка через UART досить специфічна штука, тому й не описано. В Кейлі відладчик нормальний і проект як ніяк розвивається, крім того до 32к коду він безкоштовний.

А хіба IAR НЕ развівется? Я не можу судити з практики що лутше а що ні тому що я тільки тиждень тому подивився на арм. Судячи з даташіту комбінація над 2 висновками з арм вводить його в режим достопа у флеш. Навіть програма прошивки флеш від stm а є. Мені не дозволено отладочная плата. Я буду робити плату пристрою з прошивкою через usart.