====== STM32 Primer ====== {{ :tutorial:small_description.png|STM32 Primer}} [[:tutorial:stm32primer-flash-over-uart|English version]] Есть в природе вот [[http://www.stm32circle.com/resources/stm32primer.php|такая забавная штучка]] на базе микроконтроллера STM32F103. В своём составе имеет: * Микроконтроллер [[mcu:STM32|STM32F103RBT6]] на базе ядра [[http://www.arm.com/products/CPUs/ARM_Cortex-M3.html|ARMv7-M (Cortex-M3)]]. В корпусе LQFP64. * Трёхкоординатный датчик ускорения. * Цветной графический дисплей 128x128 точек. * Кнопка, USB-интерфейс, звукоизлучатель, светодиоды, площадки для подключения устройств расширения. * Встроенный JTAG отладчик с подключением к ПК через USB. Версия [[soft:openocd]] из репозитория поддерживает встроенный отладчик под именем ''rlink''. Если отладка на реальном железе не нужна, можно пойти другим путём и воспользоваться встроенными возможностями контроллера STM32 - загрузчиком через UART1. ===== STM32 Loader ===== Простейший загрузчик можно получить по адресу http://freehg.org/u/iar/stm32loader/ В данный момент программа находится в разработке, но уже позволяет читать, стирать, записывать и проверять Flash память МК. ===== Доработка ===== STM32 Primer для возможности загрузки через последовательный порт UART1 требует некоторых доработок. Нам потребуется внести изменения в следующих зонах платы: {{ :tutorial:primer-full.jpg?600 |Primer}} ==== Шаг 1 ==== Для подключения к ПК нам потребуется Serial порт с TTL3.3v уровнями сигнала. Очень хорошо на эту роль подходит дата-кабель от мобильных телефонов на базе чипа Prolific PL-2303. Следует учесть, что вывод ''TX'' serial порта мы подключаем к точке ''RxD'' на плате, а вывод ''RX'' порта к точке ''TxD''. {{ :tutorial:stage3.jpg?400 |Step 1}} ==== Шаг 2 ==== Резистор ''R48'' подтягивает ногу процессора ''Boot1'' к питанию. Нам же надо переместить его так, что бы вывод был подтянут к земле. {{ :tutorial:stage1.jpg?400 |Step 2}} ==== Шаг 3 ==== Резистор ''R42'' нулевого сопротивления заменяем резистором номиналом 10К. Для того, что бы МК после сброса входил в режим загрузчика, точка ''Boot0'' должна быть притянута к напряжению питания (лог. 1). Это можно сделать либо замыканием выводов посадочного места резистора ''R49'', либо прямым подключением к выводу ''nRTS'' TTL Serial порта. {{ :tutorial:stage2.jpg?400 |Step 3}} ==== Шаг 4 ==== Для внешнего сброса МК можно подпаятся к точке ''Reset''. Это может быть обычная кнопка между ''Reset'' и ''GND'' или транзисторный ключ подключённый к выводу ''nDTR'' TTL Serial порта. {{:tutorial:stage4.jpg?400 |Step 4}} {{ :tutorial:semi-key.png|Ключ}} ==== Итог ==== В результате мы получим примерно такую конструкцию {{ :tutorial:stm32primer-mod.jpg?400 |Final}} {{tag>arm cortex stm32}}