-
15.03.2005, 19:24 #1
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
Вопросы частотомеростроения.
Доброго времени суток!
Тут такой вопрос возник: смотрю на http://kazus.ru/modules/Content/shemes/19.html, вижу что собранный на PIC16F84 частотомер измеряет частоту до 40 МГц. Далее начинаю искать конструкции на AVR, и вижу что большинство конструкций меряет частоту до 0,5 частоты тактового кварца, что вполне логично.
И вот никак мне не ясно, как первая конструкция на PIC16F84 может мерять такие высокие частоты, при частоте собственного кварца 4 МГц?!
Заранее благодарен за ответ.У кошки четыре ноги: вход, выход, земля и питание.
73! UR3LTG.
-
15.03.2005, 20:32 #2
А какая разница в данном случае какая тактовая частота у контроллера? Важно какие узлы он содержит! У этого есть весьма быстродействующий 8-ми разрядный модуль таймера. Вот он и накапливает входную частоту. А считать ее - быстродействие не нужно...
-
16.03.2005, 10:19 #3
- Регистрация
- 09.07.2003
- Адрес
- Москва
- Возраст
- 55
- Сообщений
- 375
- Поблагодарили
- 13
- Поблагодарил
- 2
Модуль таймера там не особо быстродействующий. С большой скоростью может работать только предварительный делитель, включенный на входе собственно восьмиразрядного таймера. Причем программно этот самый предделитель недоступен и, чтобы прочитать его состояние, приходится прибегать к всевозможным хитростям. Хитрости эти описаны с десяток лет назад в одном из руководств по применению PIC-ов и все частотомеры на них растут оттуда.
Последний раз редактировалось DMJ; 16.03.2005 в 10:21.
-
16.03.2005, 11:25 #4
- Регистрация
- 18.06.2004
- Адрес
- Запорожье
- Сообщений
- 166
- Поблагодарили
- 12
- Поблагодарил
- 0
Первоначальное сообщение от Robert
А какая разница в данном случае какая тактовая частота у контроллера? Важно какие узлы он содержит! У этого есть весьма быстродействующий 8-ми разрядный модуль таймера. Вот он и накапливает входную частоту. А считать ее - быстродействие не нужно...
Для частотомера, с точностью до 1 гц уже нужны 4 регистра счетчика, т.е. в памяти надо организовывать еще один регистр.
Для более высоких частот можно использовать внешний счетчик.
Так организован частотомер Денисова, да и многие другие. Конечно есть более продвинутые контроллеры, имеющие несколько таймеров.
-
16.03.2005, 12:29 #5
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
Большое спасибо всем ответившим!
Скажите пожалуйста, возможна ли реализация частотомера на частоту этак 50 МГц на базе какого либо контроллера фирмы Atmel, без использования внешнего делителя? Или даже не стоит браться за эту тему?
Владимир_К
Владимир, я вот тут чуть не понял принципа действия:
Вот есть у нас первый регистр - он делит входную частоту на столько то.
А таймер - он каким образом отмеряет время? В смысле, он считает число "тиков", и по достижении определенного числа инкрементирует старший (третьий) регистр?
И еще, насколько я понял, тут нужен еще и "часовой" таймер, который по пошестивии времени, выделенного на счет, дернет процедуру считывания счетчиков и визуализации данных.
Или я жестоко заблуждаюсь?
-
16.03.2005, 12:58 #6Alex007Гость
Есть прескалер (инкрементирующий счетчик), он считает непосредственно входной сигнал, при его переполнении (например 256) синхронизированный тактовой частотой контроллера импульс идет на таймер (читай тот же счетчик) контроллера. При переполнении регистра таймера (8 бит) выставляется флаг прерывания (но само прерывание обычно маскируют) по которому инкрементируестя "обычный" регистр итд. Все это дело происходит за период измерения, организованный (обычно) простой подпрограммой задержки на циклах.
В более современных (чем PIC16F84) контроллерах действительно можно организовать "часовой таймер" из имеющихся свободных таймеров (у ПИК-ов это Timer1 и Timer2).
-
16.03.2005, 13:22 #7
- Регистрация
- 18.06.2004
- Адрес
- Запорожье
- Сообщений
- 166
- Поблагодарили
- 12
- Поблагодарил
- 0
Первоначальное сообщение от Homich
..........я вот тут чуть не понял принципа действия:
Вот есть у нас первый регистр - он делит входную частоту на столько то.
А таймер - он каким образом отмеряет время? В смысле, он считает число "тиков", и по достижении определенного числа инкрементирует старший (третьий) регистр?
И еще, насколько я понял, тут нужен еще и "часовой" таймер, который по пошестивии времени, выделенного на счет, дернет процедуру считывания счетчиков и визуализации данных.
Или я жестоко заблуждаюсь?
То есть через каждые 1000 мксек поисходит проверка переполнения и если в регистре (кажется Status), есть бит (признак переполнения), то добавляется единица в старший регистр счетчика, т.е. в память контроллера. Сделать программу такой, чтобы она выполнялась именно за 0,1 сек и есть основная сложность. Если получается меньше, можно добавлять холостые команды (NOP). Но когда в программе есть ветвления, получается все равно довольно кропотливо.
-
05.04.2005, 19:24 #8
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
Большое спасибо всем ответившим!!! Распечатал эту ветку и курю до просветления.
Только вот на горизонте появилась новая проблема:
Насколько я понял из даташита на ATMega8, счетчики у AVR-ов работают с максимальной частотой, равной половине тактовой. Так ли это? Если да, то становится понятным облилие частотомеров на PIC-ах, и практически полное отсутствие на AVR-ах. А как раз на AVR-е я хотел сделать этот проект. ((
В общем, что скажете?
Заранее благодарен за ответ.
-
05.04.2005, 23:25 #9Alex007Гость
Если почитаете доки на ПИК-и, то нигде не увидите максимальной частоты работы встроенного прескалера, а только при внимательном чтении можно заметить, что сам таймер после прескалера синхронизируется частотой Fosc/8. Но если учесть, что прескалер делит на 128 то этого хватает за глаза. Возможно (про АВР я не читал) там тоже самое.
-
08.04.2005, 18:03 #10
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
К сожалению, фраза "An external clock source can not be prescaled." из даташита на ATmega8 намертво перекрыла перспективу построения частотомера на этом кристалле без внешнего делителя. Посмотрел даташиты на микрочип и расстроился. Там есть встроенный делитель.
Короче говоря, у меня возник вопрос: есть ли смысл городить частотомер на Атмеле, или бросить эту затею и изучать Microchip? Если смысл есть, то какой внешний делитель порекомендуете использовать?
Заранее благодарен за ответ.У кошки четыре ноги: вход, выход, земля и питание.
73! UR3LTG.
-
08.04.2005, 18:31 #11
- Регистрация
- 18.06.2004
- Адрес
- Запорожье
- Сообщений
- 166
- Поблагодарили
- 12
- Поблагодарил
- 0
Первоначальное сообщение от Homich
Короче говоря, у меня возник вопрос: есть ли смысл городить частотомер на Атмеле, или бросить эту затею и изучать Microchip?
Заранее благодарен за ответ.
Кроме того, на РICах уже есть разработки FLC измерителей, все в одном.
Успехов!
-
08.04.2005, 19:27 #12
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
Спасибо за пожелания!
Дело в том, что я замыслил частотомер как первый проект в области освоения AVR-ов. А тут такой облом... Ну что же, буду думать в другую сторону.
Успехов Вам и всем ответившим!!!У кошки четыре ноги: вход, выход, земля и питание.
73! UR3LTG.
-
08.04.2005, 23:11 #13Alex007Гость
Да почему же облом. Вот вариант использования внешнего делителя на НС393 для такого случая. Проверял - все ок. По такой схеме можно и для АВР. http://homepage.tinet.ie/~ei9gq/stab.html
PS. Я за изучение ПИКов. По-моему и инфы больше, отладочные есть, и проще. Круче ПИКа только PIC!!Последний раз редактировалось Alex007; 08.04.2005 в 23:14.
-
10.04.2005, 11:09 #14
- Регистрация
- 07.06.2003
- Адрес
- Питер
- Сообщений
- 38
- Поблагодарили
- 1
- Поблагодарил
- 8
« Если Вам нужен только частотомер, то можно без изучения PICов собрать по имеющимся схемам. Есть опробованные неоднократно схемы. Сам я собрал несколько по схеме Денисова, с индикаторами на светодиодных индикаторах, на ЖКИ. Все работает как надо. Для этого частотомера есть также усовершенствованная прошивка (автор Корабельников Е.А.). Расширен диапазон, улучшена индикация (устранено некоторое мерцание индикаторов). Хотя для частотомера на ЖКИ его и не было. »
Я тоже неоднократно собиал этот частотомер на светодиодных индикаторах, все
ОК, но раздражает мерцание индикаторов. Может подскажете где взять новую прошивку?
-
11.04.2005, 10:33 #15
- Регистрация
- 18.06.2004
- Адрес
- Запорожье
- Сообщений
- 166
- Поблагодарили
- 12
- Поблагодарил
- 0
Первоначальное сообщение от PVK
« раздражает мерцание индикаторов. Может подскажете где взять новую прошивку?
Свой пока не перепрошивал, поэтому оценку дать не могу.
Хотя, в прошлом году пробовал демонстрационную версию. Все было нормально. Рабочая тогда была платной. Сейчас автор выложил бесплатно и рабочую.
Успехов.
|
Социальные закладки