![](https://habrastorage.org/getpro/geektimes/post_images/62f/dff/0fb/62fdff0fba538fe0572be38598c5ab5e.jpg)
Я решил попробовать доказать, что это далеко от истины, и сделал платку, проще которой трудно: 1 сторонняя, 1 обязательный конденсатор (до стабилизатора не обязательно), 1 резистор, один стабилизатор 3.3V, и наконец младший STM32: STM32F100C4T6B — 16кб флеш, 4кб SRAM, 48 ног, Cortex-M3(!!!) с DMA, дебагом на лету, 32*32+32->32 за 1 такт и всеми прочими радостями за 28 рублей.
![](https://habrastorage.org/getpro/geektimes/post_images/d98/448/571/d984485714b293db1540b36422c53ef7.gif)
![](https://habrastorage.org/getpro/geektimes/post_images/197/bdb/5fc/197bdb5fcb87027fbe90d4f58e56307f.jpg)
Схема и разводка для Eagle — прилагается. Впрочем, не ругайтесь за кривой символ МК — рисовал как умел — по прежнему ищу полную библиотеку STM32 чипов.
![](https://habrastorage.org/getpro/geektimes/post_images/52e/29b/06b/52e29b06b02b4c9bce5e59df00353041.jpg)
Еще раз подчеркну — все это вполне реально делается дома, утюгом и обычным паяльником (с регулируемой температурой, а не 200Вт-ным конечно). 4-х слойной платы не нужно, паяльной станции с феном не нужно.
Для программирования качаем демо-версию IDE keil (дебагер/компилятор/редактор) — для мелких мк работает без ограничений (но прямой ссылки дать не могу, ищите). Тестовую программу берем готовую тут, и остается только заменить код в main() (и поменять файл с настройками через wizard чтобы нога PA1 была выходом и работал мк от внутреннего генератора — см. вкладку «Configuration WIzard внизу при редактировании вайла с настройками»):
int main (void) {
unsigned int hash = 0;
int i = 0;
stm32_Init (); // STM32 setup
while (1) {
for(i=0;i<50000;i++)
hash=(hash*hash+1234567)/hash+hash+87654321;
GPIOA->ODR = (GPIOA->ODR & (~2)) | ((hash&256)?2:0);
} // end while
} // end main
Настраиваем JLink: Ставим для него драйвера, затем в Keil: Flash->Configure Flash Tools. На вкладке Utilities выбираем JLINK, и жмем Settings. На вкладке Flash Download добавляем Programming algorithm «STM32F10x Low-density Flash».
Теперь билдим проект, и в меню выполняем Flash->Download, перезагружаем плату — и… оно работает. И кстати не отходя от кассы можно дебагером остановить программу, поставить брекпоинты, посмотреть переменные — все как в лучших домах
![](https://habrastorage.org/getpro/habr/comment_images/589/4ca/0c9/5894ca0c9e7ef627bfd7178b08017a4b.gif)
Вы все еще покупаете 8-и битные AVR-рки по 200 рублей? Тогда ARM идет к вам!