Осциллограф на микроконтроллере ATMEGA32А

Поскольку интегрированный в микроконтроллер АЦП довольно медленный, было принято решение использовать внешний скоростной АЦП AD9280. В качестве дисплея используется WG12864A (128*64). Прошивка написана на С в компиляторе MikroC pro for AVR 5.60.

Характеристики осциллографа:

- Входное сопротивление 100 кОм;

- Максимальная частота дискретизации 9 МГц;

- Минимальная частота 25 Гц;

- Максимальная частота 500 кГц;

- Минимальное напряжение +/- 0,25 В;

- Максимальное напряжение +/- 25 В;

- Напряжение питания 9 В;

Осциллограф на микроконтроллере ATMEGA32А

  С правой стороны на экране отображается амплитудное значение напряжения, среднеквадратическое значение напряжения, частота в кГц, тип синхронизации и делитель. ATMEGA32 работает на повышенной частоте 26,601712 МГц. Кварц выпаял с денди. Для стабильной работы ATMEGA32 питается повышенным напряжением 5,4 В. Для этого в минусовой вывод стабилизатора 7805 впаяно 2 диода Шоттки с падением на каждом 0,2 В. Если ATMEGA32 не будет стабильно работать на 26,601712 МГц, можно поставить кварц на 20 МГц или поставить внешний генератор на 32 МГц. При частотах, отличных от 26,601712 МГц необходимо изменить частоту в настройках проекта и подобрать другие константы для подсчета частоты. Стабилизатор 7805 необходимо поставить на радиатор. В качестве входного разъема используется ззвуковой 3,5 мм. Микросхема ICL7660 делает отрицательное напряжение -5,4 В, которое необходимо для питания ОУ и для смещения переменного сигнала в плюсовой диапазон. В качестве ОУ я использовал LM358, питал его напряжением 6,5 В от стабилитрона. LM358 сильно искажает сигнал на частотах выше 20 кГц. Прямоугольные импульсы на высоких частотах можно увидеть на фото.

Осциллограф на микроконтроллере ATMEGA32А

 ОУ необходимо использовать с частотой 10 МГц. Возможно, подойдет lm833. Если ОУ будет rail-to-rail, то можно питать его от 5,4 V. Например, MCP6H92.  

Диапазоны переключаются трехпозиционным переключателем -  1:1 (25 V); 1:4 (10 V); 1:10 (2,5 V).

 

Для управления осциллографом используется 5 клавиш. Клавиши вверх/вниз используются для установления развертки по амплитуде. Клавиши влево/вправо предназначены для изменения частоты виборок АЦП. Центральная клавиша используется для входа в меню. В первом пункте выбирается тип отображения осциллограммы: по точкам или по линиям. Во втором пункте выставляется делитель в зависимости от переключателя диапазонов напряжения. Он необходим для правильного отображения напряжения. В третьем пункте выбирается тип синхронизации: по максимуму, по спаду фронта, переход через ноль.

Осциллограф на микроконтроллере ATMEGA32А

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

 

Осциллограф на микроконтроллере ATMEGA32А

 

Осциллограф на микроконтроллере ATMEGA32А

 

Осциллограф на микроконтроллере ATMEGA32А

 

Осциллограф на микроконтроллере ATMEGA32А

 

Осциллограф на микроконтроллере ATMEGA32А

 

Осциллограф на микроконтроллере ATMEGA32А
Осциллограф на микроконтроллере ATMEGA32А
 
 
Схема и печатка обновленная версии V2

 
Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А

Схема и печатки обновления V3

 

Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А

Осциллограф на микроконтроллере ATMEGA32А
 
Осциллограф на микроконтроллере ATMEGA32А

 

В качестве источника тактовых импульсов используется кварцевый генератор 32МГц (разгон atmega32 в 2 раза). Не забудьте установить соответствующие фузы. Балансировочные конденсаторы (С28, С29) возможно придется подбирать; устанавливать не обязательною. Максимальное входное напряжение увеличено до 40В (3 диапазона: 2,5В; 10В; 40В). Установлены ОУ AD8033: 80МГц, rail-to-rail выход, вход на полевых транзисторах. Диапазон частот: 30Гц-1МГц. Максимальная частота дискретизации 32МГц/3=10,7 МГц; Для питания АЦП и ОУ установлены LC фильтры. На входе АЦП установлен RC фильтр. Компилятор MikroC pro for AVR 6.00.

 

СкачатьV1 [291,6 Kb] (cкачиваний: 2066) прошивку, исходник, печатку, схему 

