Изучайте STM8 и STM32 по методичкам на русском языке! Stm32 книга


Изучайте STM8 и STM32 по методичкам на русском языке!

STM32

На сайте КОМПЭЛ размещены новые методические материалы на русском языке по программированию микроконтроллеров STM8 и STM32. Учебные материалы представляют собой инструкции к лабораторным работам на базе недорогих отладочных плат STM8SVLDISCOVERY, STM32F3DISCOVERY и STM32F4DISCOVERY. Рассчитанные на начинающих разработчиков, лабораторные работы пошагово учат работать с разнообразной периферией микроконтроллеров — портами ввода-вывода, таймерами, ШИМ, АЦП, компаратором, интерфейсами USART, I²C и SPI.

Лабораторные практикумы будут полезны тем инженерам, кто только осваивает новую архитектуру микроконтроллеров STMicroelectronics, а также студентам компьютерных специальностей, изучающим программирование встроенных систем.

Содержание методических материалов:

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM8 на базе отладочного модуля STM8SVLDISCOVERY

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочного модуля STM32F3DISCOVERY

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочных модулей STM32F3DISCOVERY и STM32F4DISCOVERY. Лабораторная работа №1. Изучение интерфейса SPI в STM32F3 Discovery

Скачать

Материалы на постоянной основе размещены по следующему адресу: Библиотека → Справочники → Литература производителя ST Microelectronics.

•••

Наши информационные каналы
О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

www.compel.ru

STM32F4xx_Поваренная книга анархиста / stm32 / Сообщество разработчиков электроники

/*------------------------------------------------------------------------------------------------- * Name: Поваренная книга анархиста программиста * микроконтроллерных систем на базе микропроцессора ARM * Cortex M4F (среда разработки Keil uVision4 v4.73.0.0) *-------------------------------------------------------------------------------------------------- * Copyright © All rights reserved. Maltsev Alexey. 2014 * vk.com/id233978561 * [email protected] * ICQ: 457-568-689 *-----------------------------------------------------------------------------------------------*/

Буэнос диас! Итак, что у нас в меню:

• Keil uVision4 (последняя версия на момент написания статьи v4.73.0.0)rutracker.org/forum/viewtopic.php?t=2305709

• STM32 ST-LINK utilitywww.st.com/web/catalog/tools/FM146/CL1984/SC720/SS1454/PF219866

• Дрова на плату STM32F4DISCOVERY под Windowswww.st.com/web/en/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168

• Тестовая плата STM32F4DISCOVERY • Библиотека STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

STM32F4DISCOVERYSTM32F4DISCOVERY — плата для быстрого и удобного изучения микроконтроллеров серии STM32F4, ориентированных на мультимедийные приложения. На плате установлен 32-битный ARM-микроконтроллер STM32F407VGT6 семейства Cortex-M4F со следующими характеристиками: • Корпус LQFP100 (100 ножек) • Напряжение питания: 1.8 — 3.6 В • Частота: до 168 МГц • Память программ (Flash): 1 МБайт • ОЗУ (RAM): 196 Кбайт • 4 Кбайт backup SRAM (аналог EEPROM) • Поддержка инструкций DSP и чисел с плавающей точкой • 16-битные таймеры: 2 базовых таймера, 8 таймеров общего назначения, 2 продвинутых таймера, 2 watchdog • 2 32-битных таймера общего назначения • USB 2.0 full-speed device/host/OTG со своим PHY на борту • USB 2.0 high-speed/full-speed device/host/OTG с отдельным DMA, со своим full-speed PHY на борту, есть поддержка ULPI • 10/100 Ethernet MAC с отдельным DMA, поддержка PHY-микросхем с интерфесами IEEE 1588v2, MII/RMII • 3x SPI (37.5 МБит/с), 2 из них с мультиплексированными полнодуплексными I2S для качественной передачи звука • 3x I2C с поддержкой SMBus/PMBus • 4x USART, 2x UART: 10.5 МБит/с, интерфейс ISO 7816, LIN, IrDA, modem control • 2x CAN (2.0B Active) • SDIO (для SD-карт) • DCMI — [от 8 до 14]-битный параллельный интерфейс камеры (до 54 МБайт/с) • Аналоговый генератор случайных чисел • Встроенный модуль расчёта CRC • 82x GPIO (выводы I/O) • RTC (Real-Time Clock) • 3 12-битных АЦП, 2.4 миллиона выборок в секунду, 16 каналов, 7.2 миллиона выборок в секунду в режиме тройного чередования • 2 12-битных ЦАП • Контроллер DMA с 16 каналами и поддержкой FIFO и пакетной передачи • Параллельный интерфейс LCD, режимы 8080/6800 • FSMC — контроллер статической памяти с поддержкой Compact Flash, SRAM, PSRAM, NOR и NAND • Возможность отладки по JTAG или SWD

