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


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

STM32

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

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

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

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM8 на базе отладочного модуля STM8SVLDISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Использование внешних прерываний
  • Лабораторная работа №3. Использование таймеров. Организация задержек
  • Лабораторная работа №4. Использование таймеров Режим ШИМ
  • Лабораторная работа №5. Работа с UART
  • Лабораторная работа №6. Работа с SPI
  • Лабораторная работа №7. Работа с аналогово–цифровым преобразователем

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочного модуля STM32F3DISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Работа с внешними прерываниями
  • Лабораторная работа №3. Работа с АЦП. Устройства индикации
  • Лабораторная работа №4. Организация последовательной передачи информации. Интерфейс UART
  • Лабораторная работа №5. Использование аналогового компаратора
  • Лабораторная работа №6. Операционный усилитель

Скачать

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

Скачать

Материалы на постоянной основе размещены по следующему адресу: Библиотека → Справочники → Литература производителя 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 рекомендует использовать следующие:
  • Keil MDK-ARM
  • IAR Embedded Workbench for ARM (EWARM)
  • Atollic TrueSTUDIO
  • Altium TASKING VX-Toolset
Но мы 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


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