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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Измерение периода AVR микронтроллером
lex_84
сообщение May 24 2008, 15:09
Сообщение #1


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

Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575



help.gif
Вопрос заключается в следующем. Необходимо измерить малый период с достаточно высокой точностью, используя микроконтроллер.
Просмотрев литературу на эту тему пришел к выводу, что лучше всего это было бы реализовать с помощью усреднения на некотором интервале времени.
Но к сожалению не нашел алгоритмов расчета среднего значения для микроконтроллеров. Все что удалось мне найти - это алгоритмы для микропроцессоров с ПЗ и ФЗ.
Кто-нибудь мог бы мне посоветовать какие-нибудь интернет-ссылки или литературу на эту тему???
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 24 2008, 15:38
Сообщение #2


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(lex_84 @ May 24 2008, 22:09) *
help.gif
Вопрос заключается в следующем. Необходимо измерить малый период с достаточно высокой точностью, используя микроконтроллер.

Малый период???
с достаточно высокой точностью???


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
Alhen
сообщение May 24 2008, 15:49
Сообщение #3


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

Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516



что такое ПЗ и ФЗ?
Go to the top of the page
 
+Quote Post
lex_84
сообщение May 24 2008, 15:55
Сообщение #4


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

Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575



Цитата(domowoj @ May 24 2008, 19:38) *
Малый период???
с достаточно высокой точностью???

Измеряемый период примерно составляет 400 нс и его желательно оцифровать 16 разрядным кодом. Время измерения должно составлять где-то 1-1.5 минуты 05.gif

ПЗ и ФЗ - вычисления с плавающей запятой и с фиксированной smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 24 2008, 16:07
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(lex_84 @ May 24 2008, 17:55) *
Измеряемый период примерно составляет 400 нс и его желательно оцифровать 16 разрядным кодом.

О это волшебное заклинание "AVR!!!!". Не поможет - ну не действует оно всегда и везде. Не действует.
Moderator:
Тему перенес.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 24 2008, 16:57
Сообщение #6


;
******

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



ПАДАЖДЫТЭ!
167 ГГц тактовой - это есть до фига.
И почему не частоту?
У Вас что, непериодический процесс?
Go to the top of the page
 
+Quote Post
Amper25
сообщение May 24 2008, 17:06
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



Вообще то поможет, только криво.

Можно померять интервал времени для 0x2000 измеряемых импульсов. 400нс - это всего лишь 2,5MHz.
Вообщем надо один из 16-битных счетчиков тактировать от внешнего измеряемого сигнала, а саму AVR запустить от 16MHz кварца.
Второй 16-бит таймер тактируем от 16MHz.

Теперь на счетчик 2,5MHz ставим прерывание по переполнению, и записываем в него (0xFFFF - 0x2000). сразу же обнуляем второй таймер.

В момент возникновения прерывания, значение в TIMER2 будет соответствовать количеству периодов 16MHZ, уместившихся в 0x2000 периодов 2,5MHZ измеряемого сигнала.


Только результат может быть неправидльным, тоестьокругленным, если 2,5MHz сигнал имеет джиттер.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 24 2008, 17:36
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Amper25 @ May 24 2008, 19:06) *
400нс - это всего лишь 2,5MHz.

А с 16бит разрешением это "всего лишь" в шестьдесят пять тысяч пятьсот трицать пять раз больше...
Сколько это будет в Гигагерцах?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
lex_84
сообщение May 24 2008, 18:08
Сообщение #9


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

Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575



Цитата(zltigo @ May 24 2008, 21:36) *
А с 16бит разрешением это "всего лишь" в шестьдесят пять тысяч пятьсот трицать пять раз больше...
Сколько это будет в Гигагерцах?

Если я не ошибся в расчетах - 40

Цитата(zltigo @ May 24 2008, 20:07) *
О это волшебное заклинание "AVR!!!!". Не поможет - ну не действует оно всегда и везде. Не действует.
Moderator:
Тему перенес.

Я на форуме не давно. Но правила читал smile.gif Поэтому тему разместил в этом разделе, т.к. реализацию этого устройства желательно провести на AVR. У которых фиксированная архитектура и команды.

Цитата(Amper25 @ May 24 2008, 21:06) *
Вообще то поможет, только криво.

Можно померять интервал времени для 0x2000 измеряемых импульсов. 400нс - это всего лишь 2,5MHz.
Вообщем надо один из 16-битных счетчиков тактировать от внешнего измеряемого сигнала, а саму AVR запустить от 16MHz кварца.
Второй 16-бит таймер тактируем от 16MHz.

Теперь на счетчик 2,5MHz ставим прерывание по переполнению, и записываем в него (0xFFFF - 0x2000). сразу же обнуляем второй таймер.

В момент возникновения прерывания, значение в TIMER2 будет соответствовать количеству периодов 16MHZ, уместившихся в 0x2000 периодов 2,5MHZ измеряемого сигнала.
Только результат может быть неправидльным, тоестьокругленным, если 2,5MHz сигнал имеет джиттер.