Что ещё установлено на плате: • Отладчик ST-Link для отладки и прошивки МК, выведен разъём SWD для программирования других плат и контролллеров • Есть выводы для внешнего питания 5 и 3 В • Есть кнопка сброса • Четыре светодиода и одна кнопка, доступные для программирования • Все 100 выводов МК выведены по бокам платы штырьками по два ряда • LIS302DL — MEMS-датчик движения, 3х-осевой цифровой акселерометр • MP45DT02 — цифровой MEMS-микрофон • CS43L22 — аудио-ЦАП со встроенным драйвером динамиков класса D • Для USB OTG выведен разъём micro-USB. Если плату с заводской прошивкой подключить через этот разъём к компьютеру, то она будет вести себя как джойстик класса USB HID.

STM32 ST-LINK Utility Данную программу удобно использовать для прошивки микроконтроллера при помощи hex файла. Подсоединяем плату к ПК при помощи кабеля USB – miniUSB. Нажимаем на панели инструментов Connect.

Выбираем hex файл для прошивки (можно просто перетащить файл в основное окно программы).

Прошиваем плату Результаты прошивки отображаются в командной строке.

Keil uVision4 Монстр программирования. Умеет делать абсолютно все, даже то, что не умеет ;-)

Создадим новую папку, куда будем помещать все наши проекты. Например, STM32. В этой папке создадим папку для первого проекта. Назовем ее 00_Test. Так же в папке STM32 создадим папку _Lib – сюда мы поместим фалы библиотек CMSIS и Standard Peripheral Library, и каждый новый проект будет ссылаться на эту папку в поиске библиотек. В папке 00_Test создадим папки: Project – здесь будут служебные файлы, которые будет создавать программа Keil uVision4 для данного, конкретного проекта. user – файлы пользовательского кода (программа, которая будет зашиваться в микроконтроллер). В этой папке создаем текстовый файл main.c. Напишем в нем коротенький код

#include «stm32f4xx.h» int main(void) { while(1) {} }

Этот код нам понадобится потом.

P.S.: имена папок, а так же структура проекта – личное дело программиста, но надо стремиться к упорядоченному структурированию, чтобы проект был “читабельным” для других программистов. Папку Project можно и не создавать, но тогда все служебные файлы будут “замусоривать” корневой каталог папки 00_Test.

Вот, что должно получится: Теперь разберемся с библиотеками.

Будем использовать 2 библиотеки:

1. CMSIS (выпускает фирма ARM) 2. Standard Peripheral Library (выпускает фирма STMicroelectronics)

Обе библиотеки бесплатны и доступны для скачивания (эти две библиотеки объединены в одном архиве) на www.st.com/

Причем есть два варианта библиотеки.

1. Библиотека для микроконтроллера STM32F407VGT6 вообще STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 (stm32f4_dsp_stdperiph_lib.zip)

www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140?s_searchtype=partnumber# 2. Библиотека конкретно для тестовой платы STM32F4DISCOVERY STM32F4 -Discovery_FW_V1.1.0 (stsw-stm32068.zip)

www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/PF257904?s_searchtype=keyword

Мы будем пользоваться библиотекой STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

Заходим в папку STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 ↓ Libraries ↓ И копируем две папки CMSIS и STM32F4xx_StdPeriph_Driver в нашу папку _Lib

Удаляем в папке CMSIS (которую мы скопировали в _Lib) все, кроме папки Device.

Заходим в папку STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 ↓ Project ↓ STM32F4xx_StdPeriph_Examples ↓ ADC ↓ ADC_DMA ↓ Копируем файл stm32f4xx_conf.h в нашу папку STM32F4xx_StdPeriph_Driver Далее проделаем следующие манипуляции:

_Lib ↓ CMSIS ↓ Device ↓ ST ↓ STM32F4xx ↓ Include ↓ В свойствах файлов stm32f4xx.h и system_stm32f4xx.h снимаем галочку “Только чтение”

Запускаем программу Keil uVision4 и создаем новый проект.

Путь для проекта указываем: STM32 ↓ 00_Test ↓ Project ↓ Имя проекта Test

Далее программа предлагает автоматически создать файл конфигурации данного микроконтроллера – startup_stm32f40xx.s. Соглашаемся.

В итоге получили:

Переименуем папку Source Group 1 (в которую программа поместила файл конфигурации микроконтроллера startup_stm32f40xx.s) в startup. Для этого щелкаем один раз левой кнопкой мыши по имени папки и нажимаем F2 – имя папки теперь доступно для переименования. Аналогичным образом переименовываем имя проекта из Target 1 в 00_Test.

