ARM — это сложно…?

Я решил попробовать доказать, что это далеко от истины, и сделал платку, проще которой трудно: 1 сторонняя, 1 обязательный конденсатор (до стабилизатора не обязательно), 1 резистор, один стабилизатор 3.3V, и наконец младший STM32 : STM32F100C4T6B - 16кб флеш, 4кб SRAM, 48 ног, Cortex-M3(!!!) с DMA, дебагом на лету, 32*32+32->32 за 1 такт и всеми прочими радостями за 28 рублей.


Схема и разводка для Eagle - прилагается. Впрочем, не ругайтесь за кривой символ МК - рисовал как умел - по прежнему ищу полную библиотеку STM32 чипов.

Еще раз подчеркну - все это вполне реально делается дома, утюгом и обычным паяльником (с регулируемой температурой, а не 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, перезагружаем плату - и... оно работает. И кстати не отходя от кассы можно дебагером остановить программу, поставить брекпоинты, посмотреть переменные - все как в лучших домах

Вы все еще покупаете 8-и битные AVR-рки по 200 рублей? Тогда ARM идет к вам!