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

 
 
> MegaAVR, Timer
Duduka
сообщение Feb 28 2007, 11:49
Сообщение #1





Группа: Новичок
Сообщений: 12
Регистрация: 28-02-07
Пользователь №: 25 758



[font=Times New Roman][size=4]
Привет, всем посетителям форума!
Возникла проблема с мегой 128...Может кто-нибудь из специалистов обратит внимание и разъяснит неопытному пользователю в чем проблема?

А вопрос в следующем...пытаюсь измерить период с точностью до 0,1 мкс. Для этого задействована пара счетчиков (вариантов уже накопилось множество, поэтому прикладываю самый простой на, мой взгляд). Измеряемый диапазон частот 600 Гц-2,5 кГц

Используется два таймера:
-Т/С0-генерирует 102, 4 кГц, при каждом совпадении счетного регистра осуществляется инкремент регистров-результата;
-Т/С2-считает импульсы с датчика-для обеспечения заданной точности 100*Т .
Как только досчитали до 100 останавливаем , обнуляем таймеры и передаем по ком порту на комп.
Мегу тактирую 7,3728 МГц (реально 7,3724 МГц)

Проблема в том, что откудо-то берется погрешность: при такой конфигурации программы 0, 2 мкс на всех измеряемых частотах...Но если расширить возможности программы и передавать на комп после различных преобразований, то результирующее число заметно искажается причем чем меньше измеряемая частота, тем больше прогрешность. Т.е. фактически, если между остановкой и новым запуском счетчиков вставить цикл (инкремент регистров), то в зависимости от к-ва выполняемых операций, меняется результат в результирующих регистрах счетчиков. Не ясно почему?

Работаю с STK500/501, AVR Studio 4.12 и самодельным Jtag ICE.
В качестве сигнала с датчика использую кварц STK500.
Прикрепленные файлы
Прикрепленный файл  mega128.rar ( 1.74 килобайт ) Кол-во скачиваний: 100
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Mar 1 2007, 10:55
Сообщение #2


Шаман
******

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



Действительно, варианта с Input Capture было бы вполне достаточно.
При этом реакция на прерывание должна уложиться в 200 мкс, чего хватит с головой даже в случае применения вытесняющей RTOS в проекте.
Поскольку задача решается аппаратно, то от времени сидения программы в прерывании погрешность не зависит.
Ну и кварц, разумеется должен быть не менее 10 МГц (в идеальных условиях), а лучше 16 МГц.
Рассуждения здесь следующие. Поскольку средство Input Capture синхронизируется тактовой частотой МК, то погрешность отлавливания фронта (или спада) импульса может достигать 0,1 мкс (на 10 МГц). Для измерения периода таких событий нужно два. Поэтому в худшем случае будет 0,2 мкс при тех же 10 МГц.
Это так, навскидку, без применения сложных статистических методов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Duduka   MegaAVR   Feb 28 2007, 11:49
- - IgorKossak   Цитата(Duduka @ Feb 28 2007, 10:49) Испол...   Feb 28 2007, 11:55
|- - Duduka   [font=Times New Roman][size=4] А прикрепленный фа...   Feb 28 2007, 13:11
- - IgorKossak   1. Прерывание OC2addr_int: не содержит инструкции ...   Feb 28 2007, 13:42
|- - Duduka   Цитата(IgorKossak @ Feb 28 2007, 13:42) 1...   Feb 28 2007, 17:15
|- - IgorKossak   Цитата(Duduka @ Feb 28 2007, 16:15) По по...   Feb 28 2007, 18:17
|- - Duduka   Да, вы правы, ненчего лишний раз дергать вывод... ...   Feb 28 2007, 19:21
- - SasaVitebsk   Прерывания ни когда не дадут точный временной инте...   Feb 28 2007, 14:17
|- - Duduka   Цитата(SasaVitebsk @ Feb 28 2007, 14:17) ...   Feb 28 2007, 18:03
- - SasaVitebsk   Цитата(Duduka @ Feb 28 2007, 12:49) А воп...   Feb 28 2007, 23:48
|- - Duduka   Цитата(SasaVitebsk @ Feb 28 2007, 23:48) ...   Mar 2 2007, 16:46
- - bodja74   Саша ,у таймера есть прерывание по захвату,так что...   Mar 1 2007, 00:59
- - SasaVitebsk   Согласен с обоими. Конечно любой разработчик при з...   Mar 2 2007, 00:02
|- - =GM=   Поскольку входной сигнал асинхронен по отношению к...   Mar 2 2007, 02:30
|- - SasaVitebsk   Цитата(=GM= @ Mar 2 2007, 03:30) Поскольк...   Mar 2 2007, 03:32
|- - =GM=   Цитата(SasaVitebsk @ Mar 2 2007, 00:32) Ц...   Mar 2 2007, 16:44
|- - Duduka   [quote name='=GM=' date='Mar 2 2007, 1...   Mar 2 2007, 17:57
|- - =GM=   Цитата(Duduka @ Mar 2 2007, 14:57) Знаете...   Mar 2 2007, 18:48
- - SasaVitebsk   Да... Лоханулся... Измерять N-периодов мне почему-...   Mar 3 2007, 01:08


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:45
Рейтинг@Mail.ru


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