СкачатьV2 [364,2 Kb] (cкачиваний: 1896) прошивку под разные кварцы, исходник, печатку, схему

Скачать V3 [1,94 Mb] (cкачиваний: 2230) прошивку, исходник, печатку, схему

Скачать [51,77 Kb] (cкачиваний: 1105) печатную плату от syava7



   
syava7 # 121
 
 
Вот печатка: [печатная плата добавлена в статью]


   
vik.climov2015 # 122
 
 
Здравствуйте хочу собрать осциллограф подойдет ли микросхема АЦП AD9280ARSZL или надо AD9280 КАКИЕ ИХ РАЗЛИЧЫЯ


   
vik.climov2015 # 123
 
 
еще один вопрос ЖКИ WG12864A-NYJ-VN CQCOK12/06/14-005036 подойдет к даной схема


   
vik.climov2015 # 124
 
 
Здравствуйте подскажыте а ОУ AD8033 можно заменить 2х канальным AD8034ARZ


   
kt610 # 125
 
 
а можно применить ацп MC145040 . СПАСИБА


   
apeks # 126
 
 
у меня вопрос. микроконтролер можно использовать tqfp или изза повышеного питания лучше в дип корпусе?


   
1beercan # 127
 
 
какая функция переключателя s1.1 ?


   
gurvit60 # 128
 
 
Цитата: 1beercan
какая функция переключателя s1.1 ?

Попытаюсь ответить: В версии V3 одной группой контактов задает коэффициент усиления входного усилителя, а другой коммутирует соответствуюшие ножки контроллера и на дисплей выводится диаппазон 2.5, 10, 40В в нижней его части.


   
Алексеевич 71 # 129
 
 
Цитата: vik2
Собрал я осциллограф.Генератор 32 мгц пока не нашел,поставил кварц 27мгц и прошивку на 27мгц из V2.Но почему -то только пол экрана видно-правая часть.Все кнопки работают.Питание +5.45в , отрицательное -5.35в.У тарасевичавроде тоже пол экрана было.Уважаемый radibaне подскажете в чем может быть дело,или прошивка криво встала или АД9280 глючит? С Уважением!

У меня тоже бывает что пол экрана светит, я в таком случае осциллограф выключаю и сразу включаю. Помогает.


   
gurvit60 # 130
 
 
Собрал по V3 залил прошивку myproject.hex.Вопросы:
1.Что за пункт в меню "Stop" c опциями "On" и "Off"?
2.При переключении диаппазонов на дисплее отображается
только 2.5,10V, а должно быть еще 40V, у всех так ?
3.На дисплее вместо линии шумы (как белый шум), что может
быть?


   
radiba # 131
 
 
sashashemelev1, в МТ12864 контролер KS107/KS108, должен работать (проверьте распиновку). 320х240 со встроенным контроллером Atmega32 потянет, но скорость будет небольшая.

VoodooVoodooVoodoo, КР544УД2А должен подойти, при питании второго ОУ двуполярным напряжением установите защитные диоды на вход АЦП.

Murder, KG12864CD без переделки прошивки/печатки скорее всего не подойдет

vik.climov2015, должен подойти любой AD9280, буквы в конце — тип корпуса, стандарт RoHS и т.д. Дисплей WG12864A-NYJ-VN CQCOK12/06/14-005036 должен подойти. AD8033 заменить на AD8034ARZ можно при питании +/-5,5В и установке защитных диодов на вход АЦП.

kt610, АЦП MC145040 не подойдет.

apeks, Atmega32 греется не сильно, думаю можно использовать tqfp.

1beercan, чтобы Atmega32 знала в каком диапазоне осциллограф, считала напряжение и выводила диапазон и напряжение на дисплей.

gurvit60, 1) Выбираете Stop On, выходите из меню, нажимаете центральную клавишу, осциллограмма «замораживается». Клавиши влево/вправо двигают осциллограмму по экрану. 2) Возможно проблема в переключателе. 3) Возможно слабая контрастность дисплея.


   
gurvit60 # 132
 
 
Спасибо Уважаемый radiba!