Спасибо! Идея мне понравилась. Но это было бы слишком просто.
Просто я не правильно сформулировал задачу. Длительность импульса 400 нс, но частота следования 1 Гц. Вот в чем проблема.
Поэтому и нужно осреднение и статистическая обработка.

Цитата(zltigo @ May 24 2008, 20:07) *
О это волшебное заклинание "AVR!!!!". Не поможет - ну не действует оно всегда и везде. Не действует.
Moderator:
Тему перенес.

Хотя чувствую как бы не пришлось бы применять Пентиум-шментиум или 486 для измерения... 07.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение May 24 2008, 18:09
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(lex_84 @ May 24 2008, 21:03) *
Если я не ошибся в расчетах - 40
Ошиблись - 2.5mHz * 65535 = 163.8 ГГц нереальная частота.

Цитата
Просто я не правильно сформулировал задачу. Длительность импульса 400 нс, но частота следования 1 Гц. Вот в чем проблема.
Поэтому и нужно осреднение и статистическая обработка.
А можно поинтересоваться зачем измерять его длительность если Вы и так знаете что длительность == 400нс?

Цитата
Хотя чувствую как бы не пришлось бы применять Пентиум-шментиум или 486 для измерения...
не поможет.
вот простенькая, но резвая CPLD, была бы кстати.
Go to the top of the page
 
+Quote Post
svs39
сообщение May 24 2008, 18:16
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 8-03-08
Пользователь №: 35 744



Цитата(lex_84 @ May 24 2008, 21:08) *
Если я не ошибся в расчетах - 40
Я на форуме не давно. Но правила читал smile.gif Поэтому тему разместил в этом разделе, т.к. реализацию этого устройства желательно провести на AVR. У которых фиксированная архитектура и команды.
Спасибо! Идея мне понравилась. Но это было бы слишком просто.
Просто я не правильно сформулировал задачу. Длительность импульса 400 нс, но частота следования 1 Гц. Вот в чем проблема.
Поэтому и нужно осреднение и статистическая обработка.
Хотя чувствую как бы не пришлось бы применять Пентиум-шментиум или 486 для измерения... 07.gif


но в начале ж написано "малый период"!!! Представляю что написали бы в "телесистемах!
Go to the top of the page
 
+Quote Post
lex_84
сообщение May 24 2008, 18:18
Сообщение #12


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

Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575



Цитата(defunct @ May 24 2008, 22:09) *
Ошиблись - 2.5mHz * 65535 = 163.8 ГГц нереальная частота.
А можно поинтересоваться зачем измеряться его длительность если Вы и так знаете что длительность == 400нс?

не поможет.
вот простенькая, но резвая CPLD, была бы кстати.


Я не то число написал - это для 14 разрядов smile.gif

"оцифровать период"- я под этим подразумевал, что период сигнала меняется от 0 до 400 нс.

Насчет CPLD - хороший вариант, но я не знаю таких CPLD которые бы бегали под 163 ГГц smile.gif

Повторюсь, я ознакомился с теорией этой проблемы и мне представляется, что нужно либо реализовать на CPLD такое извращение, как нониусный метод, либо использовать стат. обработку.
Но примеров практической реализации подобных устройств я не нашел... 05.gif
И я думаю что стат обработку на МК реализовать проще, чем нониусный метод на ПЛИС.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 24 2008, 18:27
Сообщение #13


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



использовать прерывания по фронту и спаду сигнала - нада форму импульса... и счетчик тама....


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 24 2008, 18:35
Сообщение #14


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ May 24 2008, 20:07) *
О это волшебное заклинание "AVR!!!!". Не поможет - ну не действует оно всегда и везде. Не действует.
Автору нужно было указать не AVR а ARM в качестве базовой платформы,
причем желательно LPC(NXP), тогда бы и отношение было более серьезным biggrin.gif biggrin.gif biggrin.gif

Ну а если по серьезному, ну вполне такая задачка, только 16бит для 1-1.5 минуты
выглядит не реалистично,
Цитата
Я не то число написал - это для 14 разрядов
но и после этой корекции все равно не реалистично
а вот это:
Цитата
Просто я не правильно сформулировал задачу. Длительность импульса 400 нс, но частота следования 1 Гц. Вот в чем проблема.

убивает всякие идеи на корню, за 1.5 минуты при частоте 1Гц будет всего 90 измерений,
получить из них 14бит не представляется возможным...
Go to the top of the page
 
+Quote Post
lex_84
сообщение May 24 2008, 18:37
Сообщение #15


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

Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575



Цитата(_Ivan_33 @ May 24 2008, 22:27) *
использовать прерывания по фронту и спаду сигнала - нада форму импульса... и счетчик тама....

А какая частота тактирования для микроконтроллера при этом будет не подскажете??? 07.gif

Вах! Для ПК найти алгоритм численных методов не составляет ни какого труда. Тот же самый Рунге Кут. А для микроконтроллеров полный завал sad.gif
Нашел книжку "Прикладные задачи микропроцессорных систем" Байкова, так она расчитана на МП и арифметику с ПЗ и ФЗ.
Go to the top of the page
 
+Quote Post

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

 


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


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