Простой осциллограф двоичного сигнала на AVR
Когда нужно разобраться с каким нибудь неизвестным ИК пультом, автомобильным брелком или транспондером часто возникает необходимость в записи его сигнала. Задача как будто тривиальная не покажеться таковой когда вы намучаетесь наконец со всевозможными саундбластерами, примочками к LPT и COM порту и даже некоторыми промышленными осциллографами для PC. Проблема в точности измерения временных интервалов, объеме данных и в удобстве представления информации.
Не претендуя на решение проблемы привожу простую схему и программу для записи двоичного сигнала. Отображение сигнала на дисплее происходит в реальном времени благодаря пакету компонентов TeeChart в стандартной поставке Delphi 5, конкретнее компоненту FastLine.
Для работы программы нужна внешняя схема приведенная ниже. Схема была собрана из подручных материалов и ее задача формировать точные временные интервалы между отсчетами. Дискретность регулировки периода выборки определяется программой контроллера и равна 1,6276 мкс при кварце 11059200 Гц. Минимальный период выборки ограничиваеться скоростью последовательного интерфейса 115200 бит/с. Учитывая что на каждый байт приходиться 2-а служебных бита минимальный период выборки равен 1/92160 Гц. Максимальное количество отсчетов за одну развертку ограничено емкостью буфера компонента FastLine, который равет 200000 точек. Минимальня конфигурация компьютера на котором программа еще успешно работала, это Pentium MMX 200, 32 MB RAM, Win 98.
Для компиляции программы контроллера AVR нужен компилятор IAR C 2.26B
Для компиляции поекта на Delphi 5 нужны дополнительно компоненты RX Library 2.75.
В исходном тексте программы микроконтроллера найдете много лишнего в частности монитор реализующий следующие функции:
1.Чтение/запись памяти программ/данных
2.Заполнение памяти данных байтом
3.Тестирование PWM модуля
4.Тестирование ADC модуля
Схема считывателя сигнала
Экран программы
Прошивка для микроконтроллера тут, а исходник тут.
Программа для компа вот и исходник.
Автор: Александр Елисеев