С меню разобрался.
С переключателем диаппазонов был "непротрав"


   
1beercan # 133
 
 
radiba,спасибо за ответ и еще, LCM12864J 128x64 контролер KS0107 KS0108 от китайцев, то , что надо? и если можно небольшой мануал по приборчику.


   
apeks # 134
 
 
radiba спасибо за быстрый ответ,буду собирать в двух вариантах корпусов микроконтролеров да и генераторы поштучно не нашел только комплектами по 4 штуки а мне их как бы кроме этого осцилографа и использовать некуда )


   
1beercan # 135
 
 
Братцы растолкуйте, при прошивке меги программатором AVRISP_mkIl клон, прошил флэш, выставил фюзы H: C9 L: 20 все вроде ок, но при чтении флэш AVR Studio видае- Режим ввода программирования- ошибка и еще, когда выставлял фюзы, AVR Studio предупреждал о JTAG интерфейсе, никогда с таким не сталкивался.


   
VoodooVoodooVoodoo # 136
 
 
Цитата: radiba
sashashemelev1, в МТ12864 контролер KS107/KS108, должен работать (проверьте распиновку). 320х240 со встроенным контроллером Atmega32 потянет, но скорость будет небольшая.

VoodooVoodooVoodoo, КР544УД2А должен подойти, при питании второго ОУ двуполярным напряжением установите защитные диоды на вход АЦП.

Murder, KG12864CD без переделки прошивки/печатки скорее всего не подойдет

vik.climov2015, должен подойти любой AD9280, буквы в конце — тип корпуса, стандарт RoHS и т.д. Дисплей WG12864A-NYJ-VN CQCOK12/06/14-005036 должен подойти. AD8033 заменить на AD8034ARZ можно при питании +/-5,5В и установке защитных диодов на вход АЦП.

kt610, АЦП MC145040 не подойдет.

apeks, Atmega32 греется не сильно, думаю можно использовать tqfp.

1beercan, чтобы Atmega32 знала в каком диапазоне осциллограф, считала напряжение и выводила диапазон и напряжение на дисплей.

gurvit60, 1) Выбираете Stop On, выходите из меню, нажимаете центральную клавишу, осциллограмма «замораживается». Клавиши влево/вправо двигают осциллограмму по экрану. 2) Возможно проблема в переключателе. 3) Возможно слабая контрастность дисплея.


Огромное спасибо!!!
Автор молодчина!


   
gurvit60 # 137
 
 
Уважаемый radiba!
Пытаюсь в осциллографе использовать АЦП TDA8708, но возникла проблема сдвига уровня (смещения).Для данного АЦП (по DATASHEET)(ноль)0=5.3-2.41=2.89,а(единица) 1=5.3-1.41=3.89 где 5.3 напряжение питания.Размах входного напряжения 3.89-2.89=1В Когда я выставляю линию на средину шкалы получается напряжение около 4В, что для данного АЦП является переполнением.
Что посоветуете в данной ситуации?


   
gurvit60 # 138
 
 
Уважаемый radiba!
Не могу отобразить на индикаторе хотя бы один период колебаний.
Луч двигается вверх-вниз.При увеличении частоты до 15 кГц (с программного генератора) видно что луч изгибается, но кнопками влево-вправо не могу ни сжать, ни растянуть.Кнопки работают (есть вход в меню).
В чем может быть проблема?


   
gurvit60 # 139
 
 
Мой вопрос с поста #138 снимается, проблема была в старой прошивке (давно скачал и не проверил , что на сайте есть обновления).После сегодняшней закачки архива V3 и перепрошивки все работает.


   
const # 140
 
 
Вопрос к автору. Почему именно AD9280 и AD8033, а не какие нибудь TDA? Просто в магазине сказали редкие микрухи. И ещё вопрос,планируете ли улучшать схему, т.е. увеличивать вх. напряжение и пределы для вх. частоты?


   
gurvit60 # 141
 
 
Цитата: const
Вопрос к автору. Почему именно AD9280 и AD8033, а не какие нибудь TDA? Просто в магазине сказали редкие микрухи. И ещё вопрос,планируете ли улучшать схему, т.е. увеличивать вх. напряжение и пределы для вх. частоты?


Автор сюда заглядывает редко.На TDA8708 у меня так и не получилось, проблема со сдвигом уровня.Вместо AD8033 я использовал сдвоенный усилитель OPA2350,работает.Полоса 30-1000000 Гц, здесь автор 100% прав.


   
radiba # 142
 
 
1beercan, дисплей с контроллером KS0107/108 подойдет, но у разных производителей возможна разная распиновка. C AVR Studio не работал. Возможно AVR Studio для прошивки/отладки использует JTAG, а для осциллографа его нужно отключить.

gurvit60, для TDA8708 нужно сделать КУ=2 для второго ОУ (R14=10k). Линия на середине шкалы должна быть при (3,89+2,89)/2=3,39В.

