image

Наблюдая за тем как работает мой мозг вдруг осознал, что он всегда ищет новизны и тем самым не дает мне покоя. А что, хорошо было бы, сделал какое-то дело и всё, с чувством полного удовлетворения можно расслабиться и отдохнуть.

Но к сожалению или к счастью так не бывает, как только заканчиваешь одно дело, он сразу придумывает другое, а еще чаще он придумывает новое занятие пока еще не закончил старое.
В этом как раз и кроется ответ на вопрос, почему у каждого разработчика куча собственных недоделанных проектов.

После написания прошлой статьи про осциллограф, мне написал engine9 и предложил сделать дизайн для следующего устройства. На тот момент мне было очень интересно сделать устройство с красивым дизайном более сложной архитектурой, поэтому решил запилить ослик на основе stm32f303vc с частотой сэмплирования 5M. По моим оценкам, уже имея опыт в разработке подобного устройства, это должно было занять не больше года, а по сути с перерывами заняло больше двух.

При разработке первой версии платы я допустил две ошибки, первая из них заключалась в неправильной разводке «земли» импульсного источника питания (ИИП). А именно, я соединил силовой земляной вывод микросхемы с цифровой землей. Как результат шумы по всей плате.

Как надо было?

А надо было выделить для него отдельную земляную трассу и провести ее непосредственно к источнику питания, не давая таким образом шумам гулять по плате.

А вторая ошибка дала о себе знать, благодаря первой, заключалась она в том, что полигоны аналоговой части в некоторых областях были слишком узки и обладали индуктивностью достаточной, для проявления помех от ИИП. Стоило продублировать узкие места полигона проводником, как шумы сразу же исчезали.

Думаю, что читающие эту статью понимают, что такое ИИП, но вряд ли все понимают, что такое аналоговая часть. Предлагаю этот момент рассмотреть чуть подробней.

Любой осциллограф обязательно должен содержать в себе АЦП и аналоговую часть кроме китайских.

У АЦП диапазон входных напряжений фиксирован, в моем случае, оно может измерять напряжение от 0 до 3V. А как же тогда измерить напряжение выходящее за диапазон АЦП, например синус с амплитудой 10V? Очень просто, для этого мы должны из 10V получить 1, 2, 2.5V то есть ослабить входной сигнал в определенное количество раз так, что бы он умещался в диапазон измерения АЦП. Думаю с этим все понятно.

А слабый сигнал например 10mV, можно напрямую подать на АЦП?

Можно конечно, но так как АЦП обладает определенной разрядность, сигналы с малой амплитудой будут искажаться и выглядеть не очень. Это можно сравнить с тем, как если попробовать собрать круг из 5 спичек, как ни крути, но круглый круг не получится!!!
Поэтому для получения более достоверной информации на экране, слабые сигналы усиливают. Получается, что аналоговая часть преобразует сигнал таким образом, чтобы АЦП мог обрабатывать его с минимальными потерями качества самого сигнала.

Сборка прототипа была завершена и нужно было приступать к написанию прошивки. Так как еще на этапе проектирования платы было принято решение сделать устройство максимально современным и оставить только одну кнопку включения, необходимо было научиться общаться на «ты» с резистивным тачскрином. Это оказалось просто, для вычисления точных координат точки касания, достаточно получить несколько точек за короткий период времени, я получаю 5, и вычислить среднее арифметическое.

На начальном этапе я знал, что главное меню будет содержать 4 окошка: осциллограф, преобразование Фурье, просмотр скриншотов и окошко about.
Но в процессе разработки добавились еще XY-mode, темы и генератор сигналов, который в этой версии платы не активен. В итоге главное меню прибора выглядит следующим образом.

image

Вход в любое окошко осуществляется по касанию стилусом, а выход по нажатию на кнопку включения или по нажатию стилусом на main menu.

Описывать каждый пункт меню в отдельности не буду, их можно будет рассмотреть на фотках))
Хотелось бы отметить, что обновляется прибор с sd карточки предварительно зашифрованной прошивкой.

image

image

image

image

image

image

image

image

image

Вступление такого характера было написано не просто так, самой сложной частью создания этого прибора стала борьба с самим собой, с той частью себя которая хотела бросить этот проект и знаться чем-то новеньким. Я нашел только один способ справиться с этим, а именно перестать думать о результате и просто сосредоточится на работе, одним словом расслабиться.

P.S. Это черновик был набросан еще в 2019 году и тогда не решился его опубликовать. Буквально на днях закончил прибор с таким же интерфейсом, но с внешним АЦП и частотой сэмплирования 110MHz.


P.P.S. Уже готова плата для нового дисплея с большим разрешением, но для нее нужен новый дизайн главного меню. Если у кого-то есть желание помочь с новым интерфейсом напишите пожалуйста в личку.

Update: Судя по комментариям, остается непонятным для чего использовать тачскрин на дисплее малого размера. Ответ очень прост, разработка корпуса стоит очень дорого. Из-за этого внешний вид устройства почти полностью зависит от корпуса, который удалось подобрать.
Что касается дисплея, есть много наработок с другими дисплеями, разного размера и разными интерфейсами, но использовать их в своих устройствах не представляется возможным.