Осциллограф atmega8 своими руками

Обновлено: 02.07.2024

С год назад надоело мне мучаться со старым глючным осциллом, и решил найти схемку простенького прибора на время.
Нашел на форуме Робоклуба, автор bodja.
Прибор простой и вполне достойный (если нет промышленного).
Вполне можно сделать автономным, чтобы вытащить в поле
Вот на фото пример замера с Clone AVR (вверху клон, ниже осциллограммы)
На нижнем экране осциллограмма с помехой (потому что проба проходила без щупа, с простыми проводками).

Прибор как альтернатива, а не панацея, теперь подарил его другу, а себе приобрел промышленный.
P.S.: Надеюсь тему создал где надо.

В догонку.
К осциллу само собой нужен еще генератор, вот отличная схема.
Прежде чем собирать потусовался по их форуму, и заметил там посты от /RR/, с нашего форума.
Он тоже собрал прибор, посмотрев на его конструкцию корпуса истек слюнями (да и буржуи там в восторге от его варианта)

Было дело
Кнопки плохо написаны - несколько сработок на 1 нажатие часто случается. Руки всё не дойдут переписать.

/RR/, а вы не пробовали подтягивающие резисторы по шине клавиатуры поставить по 4,7-10к на + питания, вроде как постабильней, пашет, и если использовать кнопки резиновые с графитовым покрытием (с сопротивлением повыше), тоже получше работает.

_________________
Доброй ночи и удачи!

Да, это всё понятно. Можно попробовать в принципе. Просто программно это ещё проще и надёжнее получится.
Кнопки уже не поменяешь - конструкция законченная - ломать рука не поднимется.

В этой статье мы рассмотрим создание самодельного (DIY) осциллографа на основе платы Arduino и ЖК графического дисплея 128x64, способного работать в диапазоне от 10 Гц до 50 кГц. Это достаточно широкий диапазон, причем наш осциллограф не будет использовать внешний АЦП (аналогово-цифровой преобразователь), только плату Arduino.

Внешний вид осциллографа 10 Гц – 50 кГц на Arduino Nano

Результаты работы осциллографа будут отображаться на сравнительно большом ЖК дисплее (ST7920) с разрешением 128x64 пикселов. Область для вывода результатов измерений будет иметь размер 96x64, а размер информационной области будет составлять 32x64 пикселов.

Также на нашем сайте вы можете посмотреть проект осциллографа на основе платы Arduino с выводом изображения на экран компьютера.

Необходимые компоненты

  1. Плата Arduino Nano R3 (купить на AliExpress).
  2. Конденсатор 100 мкФ (купить на AliExpress).
  3. ST7920 LCD 128x64 (графический ЖК дисплей) (купить на AliExpress).
  4. Потенциометр (2 шт.) (купить на AliExpress).
  5. Кнопочный переключатель, мгновенный (Momentary) (3 шт.).

Стоимость комплектующих для сборки данного осциллографа, как вы можете видеть, сравнительно небольшая. Если вы раньше не работали с графическим дисплеем, используемом в данном проекте, то на нашем сайте вы можете прочитать статью про подключение графического ЖК дисплея ST7920 к плате Arduino.

Работа схемы

Схема осциллографа 10 Гц – 50 кГц на основе платы Arduino Nano и ЖК дисплея ST7920 представлена на следующем рисунке.

Схема осциллографа 10 Гц – 50 кГц на основе платы Arduino Nano и ЖК дисплея ST7920

Данный осциллограф будет обладать следующими особенностями:

  • автоспуск (дисплей очень стабильный);
  • скорость сканирования: 0.02ms/div~10ms/div, 9 уровней отображения;
  • функция удержания (Hold function): "замораживает" изображение на экране дисплея.

Первоначально подобный осциллограф был описан в блоге Wu Hanqing, но автор этого проекта внес в него небольшие изменения. Как можно видеть из представленного в конце статьи видео, осциилограф обеспечивает достаточно четкую картинку на сравнительно большом экране, хорошо работает автопуск. Вертикальная позиция изображения регулируется с помощью потенциометра 50 кОм, для управления контрастностью дисплея используется потенциометр 10 кОм. Нами осциллограф протестирован с помощью генератора синусоидальных и прямоугольных импульсов.

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

Здраствуйте. Меня зовут Сергей ,я пишу по какому поводу до вас.
Затеял я сделать осцылограф на ATMAGA8 и ls020 дисплеем от Siemens .
При программировании контроллера poniprog поставил не те фузы и ATMEGA8 болше не отзывается,
что мне делать, и чи будет оно работать.


