Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 14 номера


3. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с картами памяти.
Рассмотрим работу с картами памяти. Карты могут работать по интерфейсам SPI® или SDIO.

4. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с картами памяти. Чтение данных из звукового файла «.wav».
Рассмотрим пример  программы, которая считывает данные с аудио файла для их последующей обработки. Аудиофайл состоит из заголовка и собственно  аудиоданных. Описание формата можно посмотреть, например, по ссылкам [11, 12].

5. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Воспроизведение звукового файла «.wav» с помощью ЦАП.
Макет устройства аналогичен используемому в прошлой статье. Таймер TIM4 запрограммирован так, чтобы обеспечить нужную частоту вывода данных на ЦАП в соответствии с заголовком аудио файла (используется параметр «sampleRate»).  Вывод данных происходит при каждом прерывании таймера (прерывания отключаются после полного вывода файла). Важно правильно преобразовать данные файла, которые могут быть 8 и 16 разрядными в данные для 12-ти разрядного ЦАП 
… 
Для прослушивания файла необходимо подключить выход ЦАП (PA4/DAC1_OUT) к УНЧ, либо в простейшем случае подключить миниатюрный наушник последовательно с резистором 1кОм (чтобы не перегружать выход ЦАП).
Пример дан для компилятора «MikroC PRO for ARM» [4].

6. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Вывод на ЦАП с помощью DMA.
Рассмотрим пример использования DAC совместно с DMA для генерации аналогового сигнала. Создадим в памяти массив для таблицы синусоидального сигнала и заполним его значениями с помощью функции sin(x). Будем с его помощью формировать аналоговый сигнал на выходе DAC1. 
При настройке периферийных устройств необходимо учесть следующие рекомендации, описанные в документации на микроконтроллер [1,2,9]:
- В микроконтроллере есть два DMA контроллера на 8 потоков каждый с возможностью подключения к каждому потоку  одного из 8 каналов. Каждое периферийное устройство может быть подключено к определенному каналу и потоку определенного контроллера DMA (см.  Табл. 35 и 36 в [2]). 
- DAC с DMA может запускаться только по внешнему триггеру.
Пример написан для компилятора «MikroC PRO for ARM» [4].

7. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Схема захвата таймера. Определение периода импульсов.
Схема захвата позволяет запомнить значение счетчика таймера в специальном регистре при поступлении импульса на вход схемы захвата. Если посчитать разницу между двумя такими значениями таймера, то получим период импульсов. Регистр хранения результата захвата один, поэтому его необходимо сохранить до прихода следующего импульса. Это удобно сделать через прерывание по событию захвата.
Настройка схемы захвата состоит из следующих действий:
Пример программы дан для IDE  «CooCox®»  [4].


8. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Схема захвата таймера. Определение длительности импульсов.
Программа по определению длительности аналогична определению периода. Просто после запоминания первого значения захвата необходимо изменить детектор фронта импульса на противоположный. После третьего шага  измерения снова вернуть детектор в исходное состояние. Т.е. переключать детектор по мере необходимости измерения того или иного фронта.
Пример программы дан для IDE  «CooCox®»  [4].


В избранное