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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> И снова частотомер на Atmega8., нужен алгоритм
zltigo
сообщение Jul 11 2008, 15:51
Сообщение #16


Гуру
******

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



Цитата(Peeoner @ Jul 11 2008, 17:45) *
Народ почемуто тут везде исходники сует на форуме,во все окно,буду иметь ввиду.

1. Не такого объема.
2. По крайней мере они форматированные и в 'codebox'
3. Там, где замечаю - не сует smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 11 2008, 16:15
Сообщение #17


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Peeoner @ Jul 11 2008, 14:09) *
А на диспелй выводить цифры, никакой песни нету, все достаточно легко, как по мне проще чем число преобразовать)))

Ну-у-у, я имел в виде верные значащие цифры, а не просто цифры.

Цитата(Peeoner @ Jul 11 2008, 14:09) *
Я прекрасно понимаю что частотомер точный прибор, но мне не нужно сверхточности. Вот скажем на частоте в 3 000 МГw, поделеную на 1280 какую вы точность получите???? Используя обычный китайский КВАРЦ на 8мгц...

На ATtiny24 (20 МГц клок) я бы сказал, что можно получить порядка +-2 Гц, с обработкой можно получить точными все 10 цифр частоты. Например, Fx=2 999 999 998 Гц точно, не слабо, э? Причём, достичь такого на копеечном приборе. Интересно, за сколько такой прибор можно купить? Конечно, кое-над-чем придётся потрудиться, но это не смертельно. Да, и делил бы на 300, а не на 1280, и точнее, и всяко дешевле.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Peeoner
сообщение Jul 11 2008, 16:22
Сообщение #18





Группа: Новичок
Сообщений: 10
Регистрация: 2-07-08
Пользователь №: 38 711



Цитата(=GM= @ Jul 11 2008, 19:15) *
Ну-у-у, я имел в виде верные значащие цифры, а не просто цифры.
На ATtiny24 (20 МГц клок) я бы сказал, что можно получить порядка +-2 Гц, с обработкой можно получить точными все 10 цифр частоты. Например, Fx=2 999 999 998 Гц точно, не слабо, э? Причём, достичь такого на копеечном приборе. Интересно, за сколько такой прибор можно купить? Конечно, кое-над-чем придётся потрудиться, но это не смертельно. Да, и делил бы на 300, а не на 1280, и точнее, и всяко дешевле.

ну все вы меня заинтреговали вашим методом...доделаю эту хрень буду пробовать.
коэфициент деления можно установить от 992 до 32767,хотя надо попробовать.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 11 2008, 17:29
Сообщение #19


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(=GM= @ Jul 11 2008, 16:15) *
На ATtiny24 (20 МГц клок) я бы сказал, что можно получить порядка +-2 Гц, с обработкой можно получить точными все 10 цифр частоты. Например, Fx=2 999 999 998 Гц точно, не слабо, э? Причём, достичь такого на копеечном приборе. Интересно, за сколько такой прибор можно купить?

Точных ? Десять ? На копеечном приборе ?
Мне кажется, только термостабилизация будет стоить на пару порядков дороже, чем этот "копеечный прибор" (
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jul 11 2008, 19:09
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Огурцов @ Jul 11 2008, 21:29) *
Точных ? Десять ? На копеечном приборе ?
Мне кажется, только термостабилизация будет стоить на пару порядков дороже, чем этот "копеечный прибор" (

термостабилизация чего? кварца контроллера? Вы о чём? Вы же не генерите образцовый сигнал а кто Вам сказал что сам измеряемый сигнал будет очёнь стабильным? для копеечного прибора термостабилизация не применяется, а указывается температурный диапазон прибора и indоor use only


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 11 2008, 19:41
Сообщение #21


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(sKWO @ Jul 11 2008, 19:09) *
для копеечного прибора термостабилизация не применяется
Как и слово "точность"...10 разрядов. Половины, в данном случае, было бы более чем достаточно.
Go to the top of the page
 
+Quote Post
gte
сообщение Jul 12 2008, 07:01
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(sKWO @ Jul 11 2008, 23:09) *
термостабилизация чего? кварца контроллера? Вы о чём? Вы же не генерите образцовый сигнал а кто Вам

И сколько значащих цифр при этом будут реальными?
Go to the top of the page
 
+Quote Post
Peeoner
сообщение Jul 12 2008, 09:30
Сообщение #23





Группа: Новичок
Сообщений: 10
Регистрация: 2-07-08
Пользователь №: 38 711



Ну вобщем решил я реализовать метод =GM=,как бы вроде с методом все понятно,подправте если не так понял.Использую 3

таймера: T0-считаю M(количество импульсов входной частоты)
T1-считаю N(тактовую частоту кварца,в данном случае 8Мгц) T2-использую для подсчета (формирования прерывания) Tизм.

На платке соединяю вход таймера T0 и ICP1(вход узла захвата).

1.Инициализирую все что мне нужно. Разрешаю прерывания от всех таймеров,и модуля захвата.
2.Жду какого нить прерывания в бесконечном цикле.

3.Поступает прерывание от ICP1.
Запрещаю прерывание от модуля захвата.
Запускаю T2 счетчик времени измерения.
Смотрю метку-это начальное или конечное время.
Переписую значения из T0,T1 в регистры как M1,N1 или M2,N2
Занимаюсь расчетом предыдущего измерения,считаю по формуле M=M2-M1;N=N2-N1 Fx=(Fо*M)/N и вывожу данные на дисплей.

4. Поступает прерывание от Т2,т.е. истекло время измерения.Разререшаю прерывание от ICP1. Записую "метку",что это у

меня будет конечные значения.Выхожу в бесконечный цикл.

теперь касаемо самих расчетов.К примеру у меня частота кварца 8мгц,на вход я подаю 4Мгц(это для оценки),в реале даже при деление на 1000,мне до 3ГГц с головой хватит!
т2-второй счетчик 8 битный,поэтому логично подавать на него 8000/1024=7825Гц.Тогда период измерения Tизм=0.127795521...Е-3 С=0.128E-3 C.
F0=8 000 000Гц
T0=0.125E-6 c
Tx=0,25E-6 c
N=1024
M=512
Считаем.
Fx=(F0*M)/N=(8 000 000 *512)/1024=4 000 000Гц. Вроде верна формула.
Теперь проблемы...
Ну 16битный счетчик посчитает 1024 имульса без переполнения,а вот 8 битный-2раза переполниться,надо обрабатывать прерывание от него,и записывать в регистр скоко он раз переполнился,можем потерять +-4 значение в счетчике,пока бум обрабатывать прерывание
И самое интересное операция с умножением и делением!
Что бы обеспечить точность в 10 знаков,нужно варрировать 32 битными величинами!И к тому же я не понимаю,откуда 10 знаков?? это что после герц еще 3 знака??
В моем случае при предделителе в 1000,я получю 4000.000Мгц,те с точностью до 1кгц,неплохо вобщем))) Для большей точности надо варрировать 32битами...
Но AVR как то 8битная!!!
Ну вот к примеру мы считаем Fx=(7А1200h*200h)/400h=3D0900h
Интересно как счиатать такие величины посредством 8 битных регистров?
Разбивать побайтно,перемножать.Корректировать с четом сдвигов и прочего,и так для каждого значения???
Операция умножения имееться в AVR ке,а вот деления я не нарыл,алгоритм деления нарыл.
А вот как варрировать с 32 битными величинами,ну или в моем случае с 3 байтами,я как то не представляю.Память что ли подключать?

Подам я пока что на T0 -измеряемый сигнал,и отсчет времени буду вести по Т2,а там уже подумаю...
Я понимаю что на С проще. Но меня совесть загрызет если AVR-ка будет делать 10-15 левых циклов ,о которых я понятия иметь не буду,так как писал на С.
Да и для меня это так сказать практика,и более понятнее что и как береться,и проще с архитектурой разобраться.Хреново что двоичной математики не знаю..

