Наблюдая за тем как работает мой мозг вдруг осознал, что он всегда ищет новизны и тем самым не дает мне покоя. А что, хорошо было бы, сделал какое-то дело и всё, с чувством полного удовлетворения можно расслабиться и отдохнуть.
Но к сожалению или к счастью так не бывает, как только заканчиваешь одно дело, он сразу придумывает другое, а еще чаще он придумывает новое занятие пока еще не закончил старое.
В этом как раз и кроется ответ на вопрос, почему у каждого разработчика куча собственных недоделанных проектов.
После написания прошлой статьи про осциллограф, мне написал engine9 и предложил сделать дизайн для следующего устройства. На тот момент мне было очень интересно сделать устройство с
При разработке первой версии платы я допустил две ошибки, первая из них заключалась в неправильной разводке «земли» импульсного источника питания (ИИП). А именно, я соединил силовой земляной вывод микросхемы с цифровой землей. Как результат шумы по всей плате.
Как надо было?
А надо было выделить для него отдельную земляную трассу и провести ее непосредственно к источнику питания, не давая таким образом шумам гулять по плате.
А вторая ошибка дала о себе знать, благодаря первой, заключалась она в том, что полигоны аналоговой части в некоторых областях были слишком узки и обладали индуктивностью достаточной, для проявления помех от ИИП. Стоило продублировать узкие места полигона проводником, как шумы сразу же исчезали.
Думаю, что читающие эту статью понимают, что такое ИИП, но вряд ли все понимают, что такое аналоговая часть. Предлагаю этот момент рассмотреть чуть подробней.
Любой осциллограф обязательно должен содержать в себе АЦП и аналоговую часть
У АЦП диапазон входных напряжений фиксирован, в моем случае, оно может измерять напряжение от 0 до 3V. А как же тогда измерить напряжение выходящее за диапазон АЦП, например синус с амплитудой 10V? Очень просто, для этого мы должны из 10V получить 1, 2, 2.5V то есть ослабить входной сигнал в определенное количество раз так, что бы он умещался в диапазон измерения АЦП. Думаю с этим все понятно.
А слабый сигнал например 10mV, можно напрямую подать на АЦП?
Можно конечно, но так как АЦП обладает определенной разрядность, сигналы с малой амплитудой будут искажаться и выглядеть не очень. Это можно сравнить с тем, как если попробовать собрать круг из 5 спичек, как ни крути, но круглый круг не получится!!!
Поэтому для получения более достоверной информации на экране, слабые сигналы усиливают. Получается, что аналоговая часть преобразует сигнал таким образом, чтобы АЦП мог обрабатывать его с минимальными потерями качества самого сигнала.
Сборка прототипа была завершена и нужно было приступать к написанию прошивки. Так как еще на этапе проектирования платы было принято решение сделать устройство максимально современным и оставить только одну кнопку включения, необходимо было научиться общаться на «ты» с резистивным тачскрином. Это оказалось просто, для вычисления точных координат точки касания, достаточно получить несколько точек за короткий период времени, я получаю 5, и вычислить среднее арифметическое.
На начальном этапе я знал, что главное меню будет содержать 4 окошка: осциллограф, преобразование Фурье, просмотр скриншотов и окошко about.
Но в процессе разработки добавились еще XY-mode, темы и генератор сигналов, который в этой версии платы не активен. В итоге главное меню прибора выглядит следующим образом.
Вход в любое окошко осуществляется по касанию стилусом, а выход по нажатию на кнопку включения или по нажатию стилусом на main menu.
Описывать каждый пункт меню в отдельности не буду, их можно будет рассмотреть на фотках))
Хотелось бы отметить, что обновляется прибор с sd карточки предварительно зашифрованной прошивкой.
Вступление такого характера было написано не просто так, самой сложной частью создания этого прибора стала борьба с самим собой, с той частью себя которая хотела бросить этот проект и знаться чем-то новеньким. Я нашел только один способ справиться с этим, а именно перестать думать о результате и просто сосредоточится на работе, одним словом расслабиться.
P.S. Это черновик был набросан еще в 2019 году и тогда не решился его опубликовать. Буквально на днях закончил прибор с таким же интерфейсом, но с внешним АЦП и частотой сэмплирования 110MHz.
P.P.S. Уже готова плата для нового дисплея с большим разрешением, но для нее нужен новый дизайн главного меню. Если у кого-то есть желание помочь с новым интерфейсом напишите пожалуйста в личку.
Update: Судя по комментариям, остается непонятным для чего использовать тачскрин на дисплее малого размера. Ответ очень прост, разработка корпуса стоит очень дорого. Из-за этого внешний вид устройства почти полностью зависит от корпуса, который удалось подобрать.
Что касается дисплея, есть много наработок с другими дисплеями, разного размера и разными интерфейсами, но использовать их в своих устройствах не представляется возможным.
Nick_Shl
Схема триггера осталась такой же?
baghear Автор
По сути да, но вместо ОУ был установлен быстрый компаратор.
Nick_Shl
Зачем??? Это оверинжингеринг — эта часть абсолютно лишняя. Курите даташит по фразе «Analog Watchdog» — триггер можно сделать программно без внешних компонентов.
VolodjaT
Так уровень триггера может быть очень маленьким — 10 милливольт, например. Как без операционника тут?
Nick_Shl
Уровень триггера не может быть "очень маленьким" — он зависит от выбранного диапазона. Вам же ведь сигнал смотреть надо — если сигнал весь будет околонулевой вы ничего не увидите. Вот для приведения входного диапазона(скажем 0...20мВ) к тому, что может переварить ADC микроконтроллера(0...3В) и нужен операционник. А дальше настраиваете Analog Watchdog на 0xFFF/2 и вот он ваш триггер в 10мв.
Отдельный компаратор который сравнивает сглаженный PWM от микроконтроллера с входным сигналом и выдаёт прерывание в микроконтроллер — это лишнее. А поскольку каналов два, то и компараторов надо два.
baghear Автор
Как Вы себе представляете реализацию четкой сихронизации осциллограммы на дисплее, при сэмлировании внешнего АЦП с частотой 55МГц, при том, что внутреннее АЦП микроконтроллера молотит 2,4MHz, на сколько помню?
Пока внутреннее АЦП будет обрабатывать 1 отсчет, внешнее выдаст 20!!!
Берем сигнал 7МHz и подаем его на АЦП которое молотит 2,4MHz. Что мы получим?
Для того, чтобы реализовать Вашу идею АЦП должно быть в состоянии обрабатывать сигнал!!! Кроме того, после установки флага AWD необходимо сделать еще одно преобразование, чтобы понять по какому фронту установился флаг. И если флаг установился не по интересующему нас фронту, то выходим с прерывания и снова ждем)))
Nick_Shl
55 МГц? Где?
5 мегасемплов легко и непринуждённо достигаются внутренним АЦП микроконтроллера. Далее вы пишите:Что опять же говорит, что в данном осциллографе использовался внутренний АЦП микроконтроллера.