Добавляем в проект папку user:

Добавим ранее созданный файл main.c. в папку user. Для этого дважды щелкаем левой кнопкой мыши по заголовку папки (или при помощи правой кнопки вызываем контекстное меню).

Итак, мы создали на жестком диске папку проекта 00_Test. В этой папке создали еще две папки: Project и user. Project – тут программа будет размещать свои служебные файлы и главный файл проекта Test.uvproj user – тут мы будем размещать файлы кода, который будем загружать в микроконтроллер. В среде программирования Keil uVision4 создали новый проект 00_Test. В структуре проекта сейчас две папки: startup и user startup – в этой папке находится файл конфигурации микроконтроллера user – в этой папке содержатся файлы из папки user, которая была создана ранее на жестком диске.

На жестком диске больше никаких папок создавать не будем. Но в среде программирования в структуре проекта создадим еще две папки: CMSIS и StdPeriphLib. В этих папках будут содержаться наши библиотеки.

Подключим к этим папкам необходимые файлы из папки _Lib.

Для CMSIS: _Lib ↓ CMSIS ↓ Device ↓ ST ↓ STM32F4xx ↓ Source ↓ Templates ↓ system_stm32f4xx.c

Для StdPeriphLib: _Lib ↓ STM32F4xx_StdPeriph_Driver ↓ src ↓ все файлы (кроме файла stm32f4xx_fmc.c)

В опциях проекта необходимо указать пути к этим папкам библиотек

В папке user откроем файл main.c, щелкаем правой кнопкой мыши по #include «stm32f4xx.h», и выбираем Open…

Далее снимаем комментарии в тех местах кода, как показано ниже

Далее необходимо настроить проект:

Запускаем компиляцию проекта – F7.

Если все правильно, то ошибок не должно быть.

Напишем несложный код для мигания светодиодом

Обращаю внимание, что код должен заканчиваться пустой строкой (строка №45).

Запустим компиляцию (F7). Теперь можно “зашить” проект в микроконтроллер:

Если все было сделано правильно, то на тестовой плате должен мигать зеленый светодиод. Чтобы выйти из окна отладчика, нажимаем Ctrl+F5.

УРА!!! Продолжение следует…

tqfp.org

Практический курс STM32. Урок 0

ПредисловиеПримерно год назад, освоив MSP430 я решил подобраться к ARM. Купил себе F4-Discovery, но вот засада, если у Texas Instruments был отличнейший учебник, который позволял на практике освоить MSP в кратчайшие сроки, то с STM32 дела обстояли намного хуже: половина уроков была по серии F0(Cortex-M0 слегка далек от M4 знаете ли), остальные же уроки либо были предназначены для людей имевших ранее дело с ARM, либо основывалась на магии, то есть «вставляем вот этот кусок кода, нажимаем такую-то кнопку, смотрим на плату. Ура, светодиоды мигают, поздравляем» без объяснений что какой кусок кода делает.

Но недавно я решил все-таки достать пыльный Discovery и освоить STM32 от и до. Думаю лучший способ сделать это — написать цикл обучающих статей(если хотите, конспект).

О чем и для кого этот курсПрежде всего хочу сразу оговорить, что в основном курс будет касаться серии STM32-F4. Это Cortex-M4, который является прямым наследником Cortex-M3(STM32- L1, F1, F2) и отличается от него главным образом ядром с наличием DSP (цифрового сигнального процессора) и FPU (модуля операций с плавающей запятой).

Второй момент. Курс предназначен для новичков и многие конечно сочтут приведенные в нем описания базовых вещей слишком элементарными и излишними, но я не считаю, что освоение STM32 нужно начинать с освоения 8051, PIC'ов и AVR'ок, зачем? Времена когда компании-производители ограничивались выпуском лишь даташитов в качестве документации давно прошли: сейчас каждый производитель старается максимально популяризировать свой продукт и сегодня микроконтроллеры стали доступны широкой аудитории. Не буду начинать холивар STM vs. AVR, скажу лишь, что Cortex — новее, дешевле и перспективнее. Но есть два существенных недостатка, мешающих новичкам начинать знакомство с микроконтроллерами сразу с Cortex'ов:

  1. Мелкие корпуса — рекомендую посмотреть видео/почитать статьи по пайке и обзавестись более-менее приличным инструментом.
  2. Отсутствие единого руководства. Надеюсь мой курс сильно сэкономит вам время в поиске документации или руководства как провернуть ту или иную операцию.
Все что хотел сказать в предисловии — сказал. Ну что? Поехали.ДокументацияОбзор платы F4-Discovery можно посмотреть тут. На плате установлен камень STM32F407VG. Идем за документацией к нему сюда(ссылку стоит добавить в закладки), открываем вкладку Design Resources, скачиваем:
  1. Из Product Specifications — DS8626: ARM Cortex-M4 32b MCU+FPU, 10DMIPS, up to 1MB Flash/192+4KB RAM, USB OTG HS/FS, Ethernet, 17 TIMs, 3 ADCs, 15 comm. interfaces & camera. Это Даташит, в нем описана конкретная специфика конкретного контроллера семейства. Даташит как бы уточняет и дополняет Справочное руководство(о нем чуть ниже).
  2. Из Reference Manual — RM0090: STM32F405xx/07xx, STM32F415xx/17xx, STM32F42xxx and STM32F43xxx advanced ARM-based 32-bit MCUs. Это то самое Справочное руководство(далее — СР). Оно описывает серию из нескольких микроконтроллеров. Этот документ станет основным талмудом по части железа. В Даташит же будем лезть когда чего-то не найдем в СР или если нам потребуется что-либо уточнить. Обычно в таких случаях в СР дается прямая отсылка, мол «смотрите даташит на конкретный кристалл»
  3. Из Related Tools and Software — STSW-STM32065: STM32F4 DSP and standard peripherals library. Это просто гениальная библиотека от ST, которая значительно упрощает жизнь при написании и переносе кода, она позволяет думать на уровне архитектуры в целом, а не на уровне скажем регистров. Даже не знаю, почему ST ее так запрятала, видимо скромничают =). Из скачанного архива нам потребуется файл "stm32f4xx_dsp_stdperiph_lib_um.chm". Он представляет собой автоматически собранную из сопровождения к коду библиотеки документацию, следовательно то же самое можно увидеть и в .h или .c файлах. Тут уже кому как удобнее. Остальные файлы из архива нам не понадобятся, так как библиотеку будем подключать непосредственно из «репозитория» IDE.
Ну и поскольку в качестве отладочной платы у нас фигурирует F4-Discovery, неплохо бы знать, куда что подключено. Не вопрос, идем сюда(рекомендую также добавить в закладки) и скачиваем:
  1. Из User Manual — UM1472: Discovery kit for STM32F407/417 lines. Это руководство к плате. Рекомендуется заглядывать сюда перед тем, как что-то к ней подключить.
  2. Из Schematic Pack — STM32F4DISCOVERY schematics(а больше и нечего). Достаем из архива pdf'ку со схемами, кладем к остальным документам.
Кстати тут же в Related Tools and Software есть набор с туевой хучей примеров на все случаи жизни, но он нам пока не понадобиться, ведь у нас курс «с нуля»Установка IDEВыбор IDE для Cortex'ов действительно велик. Сама ST рекомендует использовать следующие: Но мы ST не послушаем. Все эти IDE коммерческие и стоят денег. Есть у них и бесплатные версии с ограничениями(и их вполне достаточно для начала), но ограничения — это не по-джедайски. В качестве альтернативы будем использовать бесплатную CooCox CoIDE(в простонародье — кокос), которая не уступает коммерческим. Она основана на Eclipse и самодостаточна. Версии для Linux у них правда нет(только обещают ее скоро сделать). Но думаю линуксоиды без проблем могут собрать что-то подобное из Eclipse+ARM Plugin+GCC ARM Toolchain. Нам же никаких плясок с бубном ни во время установки, ни во время использования не потребуется, все вкусности «из коробки». Приступим же к установке.
  1. Идем на ST и скачиваем ST-LINK utility. Устанавливаем. Эта штука является продвинутым программатором(только не подумайте что мы будем отладки ради зашивать через нее в камень скомпилированный код — нет, у нас ведь для таких целей есть кокос). Кстати в случае необходимости можно обновить ПО самого ST-Link(встроенный в Discovery программатор) через нее же. Отдельно драйвера ставить не нужно, они в этот установщик уже включены.
  2. Идем на оффсайт кокоса и скачиваем CoIDE. Устанавливаем. Крайне рекомендую скачивать и устанавливать через CoCenter, он значительно упрощает обновление в дальнейшем.
  3. Идем на ланчпад и скачиваем последнюю версию любезно собранного для нас тулчейна (gcc-arm-none-eabi-тратата-win32.exe). Устанавливаем, лучше директорию установки не менять.
  4. Открываем CoIDE. Сверху нажимаем Project -> Select Toolchain Path Ну и выбираем директорию установки тулчейна, а в ней bin.
P.S.На сегодня все, спасибо за внимание. Завтра напишу урок 1, там познакомимся с GPIO.

we.easyelectronics.ru


Смотрите также