const, AD9280 не редкая микруха. Вместо ОУ AD8033 можно подобрать более распространенный и дешевый аналог, из в высокочастотных ОУ на тот момент AD8033 был в наличии. Улучшать схему не планирую, нет времени и смысла. Из возможных доработок: увеличить входное сопротивление до 1М Ом (нужно подобрать балансировочные конденсаторы), изменить диапазоны напряжений и их количество (для высоких напряжений используются щупы с делителем), применить хороший ИОН на 1.2В, сделать библиотеку управления дисплеем с двойной буферизацией (для увеличения частоты обновления), улучшить синхронизацию. Увеличить частоту невозможно, Атмега32 и так в разгоне в 2 раза. Для высоких частот нужно использовать STM32/ПЛИС/быстрый АЦП/внешнее ОЗУ, что на порядок дороже и сложнее.


   
const # 143
 
 
radiba
Спасибо за ответ, а так же за сам осциллограф, ибо штука полезная, особенно на фильтрах.


   
asg34 # 144
 
 
помогите ктонибуть прошил амегу и не поставил 1 фюз все заработоло все запустилось но немного не коректно.вставил амегу в программатор нашол не достающий фюз испровил залил и все!!!ПРОГРАММАТОР НЕ ВИДИТ АМЕГУ И ОСЦИЛОГРАФ НЕ ЗАПУСКАЕТСЯ ЧТО ДЕЛАТ??????


   
Nikolai4 # 145
 
 
Цитата: asg34
помогите ктонибуть прошил амегу и не поставил 1 фюз все заработоло все запустилось но немного не коректно.вставил амегу в программатор нашол не достающий фюз испровил залил и все!!!ПРОГРАММАТОР НЕ ВИДИТ АМЕГУ И ОСЦИЛОГРАФ НЕ ЗАПУСКАЕТСЯ ЧТО ДЕЛАТ??????


придется собрать - https://bezkz.su/publ/300387-10-1-0-387.html


   
asg34 # 146
 
 
почему так вышло что я сделал не так? какие фюзы надо выставлять вот в этой программе?http://www.joyta.ru/3165-programmirovanie-avr-mikrokontrollerov-chere
z-codevisionavr/

за ответ большое спасибо


   
apeks # 147
 
 
Цитата: asg34
помогите ктонибуть прошил амегу и не поставил 1 фюз все заработоло все запустилось но немного не коректно.вставил амегу в программатор нашол не достающий фюз испровил залил и все!!!ПРОГРАММАТОР НЕ ВИДИТ АМЕГУ И ОСЦИЛОГРАФ НЕ ЗАПУСКАЕТСЯ ЧТО ДЕЛАТ??????

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


   
const # 148
 
 
Имеется вопрос к автору. Для чего переключатель снизу? Я просто не могу найти в магазинах данный переключатель, но на схеме отчётливо вижу, что данный переключатель замыкает некоторые контакты.


   
const # 149
 
 
Уважаемый Автор. Собрал схему без переключателя снизу, эффект получился странноватый. Везде всё пропаяно, КЗ нигде нету. Получилось вот это: https://www.youtube.com/watch?v=O3w0jsQNJlY
Прошу у вас помощи.
Atmega32A программировал с помощью PonyProg, фьюзы проставил как на картинке(за исключением EESAVE.


   
radiba # 150
 
 
asg34, в осциллографе используется кварцевый генератор 32МГц, с соответствующими fuse-bit под внешний генератор. Для повторной прошивки Atmega32 нужно подать внешний тактовый сигнал.

const, переключатель переключает диапазоны вх. напряжения. Можно применить любой переключатель на 3 положения, 2 пары контактов. По поводу дисплея. Откуда там взялись иероглифы!? Похоже, у вас текстовый дисплей.


Обновления

Сообщения ФорумаОтветов
3D Модели для Авто0
Бакометр 2335
Touch Start-Stop Engine.587
Кодграберр17
Исправляем AVR фьюзы при помощ …109
Бакометр - измеритель остатка…4
IR конструктор на PIC12F62977
Универсальное зарядное устройство103
бaкoмeтр1974
Двунаправленный автомобильный…2
Программатор GENIUS G8401
Светодиодный тахометр34
Индикаторы ГРИ ИН1 - ИН141
Multiprog1
Управляющая программа LED CUB959
Универсальное зарядное устройство9
Изготовлю печатные платы29
Простой автоматический выключа…25