ChipSpace

Окт 062012
 

Вдогонку к статье о модуле  SPI STM32, где рассмотрен порядок работы с ним через регистры, дополняю тему информацией. Здесь будут описаны функции файла spi.c из пакета стандартных библиотек StdPeriph_Lib.

Continue reading »

Окт 032012
 

SPI (Serial Pheripheral Interface) – последовательный синхронный интерфейс для обмена данными между микросхемами. Этот интерфейс подразумевает четкую иерархию – всегда есть ведущее устройство “Master” и подчиненное устройство “Slave” (или несколько устройств на одной шине). Master выбирает подчиненное устройство, с которым будет производить обмен данными в текущий момент. Подчиненные устройства Slave ожидают команды от Master для начала обмена данными. Сигнал синхронизации генерирует Master и, далее, ведущее и подчиненное устройства начинают обмен данными. Ведущим устройством очень часто является микроконтроллер, а подчиненными устройствами могут быть различные микросхемы: память, АЦП и ЦАП, микроконтроллеры, и другие.

Continue reading »

Сен 122012
 

При создании нового проекта к нему подключается файл system_stm32l1xx.c, функции которого выполняют начальную инициализацию системы тактирования микроконтроллера STM32. Системная тактовая частота SYSCLK и тактовые частоты периферии (AHB, APB1, APB2, таймеров…) после выполнения начальной инициализации будут иметь строго определенные значения, и разработчику для изменения тактовых частот и их источников потребуется делать это в коде своего приложения, либо файл system_stm32l1xx.c заранее корректировать. С сайта ST Microelectronics можно загрузить небольшую утилиту, позволяющую в визуальном режиме выполнить настройки системы тактирования. Все это выполнено в формате Excel, а на выходе генерируется готовый файл system_stm32l1xx.c, но уже с теми значениями тактовых частот и выбором источников тактирования, которые необходимы в проекте. Остается подключить этот файл к проекту при его создании, тогда нужные настройки будут произведены на этапе начальной инициализации, освобождая разработчика от необходимости делать это в дальнейшем.

Continue reading »

Авг 302012
 

Этот таймер не описан подробно в документации на конкретное семейство микроконтроллеров, например в том же Reference manual про него присутствует всего лишь несколько строк. Дело в том, что эти документы в основном объясняют порядок работы с периферией. А таймер SysTick расположен в ядре микроконтроллера и для всех устройств на базе ядра Cortex является стандартным.  Этот таймер предназначен для формирования временных интервалов операционной системы реального времени – RTOS. Но и для других целей можно использовать периодические прерывания, формируемые этим таймером. В микроконтроллерах на ядре Cortex время перехода к обработчику прерывания строго детерминировано, что является огромным плюсом этого ядра. В этой статье будет вкратце описан системный таймер SysTick (вкратце ввиду его простоты) и приведены практические примеры работы с ним.

Continue reading »

Авг 192012
 

В завершающей части рассмотрены примеры работы с модулем USART микроконтроллеров серий STM32F и STM32L, и, в данном случае уже осуществляется двунаправленный обмен данными между компьютером и микроконтроллером. Изменения в настройках будут небольшие – всего лишь разрешим работу приемника USART и сконфигурируем под него нужный вывод GPIO. Ниже будут приведены примеры программ, проверенные на двух отладочных платах:

  • STM32L-DISCOVERY (серия STM32L) и
  • STM32VL-DISCOVERY (серия STM32F),

а также в конце статьи можно загрузить готовые проекты в IAR.

Continue reading »

Авг 172012
 

Данная статья – лишь небольшое дополнение к предыдущей части. Здесь рассмотрим настройки USART STM32 с использованием стандартных библиотек. Полный контроль над кодом программы и содержимым регистров на каждом шаге – это замечательно, но в данном случае использование библиотек тоже имеет положительные стороны.

Continue reading »

Авг 112012
 

Данная статья – продолжение предыдущей, здесь будет приведен код программы для соединения отладочной платы STM32L-DISCOVERY с компьютером через встроенный модуль USART1. В части настроек модуля USART код для STM32L абсолютно идентичен коду для STM32F, приведенному в предыдущей статье. За исключением настроек делителя системной частоты (регистр USART_BRR) для получения требуемой скорости обмена. Также имеются отличия в настройках выводов портов для этих серий микроконтроллеров.

Continue reading »

Авг 112012
 

Универсальный синхронно-асинхронный приемопередатчик  (USART) – один из “долгожителей” цифровой техники. В большинстве современных микроконтроллеров он является стандартным модулем и, наверное, еще долго будет применяться из-за своей простоты и надежности. В STM32 может быть несколько таких приемопередатчиков, все они имеют стандартный и легко настраиваемый интерфейс обмена. Ниже будет рассмотрена классическая задача – передача данных из микроконтроллера в компьютер через виртуальный COM-порт.

Continue reading »

Июн 152012
 

В микроконтроллерах STM32 имеется возможность программирования флэш-памяти с использованием последовательного интерфейса. Это реализуется с помощью одного или нескольких встроенных USART, CAN или USB в зависимости от типа микроконтроллера. STM32 имеют в пространстве памяти специальную область – системную память (system memory), в которой и хранится код встроенного загрузчика. Bootloader записывается в системную память еще на производстве и любой “чистый” микроконтроллер можно запрограммировать с помощью простейшего и дешевого программатора, либо обновить ПО в готовом изделии.

Continue reading »

Июн 032012
 

Мониторинг посещаемости сайта выявил – подавляющее большинство просмотров приходится на самые первые 2 статьи, в которых описан процесс создания и настройки проекта в среде IAR EWARM, и процедура настройки портов ввода-вывода данных. Во всех проектах, где не используются библиотечные функции, а инициализация периферии и рабочий код программы построены на работе напрямую с регистрами периферийных модулей, всегда в этих случаях подключается внешний файл с описанием периферии. Для серии STM32L это файл stm32l1xx.h, для микроконтроллеров STM32F10x это будет файл stm32f10x.h. Чтобы было понятно в дальнейшем, по какому принципу в тексте программы строятся команды, управляющие значениями регистров, и что это за непонятные наборы букв в них содержатся, пора бы познакомиться с этими файлами, подключаемыми к проекту. Что они содержат, и для чего служат – читайте ниже.

Continue reading »