178

Осциллограф на stm32f303cbt6

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

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

Итак, все началось само собой с идеи - хотелось запилить себе небольшой приборчик, даже не столько для точного измерения сигналов сколько для их фактической регистрации, типа посмотреть дергается какая нибудь нога или линия или нет.

Сначала был порыв снимать показания штатным ADC микроконтроллера, и не делать экрана, а написать софт для отображения и передавать данные по USART или USB. В процессе разработки я передумал, и сделал внешний ADC и экранчик. При этом все же хотел сохранить возможность передачи данных на компьютер. Еще хотелось чтобы коэффициент входного делителя управлялся программно, а не всякими ручками и переключателями, по хорошему надо было делать дискретно, но после подключения экрана у меня уже не осталось ног микроконтроллера, и поэтому входной делитель состоит из одного JFET транзистора управляемого DAC микроконтроллера.


Теперь по порядку:


Начинаю с выбора компонентов и принципиальной схемы.

Компоненты:

ADC - ADS828E это одноканальный 10-ти битный преобразователь с максимальной частотой дискретизации в 100 MHz.

ОУ - AD8066 - достаточно быстрые Rail-To-Rail усилители с полевым входом. Микроконтроллер - stm32f303cbt6.

Источник отрицательного напряжения - LT1054.

Экран — эээм ну что-то непонятно-китайское 2.4 дюйма с надписью mcufriend, за 180 рублей, с ним кстати по факту возникло больше всего проблем.

Про всякую SMD мелочевку писать не буду тут и так все понятно.

Принципиальная схема устройства:

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
Ну а дальше дело техники, трассирую плату, я сделал двухстороннюю.
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

Дальше собственно делаю саму плату.

Кусок стеклотекстолита

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
Вырезаю под нужный размер, клею фоторезист, я использую ORDYL Alpha 340.
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
Печатаю фотошаблон
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
Засвечиваю и проявляю щелочью
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
Травлю, заклеив обратную сторону скотчем :-), главное не забыть. Для травления использую раствор лимонной кислоты + поваренная соль + гидропирит.
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
После повторяю все то же самое, но для другой стороны. Получается вот такая плата:
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

Наношу паяльную маску, у меня красного цвета, как раз в цвет китайского экранчика, удачно получилось :-). Сверлю отверстия.

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

Дальше распаиваю компоненты, и собираю все вместе, и тут меня ждала первая засада от mcufried. По наивности я полагал что пины на экранчике китайцы расположили по сетке в 100 mills(0.1 дюйма или 2.54 мм), но нет. Выругался, подогнул пины и с помощью доброго слова и плоскогубцев водрузил экран на место. Залил тестовую прошивку(контроллер завелся сразу без вопросов, что уже радовало), и… не заработало. А вот и вторая засада от китайцев, экранчик не хотел заводится ни с какой известной последовательностью инициализации для таких экранов, я уже было подумал что меня таки обманули, но после долгого и нудного гугления и поисков, все таки я нашел библиотеку Mcufriend_kbv, взял оттуда массив команд, и о чудо «It“s ALIVE!!».

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

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

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

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост
А ведь я не просто так повесил такт на PA8 на эту ногу можно вывести меандр с частотой системного такта то есть 72Mhz, что же жаль, но ничего не поделаешь. Тогда беру ногу PA10 это RX USART1(который я вывел на пины на всякий случай) и сажаю на нее такт через резистор на всякий случай.
Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

Вот он там так некрасиво висит.


После этого костыля ADC заработал как надо.

На оставшийся TX USART1(PA9) я вывел тестовый сигнал который также настраивается из интерфейса.

Осциллограф на stm32f303cbt6 Осциллограф, Stm32, Stm32f303, Libopencm3, Видео, Длиннопост

Прошивку писал на libopencm3.


Что получилось в результате:

1) Максимальная частота дискретизации 24MHz(так я и не осилил DMA).

2) Тестовый сигнал - частота 50Hz — 1MHz.

