реклама на сайте
подробности

 
 
> Запуск АЦП преобразования по таймеру
Sprite
сообщение Mar 23 2011, 05:59
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Доброго всем времени суток!

Задача следующая: требуется запустить одно АЦП-преобразование по событию канала 4 таймера 4. Делаю все как указано в Reference Manual, но преобразование стартует при совпадении с TIM4_CCR4 и продолжает выполняться пока счетчик (TIM4_CNT) не достигнет вершины (TIM4_ARR), при этом содержимое регистра ADC1_DR постоянно обновляется. А мне нужно получить только одно значение в момент совпадения счетчика с TIM4_CCR4.

В Reference Manual написано:

11.3.4 Single conversion mode

In Single conversion mode the ADC does one conversion. This mode is started either by
setting the ADON bit in the ADC_CR2 register (for a regular channel only) or by external
trigger (for a regular or injected channel), while the CONT bit is 0.
Once the conversion of the selected channel is complete:
● If a regular channel was converted:
–The converted data is stored in the 16-bit ADC_DR register
–The EOC (End Of Conversion) flag is set
–and an interrupt is generated if the EOCIE is set.
● If an injected channel was converted:
–The converted data is stored in the 16-bit ADC_DRJ1 register
–The JEOC (End Of Conversion Injected) flag is set
–and an interrupt is generated if the JEOCIE bit is set.
The ADC is then stopped.

Т.е. если я правильно понимаю - после преобразования АЦП должен остановиться - но он не останавливается, а продолжает работать.

Может быть я задаю не Single Mode?
Контроллер stm32f103.

Прикладываю скрины настроек АЦП и таймера.
Прикрепленное изображение
Прикрепленное изображение

Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Mar 24 2011, 09:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Из документации:
"The ADC input clock is generated from the PCLK2 clock divided by a prescaler and it must
not exceed 14 MHz, refer to Figure 8: Clock tree for low-, medium-, high- and XL-density
devices, and to Figure 11: Clock tree for connectivity line devices."
- т.е. не более 14МГц.

Необходимо помнить, что преобразование занимает 12,5 тактов + настройки SMPn (в Вашем случае 1,5 такта).
Т.е. на одно преобразование тратится минимум 14 тактов частоты АЦП, которая не может быть больше 14МГц.
Если таймер пытается АЦеПировать с частотой большей 1МГц, то затея не работоспособная.

С какой частотой Вы хотите получать выборки АЦП?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 18:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01267 секунд с 7
ELECTRONIX ©2004-2016