Есть желане сделать простейший двухканальный осицлоскоп на известной вам плате :) Вижу такой вариант:
1 Обязательно под ОС linux - иначе вопрос просто не интересен (больше для саморазвития - не думаю что такая игрушка реально понадобится :)
2 Драйвер chardev - наружу торчит буфер который можно смапить из пространства пользователя что предполагает простой доступ по любому адресу.
3 в ядре этот буфер заполняетcя данными из adc который перезапускается апапаратно таймером tc0, передача через pdc - процессор практически не нагружен.
4 режим работы adc - частота дискретизации, on/off задается из userspace (и возможно режим работы запускающего триггера) посредством ioctl
Есть вопросы по реализации
Стоит ли делать различные варианты запускающего триггера (для горизонтальной развеотки - если тут уместно такое название, для выбора начальной точки запуска) если да то какие ? Или достаточно реализовать какой-нибуть один - тогда какой ? Реально ли реализовать исследование сигнала с частотой много превышающей частоту дискретизации adc на основе какого-нибуть алгоритма который из замеров на протяжении нескольких периодов исходного сигнала воссоздаст исходный сигнал или нужно ограничивать входящий сигнал по частоте до половины частоты дисретизации ?
Интересуют любые мысли и пожелания, ссылки на ресурсы по теме так как я в этом полный профан :)
ИМХО алгоритмы синхронизации величайшее ноухау производителей осциллографов, номинально все опираются на пороговое значение сигнала но реально разглядеть чего-либо на LPT-шных приставках просто невозможно даже при малейших шумах на сигнале (хотя по слухам сейчас что то изменилось, опять же довод в пользу ухищрений алгоритма синхронизации).
Можно, так устроены все стробоскопическиие осциллографы, условие, аналоговая полоса до АЦП должна пропускать весь спектр. Хотя, может еще и сами АЦП для стробоскопических осциллографов так же имеют какие-то особенности, потому как сама входная часть "простого" АЦП может завалить "не нужную" полосу.
А вообще, со стробоскопическим осциллом работать очень неудобно, т.к. разглядеть что то на высоких частотах при наличии шумов не возможно ...
2 канала не получится. они должны _одновременно_ отдавать байтики. сделай один канал, потом посмотришь на сколько второй будет отставать при паралельном соединении входов.
триггер пока пересечение уровня сверху вниз и снизу вверх, остальное приложится.
стробоскопический метод подходит только для переодических сигналов. ну типа синус посмотреть с генератора. ФНЧ ставить обязательно, давить все выше половины дискретизации. ну и получится реально рассмотреть форму сингала Fдискретизации / 10. т.к. максимальная частота сэмплирования 5 МГц, то получим 500 кгц верхний потолок. можно еще такой ФНЧ поставить. подавления в 40 дБ для 8-м бит хватит. наглядно можно будет только оценить ФФТ (полоса в 2,5 МГц). навесить более быстрый АЦП не получится из-за низкой частоты дергания ногами камня. у меня получалось где-то 100-150 КГц.
на форуме roboclub почитай.
з.ы. и давай уже на "ты". тут все люди взрослые.
и, кста, какой дисплей? 132х132 =) сильно мало. 320х240 в тектрониксе моем для двух каналов тесновато.
только в случае со сторобоскопом, нужно уже ограничивать не по половине частоты дискретизации а по эффективной полосе (иначе, стробоскоп ничего не покажет).
Строго говоря, они умудряются синхронизироваться даже и при наличии шумов/апериодичности, до некоторого порога, потом просто один мусор на экране ...
Думаю для начала сделать хотя бы для прямоугольных импульсов, там все проще отловить переход 0,1 или 1,0 достаточно пары значений предистории сохранять, если хоть что-то видно будет можно и дальше ковырять :) Экран 130х130, размер 3х3 см, частота для встроенного ацп помоему около 300 кГц максимум - не особенно разбежишься...