Re: Осваиваем PSoC
Ну вот свершилось. Стробоскопический преобразователь для звуковой карты. Имеем два входа и два выхода. На входы подаем интересующие высокочастотные периодические сигналы, на выходах имеем их же замедленные в 10, 100, 1000 раз.
Как это работает. В левой части схемы на PWM_Window, триггере и двух счетчиках - частотомер. Меряет частоту входного сигнала с одного из входов. Далее, в проге вычисляется частота сэмплирования и сообщается DDSу, который выдает ее на смеситель. На выходе смесителя получается разностная частота, которую мы можем наблюдать в проге осциллографа для звуковой карты.
Обозначения:
Fxxxx- измеренная частота входного сигнала
Fssss- частота сэмплирования
Xd - коэффициент деления (степень замедления)
Ns - число точек в периоде выходной частоты
GainL/R - усиление канала
SyncL/R - с какого канала идет синхронизация.
Схемка получилась не ахти какая быстрая - до 500 кГц. Ограничения как я понимаю в смесителе. Других не вижу. С внешним хорошим смесителем мегагерцы не проблема.
Приятно, что все это как ни странно работает. Также отрадно что удалось задействовав почти всю функциональность кристалла обойтись практически без навесных элементов.
У меня кристалл тактируется от внешего генератора(Pin_17 EClock), но для казуса я скомпилировал с внутренним генератором. И это прекрасно работает. Фишка в том что и частотомер и DDS работают от одного источника, т.о. погрешности взаимокомпенсируются. Ну и стабильность внутреннего генератора очень неплохая.
На картинке с Флюками: слева входной сигнал, справа - выходной/100. В качестве источника сигналов использовал звуковую карту - на работе пристойного генератора нет, поэтому частота такая низкая.
Последний раз редактировалось Kabron; 09.12.2010 в 16:10.
|