Присоединённое изображение (Нажмите для увеличения)

QUOTE (seroga.pod @ Nov 18 2012, 02:09 AM)
Здраствуйте. Меня зовут Сергей ,я пишу по какому поводу до вас.
Затеял я сделать осцылограф на ATMAGA8 и ls020 дисплеем от Siemens .
При программировании контроллера poniprog поставил не те фузы и ATMEGA8 болше не отзывается,
что мне делать, и чи будет оно работать.


искать параллельный программатор, и восстановить с его помощью фузы. Мк не умер, он просто немного "в коме"

До параллельного программатора можно попробовать подать прямоугольные, тактовые импульсы 1-10 МГц с внешнего генератора на один из входов микроконтроллера, к которым подключается кварцевый резонатор и при этом попытаться прошить. Подробнее можно узнать из даташита на данный контроллер. Если не поможет, значит параллельный программатор - ваш единственный выход.

многие лочили МК, вот я например 1 раз в жизни залочил, теперь внимательно смотрю что ставить а что не трогать.


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

Спасибо за информацию ,буду пытаться реанимировать или покупать новою.
А схема реально рабочая ,скажыте пожалуста?

TDA - The Digital Audio
Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.


Полностью согласен что обсуждаемый ослик должен быть народным-простым в изготовлении и настройке,посидел,почитал
1,8 TFT SPI 128x160 V1.1 на ST7735 у меня нет-закажу
LS020 давно не доставаем
5110 мало разрешение,но можно стартануть с него-есть у многих,со временем придут ili9341-довольно хороший дисплей,размеры бывают разные но главнее разрешение

Не совсем понял про входную часть-диапазоны коммутируем переключателем?
Посмотрел схему "Хамелеон легкий"-вполне хороший вариант для адаптации под атмега328,только переделать обвязку мср6022 для выравнивания АЧХ до 1 МГц-на коте это описано как

Да. Просто механическими переключателями. Самые доступные на три положения. Нужно коммутировать две цепи. Т.е. переключатели 3 х 2.

У Хамелеона есть еще один недостаток, кроме сложности. Как я понял из обзоров, частота развертки у него недостаточна.
В частности Бодрый 2014 в своем обзоре показывал синусоиду 500 кгц и она на дисплее показывала уже несколько периодов.
Если для сигнала простой формы 2, 3, 5 периодов на дисплее еще позволяет что-то рассмотреть, то сигнал сложнее формой уже вряд ли. А 10 периодов на дисплее уже и для синусоиды перебор.
Нужна еще как минимум одна -две ступени в сторону быстрых разверток.

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

Про дисплеи я подумаю. Вполне возможно закажу такой как у вас. Только чуть позже. Свой финансовый лимит я пока исчерпал с лихвой. И идут до меня посылки от 1,5 до 2 месяцев.

Бегло посмотрел фото платы "Хамелеон". Если правильно понял, мультиплексор там стоит и скорее всего миниатюрные электронные реле если правильно помню. Для меня это обстоятельство ставит точку на Хамелеоне.
Я этим путем не пойду.
Это одна из причин, зачем я делал эти три обзора - убедить новых разработчиков отказаться от автоматики такого рода.
И, кстати, чистая механика сильно упростит програмную часть.

По входной части, как я это вижу и реализовал.
Ослик имеет фиксированную програмную чувствительность. Никаких переключений програмно. (допустимо в принципе растяжка по вертикали раза в 2-3) Видим амплитуду скажем 2,5 деления на дисплее, бросаем взгляд на положение переключателей, "ага диапазон 1 в/дел, дополнительный множитель на 2 т.е, 2 в/дел. Итого 2х2,5 = 5 вольт амплитуды."

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

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

Вы естественно в праве делать Хамелеон №2.

тоже поддерживаю замену мультиплексеров на мех переключатели потому как даст массу преимуществ в настройке каждого отдельного диапазона, минус контролер не будет знать какой диапазон выбран и показание вольтметров сигнала будет заведомо неправильным (насколько помню в осце с электрика под цели "отдупления" контролера выделили аж три ноги что в варианте с атмегой328 будет расточительством)
по поводу частотного диапазона боюсь атмега все же слаба,для повышения диапазона вариант стробоскопической выборки что тоже не позволит "расмотреть" сложный сигнал да и доступные ОУ оставляют желать лучшего,потому мое видение по максиму реализовать правильность формы иследуемого сигнала 1-2МГц а выше скорей как пробник частотомер наличия сигнала (честно сказать DSS31 практически так и работает)


