Знакомство с STM32(Cortex-M3)

Микроконтроллеры фирмы STMicroelectronics по праву занимают свою нишу на рынке.
Высокий уровень быстродействия(1.25 DMIPS/MHz), богатая периферия(АЦП, ЦАП, таймеры, всевозможные интерфейсы) и оптимальная стоимость.
Это как раз те качества, которые каждый электронщик ищет в подобных устройствах.
Кроме того есть возможность заливки прошивки через UART или USB, программатор больше не нужен!
Подробно о прошивке через UART читайте здесь: http://chipspace.ru/stm32-bootloader-flash-loader-demonstrator/
Особенно хороши в этом смысле STM32.

Семейство STM32 состоит из 7-ми серий микроконтроллеров: F0, F1, F2, F3, F4, L1, W.
Подробно о каждом семействе можно почитать здесь: http://www.compeljournal.ru/enews/2011/2/3
или на сайте производителя: http://www.st.com/web/en/catalog/mmc/FM141/SC1169

Для успешного освоения нужен первый толчок, в виде отладочной платы.


Основные особенности платы:

CPU: STM32F103RBT6, ARM Cortex-M3,maximum operating clock is 72MHz;

FLASH: 128K BYTES

RAM: 20K BYTES

1 X JTAG debug interface(the standard ARM JTAG 20)

4 X LED (one Power LED) 

1 X USB to RS232 (PL2303 Based, you can download via USB line!!)

1 X USB2.0 Device mode interface.

1 X ADC input voltage adjustment potentiometer

1 X SD card socket(on the TFT module)

1 X 2.8 inch TFT (with touch screen) interface, can be controlled via MCU, FSMC 16-bit interface mode or 8-bit interface mode

4 X functional keys

1 X RTC with battery back-up battery holder (Battery is not included).

8 MHz crystal, 32.768kHz crystal

onboard 5V, 3.3V LDO 1117, the largest provider of 800mA current.

All GPIO port Lead out, easy for your ne system Application!


Кроме собственно платы контроллера, в комплекте есть плата TFT LCD модуля:

2.8" TFTLCD Module (ILI9325, 260K 240*320 Color) with Touch Panel V2.0

1. Support SD Card;

2. Support DATAFLASH

3. Support 16/8 Bit Mode

4. With Touch Panel & Controller

5. Module can use 180 degree rotation

Кроме того в комплекте идет диск с простейшими проектами для отладочной платы(Keil uVision), схемами плат.

 

В качестве первичного ознакомления, была написана программа для этой отладочной системы, дабы углубить понимание возможностей и особенностей STM32F103.
Для этого использовалась интегрированная среда разработки под названием MikroC PRO for ARM(от сербской компании Mikoelektronika).
Почему именно это среда?
Ну, она проста в освоении, богата встроенными библиотеками для работы с периферией,
кроме того подобный продукт(MikroC PRO for PIC32) уже был мной успешно использован для создания достаточно сложного устройства, 
таким образом есть возможность беспрепятственного портирования уже написанных программных решений на архитектуру ARM.
Подробнее об этой замечательной среде разработки можно почитать на сайте разработчиков: http://www.mikroe.com/mikroc/arm/
...чуть не забыл...Mikoelektronika поддерживает проект LibStock: http://www.libstock.com/ 
куда сообщество пользователей, да и сами разработчики добавляют свои варианты библиотек для изделий от Mikoelektronika.

В процессе написания программы, некоторые ее элементы были портированы из предыдущих проектов или примеров от создателей плат.
Другие были написаны, так сказать, "с нуля".

В итоге, мы имеем комплекс для сбора, обработки и индикации данных с датчиков(или чего то еще, генерирующего эл. сигнал, цифровой или аналоговый).
В данном конкретном случае мы считываем данные цифрового датчика температуры(ds18b20 на PA8,см. схему) и аналогового датчика влажности(hmz-333a на PB1,см. схему).
Причем наш комплекс легко перестаивается под любой другой тип датчика(и их количество), т.е. он универсален.

Особенности и возможности комплекса:
Считывание, обработка и запоминание данных с цифровых и аналоговых датчиков.
Данные с датчиков отображаются на экране в виде графиков с подписями и цифровых величин.
Цифрами указываются мин., макс., среднее, а также мгновенное значения.
Управляемый графический маркер, устанавливая который, можно узнать данные в конкретной точке.
Управление приложением происходит посредством сенсорного экрана(тачскрина).
Два режима масштабирования графиков: фиксированный(предустановлен макс. и мин., хорошо видно абсолютное изменение графиков) и 
автоматический(макс. и мин. плавающие, хорошо видно относительное изменение графиков)
Активная пауза, в любой момент можно приостановить измерения и детально изучить данные, при этом маркеры активны.
Регулируемая частота измерений(1,5,10 сек.)
Запись измерений на SD карточку в формате файла .xls, т.е. возможна их последующая обработка в табличных процессорах(наподобие Excel). 
Помимо собственно данных, на карточку записывается длительность записи(также она отображается на экране).
Возможность отключения подсветки экрана.




Запись данных на карточку велась 20сек(2 цикла записи по 9 точек, т.е. всего 18, в момент записи светится белый светодиод).
Содержание файла "table1.xls":


Там же можно нарисовать график:


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