3) Диапазон измерений -25V — 25V.

4) Питание — USB.

Видео работы:

Спасибо за внимание.

Найдены возможные дубликаты

+9
Тс , какого жить с прямыми руками ?
раскрыть ветку 4
+7
Офигенно :-). Но сколько трудов стоило их выпрямить.
+3

А-а, вы тоже читали творчество Набокого?

раскрыть ветку 2
+3
Кого-кого?)
раскрыть ветку 1
+2

https://bitbucket.org/strelok1111/osciloscope_stm32/src - это код прошивки если кому интересно.

раскрыть ветку 3
0

Привет! Заинтересовала ваша прошивка, но увы адрес выдаёт ошибку. Не могли бы вы перезалить её в Яндекс диск? С уважением , Ростислав.

раскрыть ветку 1
0

Добрый вечер, битбакет вроде бы работает нормально. Но если надо то вот залил на яндекс диск https://yadi.sk/d/PGkHHV8xF3St8g

0
Ещё и опенсурс - респект!
Надо сразу заложить поддержку записи сигнала в csv и изображение на sd :)
+1

Папаня заказал китайца(кит набор)  на 5 МГц  что то около 1000 вышло. Реально собрать дешевый на 100МГц?

раскрыть ветку 11
0

можно ссылку на кит набор, или хотя бы название?
В пределах 1000 рублей с копейками я находил лишь dso138 и dso150, но у них макс частота 200 килогерц и то с натяжкой

0
В теории да. И мой может выдать столько надо множитель поднять и дма освоить, реально можно около 100 получить, но usb работать не будет.
раскрыть ветку 9
+1
Эмм, нет, я уже участвовал в разработки портативного осцила, на приеме был ф4 и то принимал он уже обработанный латтис (плис) сигнал (бпф)


Представь что такое хотяб 10МГц, это 12 бит х 100 Мсемплов = 1,2 Гбит/сек, но это только чистый поток, но судя по твоим словам ты хочешь стм самостоятельно отправить в это путешествие


Но если сигнал цифра то и 4 бита хватит в большинстве случаев, но ведь это осцил, а не логический анализатор

Иллюстрация к комментарию
раскрыть ветку 2
0
удивляюсь блин, и с дма разобрался и со всем почти что было на f030, без всяких либ вообще, только pdf, но другая проблема - не хватает воли добить уже несколько мелких багов и зарелизить....

а тут сразу осциллл.... поражаюсь!

раскрыть ветку 5
+1

Поздравляю!

Питание можно через li-pol АКБ реализовать (под дисплей по идее должен залезть).

Когда в корпус всё это дело переносить будешь, больше намучаешься.

P.S. Что за кнопка на плате с дисплеем слева?

раскрыть ветку 5
0
Можно, но надо еще преобразователь на 3.7 - 5 городить, в принципе меня и от USB питание устраивает. Корпус делать тоже не буду, зачем оно и так достаточно компактно и крепко держится, носить с собой не буду.

Это резет контроллера экрана... но не работает, китаец однако.

раскрыть ветку 4
0

dc-dc рублей 50

раскрыть ветку 3
0

Мне хотелось повторить ваш проект, с дисплеем параллельной шиной 8 бит . Но уже как у вас не получится, валялась ADS828 паянная, вчера проверил, не рабочая. Покупать за 2500, дороговато. Извините что побеспокоил.

0

М-да, попробовал перенести в кеил,не получается.

раскрыть ветку 1
0

Ну в конце концов если вы хотите повторить этот проект, то я могу собрать вам бинарник.

0

Добрый день. А исходников в КЕЙЛЕ у Вас нет?

раскрыть ветку 1
0

Добрый день. Нет, я линупсойд, писал в эклипсе. Собирал с помощью arm-none-eabi-gcc версии 5.4, ну соответсвенно подключив libopencm3.

0

Кому AD8066 кажется дороговастенькой можете AD8022 попробовать, они очень похожи

раскрыть ветку 7
0