Ну "родная частогта меги 32 вобще 16 МГц.
Мега 328 - 20 МГц.
Можно ли ее гнать и нужно ли, это вопрос.
Как я понимаю, с мегой 328 -20 МГц мы выходим на 4-5 мегасэмплов.
Разгонять ее как мегу 32 в электрике, или нет - пока вопрос.
В электрике 9 мегасэмплов.
Насколько я знаю, мега 328 вполне гонится. Даже просто с кварцем. в Пультоскопе Бодрый 2014 ставил 27 МГц. При этом возникли проблемы с AREF. Надо моделировать - пробовать.
Переход на СТМ?
Ну возможно.
Для начинающих реально? Не знаю.
Сколько ардуинок (Мег 328) завтра будет валяться по углам без толку?

Переход на СТМ?
Ну возможно.
Для начинающих реально? Не знаю.
Сколько ардуинок (Мег 328) завтра будет валяться по углам без толку?

честно сказать начинающим СТМ больше нравятся в плане прошивки по сравнению с атмегой и особенно фьюзами,да и доступность отладочного 103 модуля дешевле про мини ардуины 328
то что ардуинки будут без дела валятся не соглашусь,для цыфрового осца под все потребности просто мало ног

тут скорей добится максимально упрощенный вариант качественного осца пробника на атмега328, тоесть перевод всей автоматики на механику что освободит 4 ноги(3вывода на мултиплексер и 1нога с оптики "откр-закр" вход и в зависимости от варианта схемотехники еще 1 нога с реле входного аттенюатора)
с вольтметрами измеряемого сигнала можно поступить "нафигачив" светодиодов индикации "деления-умножения" показаний на дисплее на выбраный диапазон мех переключателя
а так по частоте он не "перепрыгнет" все известные на сегодня осцилографы на атмегах,хотелось бы просто "отжать" приемлемый максимум


итак-экран 5110,разрешение 84x48
Допустим стоит кварц 27 МГц,максимально быстрый опрос порта,к которому подклечен ацп,3 такта или 3/27=1/9 мксек-это на писел по горизонтали,на все 84 пикс (3/27)*84=9,333 мксек
если на экране полный период то это частота 1/9,333=0,107 МГц или 107 кГц
для 2 периодов 2*107=214 кГц,для 4*107=421 кГц
можно сделать растяжение сигнала как у хамелеона-посмотрим ол ходу
сейчас дело в схеме,вчера нарисовал плату 5110+атмега328+AD9280,без входного оу,это базовая схема,на ней испытаю первые прошивки и выложу результат,генератор у меня один с кота
осталось придумать входной узел,количество и назначение кнопок
Схема примерная,на ваш суд


Не соглашусь. VirtOS_VetalST вполне хватает. Причем можно освободить две ноги связанные с виртуальной землей и смещением на АРЕФ.

Я сделал электрика в своем варианте входа. Уже с десяток реальных использований. Никаких проблем. Доволен выбраным решением.

Смотрите: Схема, в которую мы лезем (импульсник, шим и т.д.) мы в целом представляем заранее, что там должно быть. И измерение амплитуды, особенно точное, нам требуется далеко не всегда. Превышение (зашкаливание сигнала) не опасно благодаря защитным диодным сборкам.
А если что-то идет не так и требуется замерить амплитуду (помехи например), то уже смотрим положение движков переключателей.
Я на практике никаких сложностей не ощутил, не смотря на то, что ослик еще не окрашен и нет надписей. Просто помню одно значение стартовой чувствительности 50 мВ/дел. от нее и пляшу.

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

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

Это именно тот случай, когда я совершенно уверен в правильности выбранного направления.
А моя техническая интуиция не подводила меня никогда. Тем более она подкреплена немалым практическим опытом. 9 конструкций только в этих обзорах, опробованных РЕАЛЬНО.
Есль ли шанс, что я сильно неправ? Теоретически да. На практике весьма маловероятно.
Впрочем успех в этом деле в данном случае зависит скорее от Булата, чем от меня и львиную долю работы придется проделать ему. Прошивка - куда более трудоемкая штука, чем все остальное.