Сообщение отредактировал Peeoner - Jul 12 2008, 09:46
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jul 12 2008, 16:59
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(gte @ Jul 12 2008, 11:01) *
И сколько значащих цифр при этом будут реальными?

Полагаю не менее шести.
Проверял стабильность кварца контроллера используя режим CTC таймера. Исспользовал для измерения частоты не китайский частотомер, не помню как называется , год назад было, так вот частота генерируемая так по памяти из кварца фирмы Siward 7.3728 MHz, LP-3.5S, 30ppm и равнялась 230400 Гц - ошибка в один герц накапливалась в течении 15-ти ... 20-ти секунд.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 12 2008, 20:16
Сообщение #25


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(sKWO @ Jul 12 2008, 16:59) *
Полагаю не менее шести.

Ну Вы же сами пишете "30ppm". Что означает 4,52 десятичных цифр. А для шести, наверно, д.б. _1_ ppm, так ведь ?

Сообщение отредактировал Огурцов - Jul 12 2008, 20:18
Go to the top of the page
 
+Quote Post
Tiny
сообщение Jul 13 2008, 07:32
Сообщение #26


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

Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720



Такой вопрос.
CodeVision, пример из пакета \cvavreval\examples\DS1820
Термометр с использованием Dallas Semiconductor DS1820, кварц 3.6864MHz
В программе используются библиотеки для работы с DS1820. Насколько я поинмаю, для обработки получаемых данных от DS1820 нужны определенные интервалы времени.
Я сделал проектик на Mega 16. Такого кварца у меня нет. Есть 4МГц, 4,5МГц и выше. Внутренние частоты МК - 1, 2, 4, 8. Попробывал в Протеусе симуляцию на 4 МГц. Работает. Но в реальном устройстве - нет.
Попробывал подключить внешнюю RC-цепь (4,2К 22пФ), выставив соответсвующие фюзы. Опять же на индикаторах ерунда.
Есть ли выход из данного положения? Можно ли обойтись без кварца на 3.6864MHz?
Go to the top of the page
 
+Quote Post
foxit
сообщение Jul 13 2008, 09:16
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-04-07
Пользователь №: 27 098



Цитата(Огурцов @ Jul 12 2008, 23:16) *
Ну Вы же сами пишете "30ppm". Что означает 4,52 десятичных цифр. А для шести, наверно, д.б. _1_ ppm, так ведь ?

посмотрите это http://electronix.ru/forum/index.php?showt...19&hl=30ppm
Кварц "10ppm". видел такие часовые и ещё должны быть на другие частоты.
Бля ник соседа. Колян простит

Сообщение отредактировал foxit - Jul 13 2008, 09:16
Go to the top of the page
 
+Quote Post
Tiny
сообщение Jul 13 2008, 09:20
Сообщение #28


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

Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720



Извиняюсь, почему-то я разместил свое сообщение не в той ветке, какой собирался. Размещу ее снова, модераторов прошу от сюда удалить, чтобы не мешать.
Go to the top of the page
 
+Quote Post
foxit
сообщение Jul 13 2008, 09:28
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-04-07
Пользователь №: 27 098



Цитата(Tiny @ Jul 13 2008, 10:32) *
Есть ли выход из данного положения? Можно ли обойтись без кварца на 3.6864MHz?

смотрим описание мастера шины и2с , генерим задержки согласно рекомендациям производителя DS1820,
заглядываем к атмелу, ставим подтягивающие резисторы, выдерживаем длину кабеля, проверяем работоспобность контроллера, шьём провильно фусы. если нет, создаём новую тему с подробным описанием проблемы и не суём термодатчик в тему измерения частоты.
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jul 13 2008, 13:08
Сообщение #30


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(foxit @ Jul 13 2008, 12:16) *
Кварц "10ppm". видел такие часовые и ещё должны быть на другие частоты.

и ещё добавлю, что после предделителя я бы использовал бы плиску в качестве ассинхронного счётчика,
результаты с счётчика завёл бы на контроллер с которого можно спокойно выводить на индикатор,
это добавит максимум 7 баксов стоимости. более подробно посмотрите тут тут


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post

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

 


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


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