О радостях и трудностях первого знакомства с STM32 после AVR. Как я реализовал простейшую задачу — перенос данных на ПК.
Имея некоторый опыт работы с AVR, хотелось бы сравнить пришедшие контроллеры (которые стоят отдельно 1,7$/шт. ) с аналогичными ценами ATMEGA328 ( 1,4 $/шт. ).
АТМЕГА328 | СТМ32F103C8T6 | Выигрыш, раз | |
---|---|---|---|
Флэш, кБ | 32 | 64 | 2 |
ОЗУ, КБ | 2 | 20 | 10 |
Максимальная частота, МГц | 20 | 72 | 3.6 |
Скорость АЦП, КСПС | 15 | 2*1000 (можно разогнать) | 133 |
Причем эти 64 кБ расходуются чуть ли не быстрее, чем 32 на AVR. Такие контроллеры логично использовать там, где нужна высокая производительность, но нет кодоёмких алгоритмов.
например осциллограф.
Внешний вид отладочных плат:
Слева направо:
- Ардуино УНО (ATmega328P), 3.59$ ;
- Наша плата, которую мы будем мучить (STM32F103C8T6), 4.97$ ;
- Еще одна отладочная плата на базе STM32F103C8T6, 3.92$ ;
- Ардуино Нано (ATmega328P), 2.23 — 2.56$ .
Как программировать
Существует великое множество сред программирования STM32 — IAR, Keil, Coocox… сначала кажется, что это хорошо и обязательно найдешь что-то подходящее.Потом приходит понимание того, как образовался такой зоопарк.
Кто-то просто сделал не очень хорошую IDE. Остальные посмотрели на это и решили, что могут добиться большего.
И они это сделали.
В чем-то получилось лучше, в чем-то хуже.
Прочитав отзывы и попробовав IAR, я остановился на Coocox. Есть еще одна программа — STM32CubeMX. Дело в том, что в STM32 гораздо больше периферии, чем в AVR. Инициализировать его гораздо сложнее.
STM32CubeMX позволяет выбрать контроллер, щелкнуть мышкой и сгенерировать код инициализации.
Даже если мы не хотим использовать этот сгенерированный код, в STM32CubeMX удобно посмотреть распиновку и схему тактирования, выбрать делители и умножители и вручную прописать их в своем коде! Очень рекомендую всем новичкам! STMStudio — программа, позволяющая наблюдать за значениями переменных в МК в режиме реального времени.
В качестве программатора я решил использовать дешевый ST-Link V2. 2.6$ .
Все подключается очень просто.
Берём распиновку JTAG,
посмотрите картинку на ST-Link,
и соедините контакты (ST-LINK -> JTAG):
- Земля -> Контакт 20;
- 3,3 В -> Контакт 1;
- РСТ -> Контакт 15;
- SWCLC -> Контакт 9;
- SWDIO -> Контакт 7.
Теги: #Программирование микроконтроллеров #stm32 #Сделай сам или Сделай сам #Электроника для начинающих #stm32f103#include "stm32f10x.h" int main(void) {
-
Увольнение.
19 Oct, 24 -
4 Причины Прокрастинации (В Тексте)
19 Oct, 24 -
Как Хабрацы Встретили Новый Год?
19 Oct, 24 -
Ужасная История Стандартов Кодирования
19 Oct, 24