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

 
 
> Программно определить частоту работы, Возможно ли?
athlon64
сообщение Jul 14 2011, 05:36
Сообщение #1


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

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Существует некоторое устройство на Atmega328, работающее от кварца 8МГц, возникла необходимость увеличить частоту до 12 МГц. Поменяли кварц и коэффициенты таймеров, I2C, SPI. Под другой кварц приходится делать отдельную версию прошивки, а этого очень бы не хотелось.

Наверное многие сталкивались, возможно ли на атмеге при инициализации программно определить частоту, на которой она запустилась и соответствующим образом изменить коэффициенты


--------------------
Руслан
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
777777
сообщение Jul 14 2011, 06:06
Сообщение #2


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(athlon64 @ Jul 14 2011, 09:36) *
Наверное многие сталкивались, возможно ли на атмеге при инициализации программно определить частоту, на которой она запустилась и соответствующим образом изменить коэффициенты

Только если у него есть доступ к некой эталонной частоте. Иначе никак.
Go to the top of the page
 
+Quote Post
swisst
сообщение Jul 14 2011, 06:08
Сообщение #3


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

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



добавить перемычку на плату и паять ее в случае с 12 МГц кварцем - процессором проверять состояние:
- замкнута - 12 МГц
- разомкнута - 8 МГц
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 14 2011, 09:36
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (athlon64 @ Jul 14 2011, 14:36) *
Наверное многие сталкивались, возможно ли на атмеге при инициализации программно определить частоту, на которой она запустилась и соответствующим образом изменить коэффициенты

Честно говоря, не сталкивался) Точные интервалы формировал таймерами. Их настраивал для конкретной аппаратной платформы...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Sergey_Aleksandr...
сообщение Jul 14 2011, 09:59
Сообщение #5


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

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



Эталонная частота есть, это WatchDog с собственным генератором.
1. При старте запускаете например ТС1.
2. Сразу же пускаете WatchDog. У него свой осциллятор. WatchDog настроить не на Reset, а на прерывание.
3. В прерывании по срабатыванию WatchDog прочитать счётный регистр TC1 и произвести вычисление.
4. Complete
Главное чтобы TC1 не успел переполнится за период срабатывания WatchDog.
Go to the top of the page
 
+Quote Post
athlon64
сообщение Jul 14 2011, 12:14
Сообщение #6


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

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Цитата(Sergey_Aleksandrovi4 @ Jul 14 2011, 15:59) *
Эталонная частота есть, это WatchDog с собственным генератором.
1. При старте запускаете например ТС1.
2. Сразу же пускаете WatchDog. У него свой осциллятор. WatchDog настроить не на Reset, а на прерывание.
3. В прерывании по срабатыванию WatchDog прочитать счётный регистр TC1 и произвести вычисление.
4. Complete
Главное чтобы TC1 не успел переполнится за период срабатывания WatchDog.

Вот спасибо!
Попробовали, работает автоопределение


--------------------
Руслан
Go to the top of the page
 
+Quote Post

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

 


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


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