ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
877973 Топик полностью
Ксения (20.10.2018 17:26 - 17:28, просмотров: 422) ответил Хаос на Вы лучше скажите, удалось вам "сдвинуть меандр на 90 градусов"? И какая у вас получилась точность при измерении амплитуды сигнала? :)
Сдвигала на 90 градусов таймером. Фронт сигнала синхронизации от DDS AD9834 (переход DAC через 0) сбрасывает на ноль таймер, настроенный на самую быструю частоту (Fosc/2). В момент достижения нужного значения счетчика (режим compare) запускается на старт АЦП (он в ждущем режиме). Уровень срабатывания легко вычисляется из тактовой частоты и частоты DDS. Прерываниями не пользовалась - всё сделала на "системе событий", когда порт сам ловит восходящий фронт, порождая "событие", от которого сбрасывается таймер, а момент совпадения его счетчика с константой порождает второе "событие", от которого стартует АЦП. А сам МК ничего не делает, ожидая, когда DMA заполнит буфер замерами АЦП, а потом этот буфер отcылает в компьютер по USB. В результате получаю массив значений, оцифрованных точно на вершине несущей частоты - там, где синусоида в каждом своем периоде достигает наибольшего значения. Оно и есть сдвиг на 90° градусов относительно старта синусоиды. А сами значения, собранные в буфере, и есть огибающая, представляющая собой модулированный сигнал. Достигнутая точность 0.1% от максимальной амплитуды несущей, но большего от 12-разрядного АЦП и не стоило ожидать, т.к. это 4 его дискреты.