Управляем чем угодно откуда угодно

Осциллограф: proof-of-concept

Кто что сделал и кто что собирается делать

Осциллограф: proof-of-concept

Сообщение eagafonov » 05 фев 2015, 02:28

КДПВ

v2r_osciloscope_pwm_24000_60000_1.png
v2r_osciloscope_pwm_24000_60000_1.png (9.61 КБ) Просмотров: 7991


Пока аноанс, отчёт и код чуть позже.

Давно крутилась в голове идея организовать себе цифровой DIY осциллограф, да не было повода. Недавно повод появился, и вот что получилось за два вечера.

Маленькая прога на основе adc_read читает семплы с ADC, запаковывает в пакет и отправляет по UDP на адрес компа. Подключение USB-net

Сначала думал реализовать драйвер, для sigrok, но потом решил, что для proof-of-concept это будет перебор.

В итоге, визуальная часть написана на питоне + pygame за вечер. В коде присутсвует много желудей, спичек и синей изоленты.

На картинке - выхлоп pwm3 (echo pwm 3 24000 60000 > /dev/v2r_pins), что соответсвует ширине импульса 1 мс
Видно, что импульсы отображены с разной шириной. Пока я не понял, кто в этом виноват - ADC, прога на виртурилке или ядрёный драйвер.

В планах реализовать отображение остальных каналов, автоматическое определение sample-rate'а и нормальная сетка и определение фронта-сапада, что бы меандр по экрану не бегал.

По ходу ковыряния c ADC возникло пара вопросов.

Первый: на какой частоте работает ADC? В Вики что-то не нашёл этой инфы. В даташитах за час ковыряния не нашёл. Замеры показывают, что семплы валятся примерно с частотой 24кГц. но есть пдознение, что это ограничено производительностью CPU скорее, чем частотой ADC. Это вытекает из второго вопроса.

Второй вопрос возник после втыкания в даташит на ADC и в код ядрёного модуля v2r_adc

adc_read_block() вызывает adc_single() в цикле.

Каждый вызов adc_single() стартует цикл ADC, ждёт окончания и вычитывает значение одного канала.
В режиме free-run в регистрах ADC по идее уже должны быть какие-то значения. Вопрос собственно в том - вычитываются ли эти значения или каждый вызов adc_single стартует новый цикл ADC. Есть подозрение, что всё таки второе.

По идее, в режиме free-run драйвер должен ловить прерывания от ADC и устройство должно поддерживать poll/epoll.

Stay tuned!
Аватара пользователя
eagafonov
 
Сообщения: 175
Зарегистрирован: 18 сен 2013, 23:39
Откуда: Нижненовгородск

Re: Осциллограф: proof-of-concept

Сообщение pek » 10 мар 2016, 13:41

Готов потестить. Мне нужен осцилл на несколько каналов.
Снимать напряжение, ток, мерить давление воздуха в нескольких местах.
pek
 
Сообщения: 28
Зарегистрирован: 12 ноя 2013, 14:26


Вернуться в Проекты на базе Виртурилки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron