Платка STM32-P407 была куплена напрямую у Olimex, с целью подробного изучения платформы STM32F407 (на плате установлен микроконтроллер STM32F407ZGT6). Платка не только имеет роскошную документацию, подробную принципиальную схему, для неё также есть отличные примеры кода, демонстрирующие возможности различной установленной на плате аппаратуры.
Плата STM32-P407 с двухсторонним монтажом, выполнена очень качественно. Все коннекторы, кнопки, перемычки, светодиоды подробно документированы шелкографией. Имеется даже макетное поле, на котором можно соорудить свою конструкцию.
[Питание платы STM32-P407]
Я подключился через коннектор USB_OTG обыкновенным стандартным шнуром miniUSB, при этом перемычку PWR_SEL надо переставить в положение замыкания контактов 7-8. В плату по умолчанию был прошит пример, работающий с видеокамерой (Camera, см. ниже описание примеров кода Olimex), и он сразу запустился. На экране индикатора появилась картинка, которую выдавала видеокамера. Качество картинки было никакое, еле-еле угадывались очертания объектов, попавших в глазок камеры. При этом перемигивались разноцветными огоньками светодиоды STAT1..STAT3, а STAT4 постоянно горел зеленым.
[Чем отлаживаться - JTAG, SWD]
В руководстве пользователя [1] написано, что с платой STM32-P407 будут работать следующие аппаратные отладчики:
- Программатор/отладчик ARM-JTAG-COOCOX, поддерживаются интерфейсы JTAG и SWD, и отладка работает под управлением сред программирования CooCox IDE, Keil uVision и IAR EW с помощью плагина. - Любой отладчик/программатор ARM-JTAG от Olimex (см. примечания к предыдущему пункту). - Любой отладчик/программатор ARM-JTAG от Olimex + ARM-JTAG-SWD + Rowley CrossWorks.
Примеры, которые можно скачать с сайта Olimex, отлично работают с китайским J-Link [2] под управлением IAR 6.50. Можно загрузить программу в память микроконтроллера STM32F407ZGT6, выполнять её по шагам исходного кода на C, дизассемблированных инструкций, ставить точки останова, просматривать значения регистров и переменных, запустить выполнение программы на полной скорости - имеется полный набор стандартных функций, предусмотренных для отладки.
[Примеры, которые предоставляет Olimex для платы STM32-P407]
Примеры изначально заточены на IAR 6.50, отладчик J-Link и процессор STM32F207, но их можно запустить и на процессоре STM32F407ZGT6.
Название |
Описание |
Audio |
Работа со звуковым трактом. |
Camera |
Этот пример по умолчанию записан в плату STM32-P407, наверное как самый наглядный. Пример работает с видеокамерой и экраном LCD. На экране индикатора LCD при включении питания появляется картинка, которую выдает видеокамера. Качество картинки было никакое, еле-еле угадывались очертания объектов, попавших в глазок камеры. При этом перемигивались разноцветными огоньками светодиоды STAT1..STAT3, а STAT4 постоянно горел зеленым. |
Ethernet |
Работа с сетью. |
SDcard |
Работа с флеш-карточкой SD (на плате STM32-P407 установлен слот для карт microSD). |
USB_mouse |
Демонстрация работы в качестве периферийного устройства USB. |
[Примеры от IAR 6.50]
К сожалению, IAR 5.4 не поддерживает STM32F207 и STM32F407. Поэтому если у Вас Windows XP, то придется установить сначала Windows 7 (или Windows 8), и потом IAR 6.50 (дело в том, что IAR 6.50 не поддерживает Windows XP). Примеров очень много, но я не нашел работу с USB.
Примеры от IAR/STM можно открыть со стартового экрана IAR, если пройти по ссылкам EXAMPLE PROJECTS -> ST -> STM32F4xx. Далее можно пройти по ссылкам IAR-STM32F407ZG-SK или CMSIS and STM32F4xx stdperiph lib 1.1.0.
Таблица 1. Примеры для фирменной платы разработчика IAR-STM32F407ZG-SK.
Название |
Описание |
Accelerometer |
Базовое использования сенсора ускорения, установленного на плате. |
Buzzer |
Генерация звука с использованием пищалки. |
LCD |
Базовое использование I/O, таймера, контроллера прерываний и LCD. |
DSP Lib |
Как использовать библиотеку цифровой обработки сигналов. |
Temperature Sensor Demo |
Показывает базовое использование сенсора температуры, установленного на плате. |
Test Demo |
Демонстрационное программное обеспечение для платы разработчика IAR STM32F407ZG-SK. |
lwIP Webserver Demo |
Демонстрация работы web-сервера с использованием библиотеки lwIP v1.3.2 для организации стека TCP/IP. |
Таблица 2. Примеры CMSIS и STM32F4xx stdperiph lib 1.1.0.
Название |
Описание |
DSP Lib |
Демонстрация использования библиотеки цифровой обработки сигналов. |
ADC |
Работа с АЦП. |
CAN |
Работа с шиной CAN. |
CortexM |
CortexM (?). |
CRC |
Вычисление контрольной суммы. |
CRYP |
Использование периферии CRYPTO для шифрования и дешифровки данных. |
DAC |
Краткое описание использования периферии ЦАП для генерации сигналов, с применением контроллера DMA. |
DCMI |
Демонстрация использование Digital Camera Interface (DCMI) для управления модулем камеры OV9655/OV2640. |
DMA |
Как использовать канал прямого доступа к памяти для передачи буфера данных в формате слова из памяти FLASH во встроенную память SRAM. |
EXTI |
Пример конфигурирования линий внешнего прерывания. |
FLASH |
Пример самопрограммирования памяти FLASH STM32F4xx, как включать и отменять защиту от записи. |
FSMC |
Как конфигурировать и использовать Flexible Static Memory Controller (FSMC). |
GPIO |
Как работать с ножками микроконтроллера (GPIO) и переключать их логический уровень, используя регистры BSRRH и BSRRL. Как использовать выводы JTAG/SWD как стандартные ножки портов GPIO. См. также [3]. |
HASH |
Как использовать периферию HASH для вычисление хеша. |
I2C |
Как использовать библиотеку работу с аппаратурой I2C. Этот популярный интерфейс (иногда называется TWI, Two Wire Interface) используется для подключения стандартной клавиатуры PS/2, в качестве внутренней шины обмена данными в телевизорах и другой бытовой технике. |
I2S |
Демонстрация базового обмена аудиоданными в режиме полного дуплекса, с применением метода опроса (polling). |
IWDG |
Как обновлять период срабатывания независимого сторожевого таймера (Independent Watchdog, IWDG). |
Lib_DEBUG |
Как декларировать динамические указатели на периферию, используемые в режиме отладки. |
NVIC |
Использование контроллера вложенных векторных прерываний (Nested Vectored Interrupt Controller, NVIC). |
PWR |
Как конфигурировать системные режимы пониженного энергопотребления STM32F4xx (Low Power modes), использовать PVD и BOR, измерять текущее энергопотребление. |
RCC |
Как использовать в целях отладки функцию RCC_GetClocksFreq, чтобы получить текущее состояние и частоты чипа в разных режимах тактирования. |
RNG |
Короткий пример с описанием использования периферии генератора случайных чисел RNG для генерации случайных 32-битных чисел. |
RTC |
Краткое описание использования периферии счетчика реального времени RTC, а также периферии LSI и Backup Domain. |
STDIO |
Базовый пример использования библиотеки стандартного ввода/вывода. |
SPI |
Демонстрация обмена через SPI с чипом STM32. |
SysTick |
Как конфигурировать системный счетчик времени (System tick timer). |
TIM |
Работа с таймером. |
USART |
Примеры работы с последовательным интерфейсом. |
WWDG |
Как обновлять период срабатывания оконного сторожевого таймера (Windowed Watchdog, WWDG). |
Template |
Предварительно сконфигурированный файл проекта с предоставленной структурой библиотеки STM. |
[Ссылки]
1. 140808STM32F407.zip - документация по микроконтроллерам STM32F40x/41x, по плате Olimex STM32-P407, схема, примеры кода. 2. JLINK Emulator V8 site:ebay.com. 3. STM32F407: быстрый старт. |