191

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

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

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

Сначала был порыв снимать показания штатным 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.

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

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

Лига Радиолюбителей

1.5K постов10.1K подписчика

Правила сообщества

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

Постарайтесь не быть снобами в отношении новичков. Все мы когда-то ничего не знали и ничего не умели.

За попытку приплести политику или религию - предупреждение. 2 предупреждения - бан.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества