Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 17 123411 ... ПоследняяПоследняя
Показано с 1 по 10 из 169

Тема: Частотомер на МК

  1. #1
    Аватар для RX3QRD
    Регистрация
    24.09.2009
    Адрес
    Воронеж
    Сообщений
    455
    Позывной
    ex RX3QRD

    Частотомер на МК

    С появлением микроконтроллеров схемотехника многих конструкций существенно поменялась. Коснулось это и частотомеров.
    Но есть сомнение относительно точности измерения. Частотомеры прямого отсчета, собранные на счетчиках, измеряют частоту непосредственно и погрешность минимальна и больше связана с температурным дрейфом опорного кварцевого генератора, устанавливающего время счета.
    В программах МК применяются два аппаратных таймера, которые переполняясь, инкреминируют переменные (время счета и число импульсов частоты на входе). Но при переполнении таймеров срабатывают прерывания и управление переходит подпрограмме обработки прерывания. Если это происходит в тот момент,когда переполняется счетчик таймера частоты, МК попросту пропускает это событие и теряет некоторое количество импульсов. Точность измерения падает.
    В то же время, процессор меньше шумит в эфир, что делает его применение в связной аппаратуре более приемлемым.
    Если мои выводы неверны,прошу разъяснить мне в чем мои заблуждения и помочь с уточнениями алгоритма.


  2. #2
    Аватар для UN7GCE
    Регистрация
    18.01.2004
    Адрес
    РФ ТиНАО
    Сообщений
    2,212
    Записей в дневнике
    1
    Позывной
    ex UN7GCE
    Цитата Сообщение от RX3QRD Посмотреть сообщение
    Но при переполнении таймеров срабатывают прерывания...
    При переполнении ставится флаг переполнения, а обрабатывать его, или нет это на совести программера.
    Евгений (since 1975 UL7RAW, 1977 UL7GCE, 1991 UN7GCE) пос. Коммунарка

  3. #3
    И первый (наверное) вариант (AN592 от Microchip) базировался на PIC16C54, с одним таймером, и все чисто программно. Достаточно просто точно посчитать по тактам, и никаких проблем вообще нет, в принципе. Все будет в точности так же, как на жесткой логике, только на порядки проще схемотехнически.

  4. #4
    Аватар для RX3QRD
    Регистрация
    24.09.2009
    Адрес
    Воронеж
    Сообщений
    455
    Позывной
    ex RX3QRD
    Цитата Сообщение от UN7GCE Посмотреть сообщение
    а обрабатывать его, или нет это на совести программера
    если программа должна считать,она будет считать. И пропуск флага=неточный подсчет. А если частота высокая, то пропусков будет много и ошибка растет

  5. #5
    Так про то и речь - обрабатывайте корректно, и все будет нормально. Таймер ведь при переполнении продолжает считать, достаточно в течении интервала переполнения отследить и обработать состояние. И так до конца окна счета.

    И насколько бы высокой не была входная частота, на входе таймера 0 (обычно используемого в таких частотомерах, по причине наличия асинхронного прескалера) она не может превышать тактовой (в принципе). Т.е. для обработки ситуации переполнения есть 256 командных циклов (а хватило бы и на порядок меньше).

  6. #6
    Аватар для UN7GCE
    Регистрация
    18.01.2004
    Адрес
    РФ ТиНАО
    Сообщений
    2,212
    Записей в дневнике
    1
    Позывной
    ex UN7GCE
    Цитата Сообщение от RX3QRD Посмотреть сообщение
    если программа должна считать,она будет считать. И пропуск флага=неточный подсчет.
    Причём тут пропуск флага? Как это организуется в 628 ПИКе? Организуется кольцо счета, допустим на 100 mSec (к примеру). При в ходе в кольцо происходит запуск счета двух байтного таймера Timer1. По флагу переполнения происходит наращивание счетчика до 3, 4 или 10 байт (цифры беру к примеру). При выходе из кольца таймер останавливается. И никаких прерываний. Дальше обычная работа с байтами.
    Евгений (since 1975 UL7RAW, 1977 UL7GCE, 1991 UN7GCE) пос. Коммунарка

  7. #7
    Аватар для RX3QRD
    Регистрация
    24.09.2009
    Адрес
    Воронеж
    Сообщений
    455
    Позывной
    ex RX3QRD
    Цитата Сообщение от rx3apf Посмотреть сообщение
    Таймер ведь при переполнении продолжает считать, достаточно в течении интервала переполнения отследить и обработать состояние
    Понял. Флаг выставляется, таймер обнуляется и начинает цикл счета снова. Моя задача сбросить флаг и быстро посчитать.
    Следующий вопрос: в предделителе установлен коэфф. к примеру 256. И время счета вышло. Как узнать, сколько там "застряло"?

  8. #8
    А для этого блокируют вход и досчитывают прескалер принудительно. В первоначальной реализации (AN592) для этого выделялась отдельная портовая нога, но гораздо проще и правильнее манипулировать битом полярности счета в байте опций. И тогда не требуется дополнительных ног. Если же прескалер внешний (или имеет дополнительные внешние каскады, например, триггеры 74 современных серий могут обработать и 300..400 MHz), придется выделить дополнительные линии, для разрешения окна счета и досчета. Итого три линии, включая вход таймера.
    Последний раз редактировалось rx3apf; 12.09.2017 в 18:21.

  9. Спасибо от DARKSTAR

  10. #9
    Аватар для RX3QRD
    Регистрация
    24.09.2009
    Адрес
    Воронеж
    Сообщений
    455
    Позывной
    ex RX3QRD
    Цитата Сообщение от rx3apf Посмотреть сообщение
    гораздо проще и правильнее манипулировать битом полярности счета в байте опций
    расскажите поподробнее, пожалуйста.


  11. #10
    А что подробнее ? Фронт счета (положительный или отрицательный) выбирается состоянием бита T0SE в регистре OPTION_REG. Запретив изменение состояние на входе таймера (переведя на выход), досчитывать прескалер можно как манипуляцией состоянием этой линии, так и битом T0SE. Повторяем переключение до тех пор, пока состояние TMR0 не изменится. Ну, есть тонкости с моментом изменения состояния (опрос регистра TMR0 надо на такт или два задержать, не помню уж).

Страница 1 из 17 123411 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Частотомер
    от 4L1FL в разделе Измерения
    Ответов: 30
    Последнее сообщение: 05.02.2017, 17:51
  2. частотомер Ч3-63
    от aleksandr130 в разделе Технический кабинет
    Ответов: 13
    Последнее сообщение: 21.02.2016, 16:40
  3. Частотомер
    от Yrec24 в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 97
    Последнее сообщение: 15.02.2011, 15:06
  4. Частотомер
    от UR5WPR в разделе Бытовая техника, мой автомобиль, домашняя автоматизация
    Ответов: 6
    Последнее сообщение: 09.12.2008, 21:59
  5. Частотомер ч3-38
    от rz3abk в разделе Антенны
    Ответов: 9
    Последнее сообщение: 06.03.2007, 20:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •