





|
Компьютерный осциллограф на 48 МГц. Уважаемые читатели, Вашему вниманию представляется практическая схема USB осциллографа с частотой дискретизации 48 МГц на основе модуля WoodmanUSB от фирмы Kernelchip. С принципиальными особенностями подобного осциллографа мы познакомились в предыдущей статье, где рассмотрели аппаратную и программуную реализацию анализатора логического уровня. Принципы построения остаются абсолютно аналогичными, только теперь на вход порта PORTB модуля мы будем подавать оцифрованный сигнал с быстродействующего АЦП. Схема блока АЦП представлена на рисунке ниже. Итак, что мы здесь видим - это во-первых, собственно сам АЦП - микросхема AD9057 от Analog Devices. Был проведен анализ возможных кандидатов на данную позицию, рассматривались издели от MAXIM, TI но в итоге был приныт имеено AD9057. Он относительно прост, удовлетворяет требованиям по частоте дискретизации, более менее доступен в продаже (чего не скажешь об остальных). Этот АЦП в продаже попадется в нескольких модификациях, отличающихся максимальной частотой дискретизации. Обозначается она так: AD9057BRS80 - т.е. этот образец может разгоняться до 80 МГц. Они также бывают на 40 и 60 МГц. Соответственно, желательно брать на 60 или 80 чтобы возможности WoodmanUSB зря не пропадали.
Далле обратим внимание на операционный усилитель AD828. Если его под рукой нет, то можно использовать любой другой, это не критично. Главное чтобы этот ОУ уверенно работал от однополярного напряжения и обеспечивал необходимую полосу пропускания (мегагерц этак 50 и более). Теперь внимательней посмотрим на саму схему. Она очень простая. Как видно здесь использется только один ОУ без применения двупорных схем питания. Однако простота требует жертв. Схему придется настраивать с помощью подстроечных резисторов R1, R2 для установки оптимального режима. Пару замечаний по схеме. Куча стрелочек с номерами выходящих из AD9057 соответственно должны подключаться к соответствующим выводам модуля WoodmanUSB. Далее, на вход схемы можно подвать напряжение от 0 до +5 В (больше не нужно - схему можно спалить).
Обратим свое внимание на софт. Я решил для этой статьи оставить "движок" программы из прошлой статьи. Они почти полностью совпадают, за исключением того что теперь на отрисовку идут полноценные 8 бит данных а не 1 как было раньше в анализаторе. Проект программы можно скачать по ссылке в верху страницы. Как уже сказал там ничего принципиально нового нет, поэтому рассматривать код не будем. Итак, настало время первого запуска. Соединяем блок АЦП с модулем WoodmanUSB, подключаем все это к компьютеру. Для тестового анализа предлагаю использовать генератор прямоугольных импульсов - так проще будет настроить схему. Я использую микроконтроллер из предыдущей статьи. Запускаем программу. С очень большой степенью вероятности Вы должны увидеть нечто вот такое как на рисунке ниже, т.е. нечто весьма далекое от правды. ![]() Рис. 1. Вид осциллограммы при расстроенном АЦП
Вот собственно и все - у Вас на руках вполне работоспособная версия цифрового USB осциллографа с частотой дискретизации 48 МГц. Согласитесь, внушительная цифра. Промышленный прибор с такими характеристиками стоит не менее 30 тыс. руб. и более. Однако если нет необходимости в промышленной дорогостоящей установке, вполне можно использовать конструкцию, рассмотренную на этой странице. Что еще необходимо сказать. Вернее, напомнить - данный осциллограф не обечспечивает непрерывной дескритизации! 48-ми мегагерцовый шаг будет обеспечен только в каждых 512 отсчетах внутри буфера данных, прочтенных из модуля, а между пакетами по 512 точек временное расстояние не известно. Поясним на примере. В идеале должно быть следующее: берем отрезок сигнала длительностью 1 сек. Получаем 48 миллионов отсчетов, причем временное расстояние между любыми двумя точками строго равно 1/48*106 сек. В связи с особенностями USB шины на таких скоростях мы не можем обеспечить непрерывный поток данных, при котором скорость передачи будет одинаковой для любого момента времени. В шине USB мгновенная скорость сильно "плавает", если такой термин вообще применим. Итого, точную временную синхронизацию можно гарантировать только для пакета данных размером равным размеру контрольной точки USB модуля, в данном случае 512 байт. Другой вопрос что модуль может обеспечить порядка 20000 таких пакетов по 512 байт за одну секунду. Итого, в данном случае мы имеем дело с ~20 тыс. выборок входного сигнала в секунду по 512 байт каждая, причем внутри каждых этих 512 байт времеменное расстояние между отсчетами четко равно 1/48*106 сек. Подобные особенности не помешают нам, если мы анализируем переодические или медленно меняющиеся процессы. В завершение этой статьи скажу что есть еще куда двигаться дальше. В следущих статьях займемся модернизацией софта для придания ему более призентабельного вида. © Иванов Д. В. |
![]() |
||||||||||||||||||||||||||||||