К сожалению я не силен в аналоговых цепях,я имею ввиду входную часть,можно конечно скопировать наиболее удачный вариант от другого осцилла
Ног более чем достаточно,при умении можно подключить сотню кнопок и и столько же линий управления,но у нас один полный portd,portb -а именно b3 и b5 для жки(sda и scl),остальные можно менять местами
да и шим оставил-portb1,на всякий пожарный(установка 0 в оу)
плата,надеюсь без косяков

И знаете, хотя эту мысль я озвучил, как крайний случай, но что-то в этом есть. Да не столь дешевый АЦП и не столь дешевый ОУ с этим дисплеем выглядят перебором, но общедоступность.

булат, Приношу свои извинения, что и это пришлось сделать вам. Мне тут сейчас немного не с руки.
И булат, я должен вас предупредить, что я такое. Громадный практический опыт. Но я самоучка как радиолюбитель. Т.е. то, что знаю, знаю на хорошем уровне, но это пятна, между которыми большие пробелы. Составить схему и пояснить работу я не могу.
В програмировании я практически 0.
Даже те схемы, что я составлял, были лишь компиляциями чужих схем.

Единственное отличие по схеме, я буду использовать ICL7660 в преобразователе отрицательного напряжения. Просто они у меня есть. ДИП, но есть. Приляпаю их как СМДшки, разводка одна, просто крупнее немного. И на нее придется лепить кучу фильтров. На Электрике столкнулся с этим. Там у меня трехступенчатый LC фильтр.
Если есть, сбросьте схему в спран7, легче будет дорисовывать. Если нет - нарисую, не проблема.
А вот с кнопками надо подумать.
Сейчас попробую сформулировать мысли по алгоритмам работы и управления и напишу чуть ниже.

Кстати, когда я писал о простом ослике, я представлял схему VirtOS. Просто с исключенными некоторыми элементами.


В статье представлено описание графического регистратора напряжения на основе микроконтроллера ATmega8 и его внутреннего АЦП. Это устройство аля цифровой осциллограф, однако, ему не хватает многих функций осциллографа, главным образом из-за ограничения частоты измерения. Микроконтроллер тактируется от внешнего кристалла частотой 16MHz. Прибор выполнен в виде портативного устройства диагностики. Он служит в качестве осциллографа, но также может быть использован в качестве вольтметра.

В начале разработки устройства было запланировано переключение входного делителя напряжения с коэффициентами 1/25, 1/12.5, 1/5 и 1/1, но из-за сложностей в коде для автоматического переключения делителей и использования переключающих транзисторов эта идея с треском провалилась, поэтому я оставил один делитель с коэффициентом 1:12.5, таким образом, диапазон измерения составляет от 0 до 62V. В связи с ограничениями по частоте и АЦП разрешением в 10 бит, тесты показали правильное измерение частоты сигнала до 2кHz(при низком напряжении, но например, этого будет достаточно чтобы проверить качество стабилизации напряжения в автомобиле и т.д.).

Управляющая программа написана на языке C. Atmega8 используется в корпусе TQFP-32. Печатная плата сделана под компоненты в SMD корпусах. Питается устройство от 9В батареи, стабилизатор регулирует напряжение до 5 В, потребление электроэнергии 10 мА. Плата осциллографа и дисплей помещаются в подходящий для этого корпус.


При включении устройство показывает стартовый экран(имя устройства, автора и дату исполнения) и сразу же переходит в режим отображения сигнала измерения. В нижней части экрана отображается период сигнала (в ms при полной ширине) и амплитуда сигнала в Вольтах. Нет необходимости регулировки усиления по высоте (Y), так как осциллограмма сама регулируется по высоте экрана (максимальное измеренное значение будет в верхней части, другие измерения пропорционально). Используйте кнопки "Влево" и "Вправо" для изменения периода времени и кнопку "ОК" для остановки измерения, чтобы отображение на ЖК-дисплее стабилизировалась. После нажатия на кнопку "ОК" устройство снова возвращается в режим динамической визуализации. Вы также можете измерить период и частоту сигнала для этого необходимо стабилизировать изображение, нажав кнопку"ОК", нажать кнопку "Влево", после этого будет виден курсор, который можно смещать кнопками влево или вправо, затем снова нажать кнопку "ОК", появиться второй курсор, который тоже можно двигать влево или вправо, при это внизу экрана будет отображаться значения периода измеренного сигнала. При нажатии на кнопку "ОК" еще раз будет видна частота сигнала. Чтобы вернуться в режим динамической визуализации необходимо еще раз нажать на кнопку "ОК".

Читайте также: