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

 
 
> Таймер в режиме СТС
EugeNNe
сообщение Apr 15 2008, 08:29
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Посредством Меги640 требуется сгенерить сигнал вполовину тактовой этой меги (Fclk = 14,7456 МГц). Для этого возможно использовать один из таймеров в режиме СТС. Имеется формула для расчёта частоты сигнала в данном режиме Fctc = Ftmr / (2*N*(1+OCR)). Что бы получить частоту в 2-а раза ниже тактовой, значение записанное в регистр OCR должно быть равно "0". Попробовал - работает, частота ровно 14,7456 МГц/ 2. Вопрос только насколько корректно так делать?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
IgorKossak
сообщение Apr 15 2008, 08:51
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Если на значения, записываемые в регистры, существуют ограничения, то производитель об этом явно пишет (обычно).
Если в документации ничего об этом не сказано, у Вас получилось и Вас это устраивает, то пользуйтесь.
Другое дело, что применение подобных граничных значений может не быть гарантировано при переходе на другой МК этого же семейства (не факт, но возможно и в истории развития AVR такое уже было) и поэтому смахивает на трюкачество.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Apr 15 2008, 08:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(BigBolt @ Apr 15 2008, 12:29) *
Вопрос только насколько корректно так делать?

Корректно.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 15 2008, 08:59
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Я тоже думаю что вроде ничего не написано про какие то ограничения. Буду пользовать. Не хочется делители ещё городить, когда таймера свободные в МК есть.
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Apr 15 2008, 09:23
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(BigBolt @ Apr 15 2008, 12:59) *
Я тоже думаю что вроде ничего не написано про какие то ограничения. Буду пользовать. Не хочется делители ещё городить, когда таймера свободные в МК есть.


Вполне корректно, только ИМХО контроллер полностью загружен только одной указанной задачей.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 15 2008, 09:31
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(VladimirYU @ Apr 15 2008, 13:23) *
Вполне корректно, только ИМХО контроллер полностью загружен только одной указанной задачей.


Это почему? Как раз МК выполняет кучу задач: общается с компом, управляет железом, обслуживает датчики. А таймер запустили один раз в требуемом режиме, и пусть себе молотит, в СТС режиме не требуется никаких программных заморочек для генерации сигнала требуемой частоты. Так что Мега как раз избавляет от лишнего железа.
Go to the top of the page
 
+Quote Post
add
сообщение Apr 15 2008, 11:18
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата(BigBolt @ Apr 15 2008, 12:29) *
Посредством Меги640 требуется сгенерить сигнал вполовину тактовой этой меги (Fclk = 14,7456 МГц).

Если это не курсовик, а реальная задача.. то советую решить проблему установкой обычного делителя(который еще будет выполнять роль буфера) и частоту брать с кварца (с вывода XTAL2) .


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 15 2008, 12:09
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(add @ Apr 15 2008, 15:18) *
Если это не курсовик, а реальная задача.. то советую решить проблему установкой обычного делителя(который еще будет выполнять роль буфера) и частоту брать с кварца (с вывода XTAL2) .


Не курсовик...А чем плох непосредственно сигнал с МК? Нагрузочной способности порта МК для данного применения вполне хватит. Собственно Таймер МК и выступает в качестве делителя. К чему ещё корпуса в изделие закладывать, оно и так недешёвое получилось...
Go to the top of the page
 
+Quote Post
GDI
сообщение Apr 15 2008, 12:11
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Вот как раз брать с кварца и не нужно - он на это не рассчитан - таймер самое правильное и корректное решение, а если уж надо буферизовать этот сигнал, тогда можно и буфер внешний поставить.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
add
сообщение Apr 15 2008, 12:43
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата(GDI @ Apr 15 2008, 16:11) *
Вот как раз брать с кварца и не нужно - он на это не рассчитан - таймер самое правильное и корректное решение, а если уж надо буферизовать этот сигнал, тогда можно и буфер внешний поставить.

что значит не рассчитан? очень даже рассчитан... biggrin.gif


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Apr 15 2008, 16:26
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(add @ Apr 15 2008, 16:43) *
что значит не рассчитан? очень даже рассчитан... biggrin.gif

При определенных условиях и не для всех кристаллов. Например, то, что можно было делать с at90s2313, при переходе на tiny2313 уже нельзя (размах сигнала на выходе генератора стал меньше, а фьюза CKOPT нет). С RC-генератором такое тоже не пройдет. Так что без крайней необходимости пользоваться выходом тактового генератора не стоит, а если аппаратный таймер позволяет сгенерировать нужный сигнал - этим и надо пользоваться.
Go to the top of the page
 
+Quote Post
smk
сообщение Apr 15 2008, 20:15
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Если это не курсовик, а реальная задача.. то советую решить проблему установкой обычного делителя(который еще будет выполнять роль буфера) и частоту брать с кварца (с вывода XTAL2) .

Присоединяюсь. А удорожание не будет значимым. D-триггер стоит копейки. Зато решение надежное и красивое.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Apr 15 2008, 20:28
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(smk @ Apr 16 2008, 00:15) *
Присоединяюсь. А удорожание не будет значимым. D-триггер стоит копейки. Зато решение надежное и красивое.

А чем хуже решение, предусмотренное описанием на микросхему? Чем оно хуже решения притянутого за уши? Контроллер не принимает участия в процессе, там внутри (для особо продвинутых и одарённых) установлен аппаратный делитель с переменным, программно задаваемым коэффициентом деления. Который, при этом, включен корректно! То есть тоже аппаратное решение, предусмотренное производителем! Так что тут тень на плетень наводить? Если уж ставить внешний делитель, то для этого также существует аппаратное решение. Необходимо вывести CLK наружу, как это предусмотрено согласно даташиту, и поделить эту частоту. Подключение к кварцу возможно, но снижает помехозащищённость и требует грамотной разводки.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Apr 15 2008, 22:26
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(SasaVitebsk @ Apr 16 2008, 00:28) *
Если уж ставить внешний делитель, то для этого также существует аппаратное решение. Необходимо вывести CLK наружу, как это предусмотрено согласно даташиту, и поделить эту частоту. Подключение к кварцу возможно, но снижает помехозащищённость и требует грамотной разводки.

Вообще-то "вывод CLK наружу" применительно к AVR и означает подключение к кварцу (выход осциллятора), с включением соответствующей опции (CKOPT, там, где он есть). Так что если нужен внешний делитель - или так, или отдельный осциллятор и тактировать микроконтроллер им же (если нужна синхронность). В данном случае - смысла нет. Все сделано в согласии с даташитом. А вот была бы бага типа как в 90s2313 (в таймере) - не получилось бы...
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 16 2008, 04:17
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(smk @ Apr 16 2008, 00:15) *
Присоединяюсь. А удорожание не будет значимым. D-триггер стоит копейки. Зато решение надежное и красивое.


Не вижу никакой красивости в приделыванию в XTAL какихто дополнительных цепей. По ЭМС наша девайсина при воздействии помех степени жёсткости 3 должна функционировать по классу А. Кучу времи на ЭМС потратили и введение каких то дополнительных цепей в узле тактирования МК может привести к тому, что заново придётся много чего делать (плату разводить заново и т.д. и т.п.). И ещё...мне надо управлять генерируемым сигналом F/2 - включать отключать когда надо. Если вешать дополнительные делители, то придётся вводить сигналы управляемые им. А таймер можно программно включать-отключать без проблем...
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 June 2025 - 15:05
Рейтинг@Mail.ru


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