Добрый день, сегодня я хочу поделится процессом создания самодельного осциллографа на основе радиоэлектронных элементов заказанных на одном известном китайском сайте.
Итак, все началось само собой с идеи - хотелось запилить себе небольшой приборчик, даже не столько для точного измерения сигналов сколько для их фактической регистрации, типа посмотреть дергается какая нибудь нога или линия или нет.
Сначала был порыв снимать показания штатным ADC микроконтроллера, и не делать экрана, а написать софт для отображения и передавать данные по USART или USB. В процессе разработки я передумал, и сделал внешний ADC и экранчик. При этом все же хотел сохранить возможность передачи данных на компьютер. Еще хотелось чтобы коэффициент входного делителя управлялся программно, а не всякими ручками и переключателями, по хорошему надо было делать дискретно, но после подключения экрана у меня уже не осталось ног микроконтроллера, и поэтому входной делитель состоит из одного JFET транзистора управляемого DAC микроконтроллера.
Теперь по порядку:
Начинаю с выбора компонентов и принципиальной схемы.
Компоненты:
ADC - ADS828E это одноканальный 10-ти битный преобразователь с максимальной частотой дискретизации в 100 MHz.
ОУ - AD8066 - достаточно быстрые Rail-To-Rail усилители с полевым входом. Микроконтроллер - stm32f303cbt6.
Источник отрицательного напряжения - LT1054.
Экран — эээм ну что-то непонятно-китайское 2.4 дюйма с надписью mcufriend, за 180 рублей, с ним кстати по факту возникло больше всего проблем.
Про всякую SMD мелочевку писать не буду тут и так все понятно.
Принципиальная схема устройства:
Ну а дальше дело техники, трассирую плату, я сделал двухстороннюю.
Дальше собственно делаю саму плату.
Кусок стеклотекстолита
Вырезаю под нужный размер, клею фоторезист, я использую ORDYL Alpha 340.
Печатаю фотошаблон
Засвечиваю и проявляю щелочью
Травлю, заклеив обратную сторону скотчем :-), главное не забыть. Для травления использую раствор лимонной кислоты + поваренная соль + гидропирит.
После повторяю все то же самое, но для другой стороны. Получается вот такая плата:
Наношу паяльную маску, у меня красного цвета, как раз в цвет китайского экранчика, удачно получилось :-). Сверлю отверстия.
Дальше распаиваю компоненты, и собираю все вместе, и тут меня ждала первая засада от mcufried. По наивности я полагал что пины на экранчике китайцы расположили по сетке в 100 mills(0.1 дюйма или 2.54 мм), но нет. Выругался, подогнул пины и с помощью доброго слова и плоскогубцев водрузил экран на место. Залил тестовую прошивку(контроллер завелся сразу без вопросов, что уже радовало), и… не заработало. А вот и вторая засада от китайцев, экранчик не хотел заводится ни с какой известной последовательностью инициализации для таких экранов, я уже было подумал что меня таки обманули, но после долгого и нудного гугления и поисков, все таки я нашел библиотеку Mcufriend_kbv, взял оттуда массив команд, и о чудо «It“s ALIVE!!».
Вот так выглядит устройство в сборе, да я знаю края не ровные и есть неопрятные места, но чукча программист и особо красиво делать не умеет.
Стал писать прошивку дальше, снимаю показания с ADC и тишина, на экране абсолютно ровная линия, причем после каждого выключения питания немного в разном месте, странно. Возникло ощущение что на преобразователь не приходит тактовый сигнал, тыкаю мультиметром и понимаю что закоротил линию такта ADC на землю, и от этого выгорела нога микроконтроллера(хорошо хоть не весь порт)
А ведь я не просто так повесил такт на PA8 на эту ногу можно вывести меандр с частотой системного такта то есть 72Mhz, что же жаль, но ничего не поделаешь. Тогда беру ногу PA10 это RX USART1(который я вывел на пины на всякий случай) и сажаю на нее такт через резистор на всякий случай.
Вот он там так некрасиво висит.
После этого костыля ADC заработал как надо.
На оставшийся TX USART1(PA9) я вывел тестовый сигнал который также настраивается из интерфейса.
Прошивку писал на libopencm3.
Что получилось в результате:
1) Максимальная частота дискретизации 24MHz(так я и не осилил DMA).
2) Тестовый сигнал - частота 50Hz — 1MHz.
3) Диапазон измерений -25V — 25V.
4) Питание — USB.
Видео работы: