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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> STM32 PWM, Когда можно выключить таймер?
pitt
сообщение Oct 18 2015, 16:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Имеется, например, F4 Discovery board. Берем, например, TIM13. Подцепляем пин и генерируем PWM. Все просто, понятно и без проблем. Теперь надо выдать постоянный 0 или 1.
- Вопрос с нулем: Записываем 0 в CCR1. Чтобы таймер понапрасну не крутился, хочу его выключить(CEN = 0 в CR1). Когда это можно сделать? Сразу не проходит. Можете убедиться сами.
- Вопрос с 1. Если не перепрограммировать пин на GPIO возможно ли такое вообще? Можно, конечно, как и с 0 ВОВРЕМЯ выключить таймер, ну и снова вопрос: когда будет вовремя?

Заранее спасибо.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 18 2015, 16:49
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(pitt @ Oct 18 2015, 19:38) *
- Вопрос с нулем: Записываем 0 в CCR1. Чтобы таймер понапрасну не крутился, хочу его выключить(CEN = 0 в CR1). Когда это можно сделать? Сразу не проходит. Можете убедиться сами.


Что значит "сразу"?? Мгновенный переход пина в 0 ?? Ясно дело не пойдет, счетчик должен обнулиться, сбросить пин и уже в 1 его никогда не поставит, равно, как и запись 0xffff мгновенно не переведет пин в 1.
Если нужно такое условие, то нужно переключить функцию пина, остановить таймер и обнулить регистр, чтоб потом он начал считать "правильно".
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 16:55
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(mantech @ Oct 18 2015, 12:49) *
Что значит "сразу"?? Мгновенный переход пина в 0 ?? Ясно дело не пойдет, счетчик должен обнулиться, сбросить пин и уже в 1 его никогда не поставит, равно, как и запись 0xffff мгновенно не переведет пин в 1.
Если нужно такое условие, то нужно переключить функцию пина, остановить таймер и обнулить регистр, чтоб потом он начал считать "правильно".

Переключать пин не хочу. Время переключения в 0/1 терпит. Прерывание тоже не хочу использовать. Хочу просто выключить таймер, когда его выход уже в нужном состоянии. Т.е. почистить SR и ждать event?


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 18 2015, 16:58
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(pitt @ Oct 18 2015, 19:55) *
Переключать пин не хочу. Время переключения в 0/1 терпит. Прерывание тоже не хочу использовать. Хочу просто выключить таймер, когда его выход уже в нужном состоянии. Т.е. почистить SR и ждать event?


Если при этом "выбег" регистра особого значения не имеет, то да. Только учтите, что нужно успеть обрабатывать евент как минимум 2 раза за период ШИМ.

Сообщение отредактировал mantech - Oct 18 2015, 17:01
Go to the top of the page
 
+Quote Post
adnega
сообщение Oct 18 2015, 17:12
Сообщение #5


Гуру
******

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



Цитата(pitt @ Oct 18 2015, 19:38) *
Чтобы таймер понапрасну не крутился, хочу его выключить

А в чем проблема? Пусть крутится.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 18 2015, 17:15
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Oct 18 2015, 20:12) *
А в чем проблема? Пусть крутится.


Предположу, что ТС хочет уменьшить энергопотребление.
Go to the top of the page
 
+Quote Post
adnega
сообщение Oct 18 2015, 17:24
Сообщение #7


Гуру
******

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



Цитата(mantech @ Oct 18 2015, 20:15) *
Предположу, что ТС хочет уменьшить энергопотребление.

F4 и энергопотребление? Выключенный таймер - капля в море.
Перепрограммировать функцию пина нельзя - тоже странное требование.
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 19:21
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Все надо делать чисто. Таймер не нужен- отключи.
Это не требование, а, считайте, каприз, лень, неохота...

Сообщение отредактировал pitt - Oct 18 2015, 19:23


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
adnega
сообщение Oct 18 2015, 19:47
Сообщение #9


Гуру
******

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



Цитата(pitt @ Oct 18 2015, 22:21) *
Все надо делать чисто. Таймер не нужен- отключи.

Связи нет, скорее наоборот. Чистейший вариант: это 0 или ARR+1 в CCR.
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 19:53
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(adnega @ Oct 18 2015, 15:47) *
Связи нет, скорее наоборот. Чистейший вариант: это 0 или ARR+1 в CCR.

Верно, Ваше предложение - это как раз и есть наоборот: пусть крутится вхолостую...


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
RadiatoR
сообщение Oct 19 2015, 05:59
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901



pitt, посмотрите в регистре CCMR1 есть биты OCxM, там есть выбор 100 и 101 - это то, что вы ищиете в правильном виде
Go to the top of the page
 
+Quote Post
adnega
сообщение Oct 19 2015, 07:20
Сообщение #12


Гуру
******

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



Цитата(pitt @ Oct 18 2015, 22:53) *
пусть крутится вхолостую...

Там нет механических изнашивающихся деталей, поэтому ничего страшного в работе таймера нет.
Кроме таймера в МК еще много чего "крутится". Тоже все будете отключать?
Не забываем, что на отключение тоже нужно потратить несколько инструкций, а это и расход памяти,
и расход тактов, и расход энергии, и усложнение алгоритма.

Цитата(ЯadiatoR @ Oct 19 2015, 08:59) *
pitt, посмотрите в регистре CCMR1 есть биты OCxM, там есть выбор 100 и 101 - это то, что вы ищиете в правильном виде

Да, это один из вариантов манипулирования настройками: чуть лучше, чем заменить функцию пина.
Но при этом прозрачность теряется, и код начинает зависеть от данных - можно и себя запутать, и тех, кто после вас будет работать с кодом.
Помимо этого, теряется синхронность PWM, и возможны ситуации выдачи импульсов неконтролируемой формы.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 19 2015, 07:32
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Oct 19 2015, 10:20) *
Там нет механических изнашивающихся деталей,


Это отжег, дак отжег biggrin.gif

Сам, честно говоря, никогда его не отключаю, управляю пином по содержанию регистра совпадения. Недостатков не замечал...



Сообщение отредактировал mantech - Oct 19 2015, 07:33
Go to the top of the page
 
+Quote Post
RadiatoR
сообщение Oct 19 2015, 08:22
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901



Цитата(adnega @ Oct 19 2015, 10:20) *
Да, это один из вариантов манипулирования настройками: чуть лучше, чем заменить функцию пина.
Но при этом прозрачность теряется, и код начинает зависеть от данных - можно и себя запутать, и тех, кто после вас будет работать с кодом.
Помимо этого, теряется синхронность PWM, и возможны ситуации выдачи импульсов неконтролируемой формы.


В принципе, учитывая, что это это обычный ШИМ, то неконтролируемая форма первого импульса не сделает ничего плохого
Go to the top of the page
 
+Quote Post
adnega
сообщение Oct 19 2015, 08:48
Сообщение #15


Гуру
******

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



Цитата(ЯadiatoR @ Oct 19 2015, 11:22) *
неконтролируемая форма первого импульса не сделает ничего плохого

ТС у нас перфекционист. Может, ему так не понравится...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:30
Рейтинг@Mail.ru


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