Рейтинг@Mail.ru

Как сделать частотомер на микросхемах FTDI

автор:
Be the first to comment! Программирование
Print Friendly, PDF & Email
Описана идея частотомера, сделанного на основе микросхем фирмы FTDI - FT2232, FT4232 и других, поддерживающих MPSSE. Прилагается программа под ОС Windows, измеряющая частоту подаваемого сигнала согласно описанной идее.

Для начала опишу суть идеи.

1 Описание идеи частотомера на устройствах MPSSE

Нам нужно устройство, которое поддерживает механизм MPSSE (multi-protocol serial engine) – это универасльный движок, реализующий различные последовательные протоколы на микросхемах фирмы FTDI. Это такие микросхемы как FT2232D, FT232H, FT2232H и FT4232H. В данном случае будем использовать последовательный протокол SPI, т.к. у него меньше всего накладных расходов: мы можем читать данные практически непрерывно, без всяких служебных вставок в полезную информацию.

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

Изображение ниже поясняет сказанное. Голубым цветом обозначен приходящий периодический сигнал, частоту которого необходимо измерить. Он подаётся на вывод DI (data in) микросхемы FTDI. Жёлтым цветом показана тактовая частота, которую генерирует микросхема FTDI в режиме SPI на выводе CLK. Читая приходящее значение на ножке DI и зная частоту, можно пересчитать его в частоту периодического сигнала.

Принцип работы частотомера, входной сигнал - меандр
Принцип работы частотомера, входной сигнал - меандр

Красными пунктирными линиями показаны данные, которые окажутся в приёмном буфере микросхемы. Например, в данном случае это будут биты 0,1,1,1,0,0,1,1, что соответствует одному байту 0x73. Но нас будут интересовать не сами значения в приёмном буфере, а переходы от "0" к "1", так как это и будут передние фронты импульсов измеряемого сигнала. Зная время приёма и подсчитав число таких переходов, т.е. число импульсов, за это время мы получим частоту изучаемого сигнала. Главное измерять достаточно быстро, чтобы терять минимум времени на это. То есть в вашей программе между двумя последовательными чтениями из буфера микросхемы должно быть минимум действий и минимум кода. А также тактовая частота должна быть хотя бы в 2 раза выше измеряемого сигнала.

Причём данный метод работает не только с прямоугольными импульсами. Это может быть любой другой периодический сигнал, например, синусоидальный:

Принцип работы частотомера, входной сигнал - синус
Принцип работы частотомера, входной сигнал - синус

Для проверки работоспособности метода был собран вот такой стенд. В роли генератора периодического сигнала выступает карманный осциллограф DS203 с функцией генератора. Максимальная частота, которую он может сгенерировать – 200 кГц, минимальная – 1 Гц. Форма сигнала – меандр, синус, пила или треугольные импульсы. В роли частотомера – отладочная плата с микросхемой FT2232H. В роли осциллографа – двухканальный портативный осциллограф FNIRSI-1013D.

Микросхема FT2232H в роли частотомера
Микросхема FT2232H в роли частотомера

2 Реализация частотомера на микросхемах FT2232/FT4232

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

Амплитуда подаваемого на выводы микросхемы FTxx сигнала не должна превышать допустимые значения. Например, для микросхемы FT2232H это 3,3 В.

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

Консольное приложение, реализующее функционал частотомера на микросхемах FTDI
Консольное приложение, реализующее функционал частотомера на микросхемах FTDI

Тестирование такого метода измерения частоты показало вполне неплохой результат: для частот от 1 Гц до 200 кГц погрешность измерений составляет менее 1%. Теоретически, программа может корректно измерять частоту примерно до 500 кГц, т.к. микросхема FTDI в программе настроена на работу с тактовой частотой 1 МГц.

Кстати, добавил данную функциональность в программу SPI via FTDI версии 2.2. В программе графический интерфейс, а также имеется справка и схема подключения.

Last modified onСреда, 03 May 2023 18:24 Read 5917 times

Поблагодарить автора:

Поделиться

Print Friendly, PDF & Email

Leave a comment