А ещё ADS828E в России стоит от 2500 руб.. Автор, не дадите ссылки на али, а то смотрю—у вас совокупно 1000 руб. получилось..

раскрыть ветку 6
0

Ээ не, не стоит, все ОУ что я купил на али - поддельный мусор. Только в чип и дипе мне удалось нормальный усилок купить.

раскрыть ветку 5
0
Ну хоть кто-то сделал пост с нуля;) теперь я знаю как делаются платы;)
0

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

раскрыть ветку 1
0

Да уже смотри выше в каментах на битбакете лежит.

0

Сколько ушло времени на проект + реализацию?

раскрыть ветку 2
0

Если по чистому по вечерам - идея + подбор компонентов на али пару дней, месяц ожидания, дальше "блин я заказал ОУ с биполярным входом!!!!", заказ ОУ с полевым входом - месяц ожидания, Пару дней тыкание на макетке выяснение принципиальной возможности это сделать. День принципиальная схема, день трассировка, день изготовление платы, день пайка и дальше дня три пограммирования, в итоге чистыми где-то 2 недели.

раскрыть ветку 1
0

ясно, спасибо за описание

0
Ммм, а зачем тачскрин на осциллографе?
раскрыть ветку 2
0

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

раскрыть ветку 1
0
Понятно.
0

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

0
А где же стрелка?
раскрыть ветку 1
+2

Ахахаа, я ее отломал и Латыниной подарил на память.

0

Вай, мои поздравления!

всё ленюсь  подобного рода устройство собирать...

И сразу же вопросы, почему не использовать встроенный АЦП, он же 12 бит, и по опыту работы с ней(правда на f4 серии) довольно быстрый.


ну и конечно же)) Гитхаб! гитхаб вас ждёт) ну если входит в ваше видиние - поделиться данной разработкой

раскрыть ветку 5
+2
Спасибо. Ацп даже в 10 бит и то много для такого вида устройств. В f3 на самом максимуме 8 бит будет тоже 24 мегагерца. У меня на битбакете, но я уже пост редактировать не могу.
раскрыть ветку 4
0

а это интересно...

статейку найду, да и пожалуй повторю осциллограф. ибо заказывать за 8 тысяч не охото((


а почему бы не повысить точность, или рзрешающую способность? это я про 10-12 бит, и 24 мегагерца итоговых.

раскрыть ветку 3
0

ТС, много ли плюсов работы с libopencm3 супротив SPL? Всю жизнь с SPL работал, от Cube поплевался и забыл. И да, что за чудо-библиотека для отрисовки на дисплее? Самописная?

раскрыть ветку 5
+1
Плюс я щитаю только 1 - это ее понятность. Если честно от конструкций spl у меня моск скрипит :-). Чудо библиотека писана своими руками.
раскрыть ветку 4
+1

За свою библиотеку однозначно уважение. Да и вообще уровень хорош, творите и дальше :)

0

но SPL минимальна в конструкциях?

раскрыть ветку 2
0

Вопрос есть.

На али есть готовые уже платы осциллографы. примерно в таком же исполнении.
Не было ли экономнее купить такую и запилить туда свою прошивку?
Или это была просто сборка для себя? набить руку?

раскрыть ветку 2
+2

Да конечно, и у меня даже был такой DSO138, от него собственно и BNC коннектор и щуп. Но частота дискретизации 1MHz - это по факту + достаточно медленный ОУ на входе, даже по сравнению с моей поделкой - игрушка. И да конечно же опыт создания работающего устройства.

раскрыть ветку 1
+1

По идее это можно в описании написать, чтобы хейтеров не набегало.

-3
Объясните доходчиво нахрена это все
раскрыть ветку 2
+4

А зачем вообще все? Потому что могу :-).

раскрыть ветку 1
0

Как это зачем? Человек поделился своими знаниями - уже ПЛЮС!

Похожие посты
Похожие посты не найдены. Возможно, вас заинтересуют другие посты по тегам: