
Давно хотел начать разговор про цифро-аналоговое и аналого-цифровое
преобразование, но данная статья не об этом. В кратце только скажу, что одним из самых доступных для нас методов построения АЦП - промежуточное преобразование измеряемого параметра в частоту. Таким методом мы уже пытались измерять емкость конденсатора в статье "Генератор". Для облегчения подобных экспериментов, было решено сделать специальный прибор, позволяющий измерять частоту.
Для отображения результатов измерений , для платы Марсоход был сделан дисплейчик:

и вот он же, снизу:

Он сделан из трех сдвоенных семисегментных индикаторов.
Кроме того, для тактирования схемы и как эталон времени,
был использован кварцевый генератор на 100 MHZ.

Принципиальная схема этого шилда:
Пришлось доработать и саму плату, допаять штыречки для pt_left и pt_right, дополнительные штыречки к моторным пинам и разрезать дорожки, чтобы разделить моторные группы на две части.

Принцип работы девайса поясню на фрагменте проекта:
Поступающий на пин DP входной сигнал сразу выводится на два светодиода led[7] и led[6] в прямом и инверсном виде. Это может понадобиться для оценки сигнала, поступившего внутрь чипа. Если яркость свечения светодиодов одинаковая, то измеряемый сигнал симметричный (меандр), если нет, то возможны два варианта - либо сигнал не симметричный, либо сигнал пересекает пороговое значение входного элемента не по оси симметрии тоесть не согласован по уровню.
Кроме того сигнал с DP поступает на три последовательно включенных делителя на 2, и из поделенного в итоге на 8 сигнала, выделяется положительный перепад.
Поскольку наша схема работает от 100MHZ, максимальная частота, которую она может обнаруживать - 50MHZ , таким образом, максимальная частота, которую можно подавать на вход нашего прибора - 400MHZ.
Проект полностью можно посмотреть здесь
Далее в проекте, количество перепадов подсчитывается шестью декадными счетчиками в течении 8 миллисекунд, таким образом, выводимая на индикатор частота получается в килогерцах.
Для тестов прибора подобрал коллекцию генераторов:

Поскольку максимальная частота в этом наборе 125MHZ, а испытать наш приборчик хотелось на максимальной частоте, пришлось запрограммировать для этой цели отдельный девайс на Cyclone II. Имеющуюся на нем частоту 80MHZ c помощью PLL умножили на 14 и разделили на 3 - получилось 373.(3)MHZ.
Итак, приступаем к испытаниям и первым устанавливаем генератор на 14.318MHZ

Далее по порядку - 24.576MHZ, 33MHZ, 66MHZ , 125.MHZ и от внешнего девайса 373MHZ:
Все эти эксперименты выполнялись при напряжении питания -4В.
Затем мы все повторили при напряжении 2.5В - результат получился аналогичный.
header.jpg
????? ????? ?????? ???????? ??? ?????-?????????? ? ???????-????????
??????????????, ?? ?????? ?????? ?? ?? ????. ? ?????? ?????? ?????,
??? ????? ?? ????? ????????? ??? ??? ??????? ?????????? ??? - ?????????????
?????????????? ??????????? ????????? ? ???????. ????? ??????? ?? ??? ????????
???????? ??????? ???????????? ? ?????? "?????????". ??? ?????????? ????????
?????????????, ???? ?????? ??????? ??????????? ??????, ???????????
???????? ???????.
??? ??????????? ??????????? ????????? , ??? ????? ???????? ??? ?????? ??????????
display_top.jpg display_bot.jpg
?? ???? ????????? ?????????????? ???????????
????? ????, ??? ???????????? ????? ? ??? ?????? ???????,
??? ??????????? ????????? ????????? ?? 100 MHZ.
led_type.jpg osc_type.jpg
?????????????? ????? ????? ?????
led_display.bmp
???????? ?????????? ? ???? ?????, ??????? ???????? ??? pt_left ? pt_right,
?????????????? ???????? ? ???????? ????? ? ????????? ???????,
????? ????????? ???????? ?????? ?? ??? ?????.
board.jpg board_bot.jpg
??????? ?????? ??????? ?????? ?? ????????? ???????
fragment.bmp
??????????? ?? ??? DP ??????? ?????? ????? ????????? ?? ??? ??????????
led[7] ? led[6] ? ?????? ? ????????? ????. ??? ????? ???????????? ???
?????? ???????, ???????????? ?????? ????. ???? ??????? ???????? ???????????
??????????, ?? ?????????? ?????? ???????????? (??????), ???? ???,
?? ???????? ??? ???????? - ???? ?????? ?? ????????????, ???? ????? ??????????
????????? ???????? ???????? ???????? ?? ?? ??? ????????? ?.?. ?? ?????????? ?? ??????.
????? ???? ?????? ? DP ????????? ?? ??? ??????????????? ?????????? ???????? ?? 2, ?
?? ??????????? ? ????? ?? 8 ???????, ?????????? ????????????? ???????.
????????? ???? ????? ???????? ?? 100MHZ , ???????????? ???????, ??????? ???
????? ???????????? - 50MHZ , ????? ???????, ???????????? ???????, ??????? ?????
???????? ?? ???? ?????? ??????? - 400MHZ.
?????? ????????? ????? ?????????? ????? fmeter.zip
????? ? ???????, ?????????? ????????? ?????????????? ?????? ????????? ??????????
? ??????? 8 ??????????, ????? ??????? ????????? ?? ????????? ??????? ??????????
? ??????????.
??? ?????? ??????? ???????? ????????? ???????????
oscilators.jpg
????????? ???????????? ??????? ? ???? ?????? 125MHZ , ? ???????? ??? ?????????
???????? ?? ???????????? ???????, ???????? ????????????????? ??? ???? ????
????????? ?????? ?? CycloneII. ????????? ?? ??? ??????? 80MHZ c ??????? PLL
???????? ?? 14 ? ????????? ?? 3 - ?????????? 373.(3)MHZ.
????, ?????????? ? ?????????? ? ?????? ????????????? ????????? ?? 14.318MHZ
testing.jpg
????? ?? ??????? - 24.576MHZ, 33MHZ, 66MHZ , 125.MHZ ? ?? ???????? ??????? 373MHZ
video.mov
??? ??? ???????????? ??????????? ??? ?????????? ??????? -4?.
????? ?? ??? ????????? ??? ?????????? 2.5? - ????????? ????????? ???????????.

Большое спасибо за такую ценную реализацию! Благодаря плате Марсоход 10 лет назад я устроился на новую работу, которая была связана с работой с ПЛИС:)
Но местные гуру наверняка назовут такое решение не кошерным. :)
Думаю, что мне придется переходить с 240-го на 570-й чип. Иначе просто не уместить индикацию - места уже осталось менее 80 ЛЭ, а частотомеру нужно порядка 120 ЛЭ. Как ни экономь на мелочах, столько не выкроить.
"cout" предыдущего счетчика на "cin" следующего.
Короче, можно ли подавать на вход cnt_en сигнал фронт&(выход cout предыдущего счетчика), без добавления туда сигналов cout от всех предыдущих счетчиков?
Мне нужно измерить частоту внутреннего сигнала системы, который является частным от деления клоковой частоты, т.е. он заведомо синхронизирован с клоком.
По схеме cnt_en[n]
Значит, первый декадник можно построить так же по схеме всех последующих, без использования входов sload и data?
Что касается логики & между счетчиками - предполагаю, что там хватило бы 2&, без "наращивания" перед старшими счетчиками. По схеме cnt_en[n]
измерения частоты, используемый в проекте , с вероятностью 50% недосчитывает последний импульс.
А, поскольку, для демонстрации использовались генераторы с круглыми частотами, то цифры на дисплее
без этой "фичи" прыгали, 099999 - 100000 от генератора 100Мгц, а так - 100000-100001.
Для чего у первого счетчика по модулю 10 сделан вход загрузки, и почему по сигналу sload обнуляются только 3 старших разряда счетчика, а младший бит шины "висит" в воздухе?
И еще - в чем фишка использования логики & между этими счетчиками, если они синхронизируютс я по входам "с" сигналом клока 100 МГц? Какой смысл "собирать" все предыдущие импульсы по каждому следующему разрешающему входу?
Вопросы вызваны желанием использовать индикаторную часть проекта в своей разработке. Для этого хочется досконально разобраться в исходном проекте.
На входе стоит предделитель на 8, поэтому частота получается именно в килогерцах.
Что нужно исправить в проекте, чтобы правильно
показывало, сказать не могу, нет проекта перед глазами.
Посмотрю 10 числа.
не нужен, использовался для тестов.
с общим анодом.
___Форум KAZUS.RU » Форумы по электронике » Микроконтроллер ы, АЦП, память и т.д » Самодельный цифровой осциллограф____
на ПЛИС, однако(R)
Входное сопротивление > 100КОМ
Входная емкость 8 ПФ
Разрешающая способность 1КГЦ
Абсолютная точность определяется точностью кварцевого генератора
Напряжение питания 2.5-4.5В
Потребляемый ток 100МА
Предназначен для измерения частоты цифровых сигналов LVCMOS 2.5-4.5В
Возможно измерение частоты сигнала произвольной формы при условии,
что постоянная составляющая этого сигнала будет близкой к пороговому
значению входного элемента(~VCC/2 ), а амплитуда больше 0.5В, но меньше
напряжения питания. Например такого F(t)=VCC/2+VCC/ 2*Sin(w).
разрешение, основная погрешность..); как обстоят дела с измерением частоты гармонических сигналов?
Пришлите ваш электронный адрес.
но есть пара тонких моментов. На питание EPM240 нельзя
подавать 5В, но, я думаю и от 4.5В все должно нормально работать.
На ПЛИС не работают кварцевые генераторы, поэтому генератор
на IC14 можно заменить на внешний, а микросхему IC3 (элемент IC3r)
скорее всего нужно оставить.
Есть проект Стандарта частоты
filebox.od.ua/.../
Обмен gps и МК уже реализовал.
Возможно ли всю жесткую логику реализовать на ПЛИС платы Марсоход. Если нет, то на какой?
Если не трудно, помогите реализовать.
В ПЛИС новичек.
Спасибо.