Саморобний цифровий осцилограф на ардуїно та мікроконтролері своїми руками. Саморобний осцилограф на AVR Саморобний осцилограф на мікроконтролері atmega8

Є такий чудовий USB осцилограф китайської фірми Instrustar із маркуванням ISDS205A. Він привабливий в першу чергу своїм софтом, він дуже зручний і функціональний як для USB осцилографа, так і характеристиками, які дуже не погані враховуючи ціну осцилографа. На Aliexpress вона становить близько 55 $ за весь комплект. Тому якщо не впевнені у своїх силах повторити прилад, то доцільніше придбати готовий прилад. Тим більше, різниця в ціні не така й велика. Взагалі вся ця витівка за повторенням, виключно зі спортивного інтересу. Одна з відмінностей це те, що в авторському варіанті живлення реле здійснюється від +5В, які виходять з перетворювача, тим самим навантажуючи останній і перекошує напруги. У нашому випадку живлення реле буде здійснюватись від окремого стабілізатора, і перетворювач також буде іншим. Нижче наведено схему Instrustar ISDS 205A (модифікована).

В аналоговій частині відмальовано лише один канал, другий такий самий. Осцилограф побудований на базі процесора CY7C68013A, та двоканальній мікросхемі АЦП AD9288-40BRSZ. Всі отримані дані процесор передає USB на комп'ютер, тому його робота дуже залежить від продуктивності комп'ютера. На старих машинах, найімовірніше, цей осцилограф коректно не працюватиме.

Особливості збирання

Друкована плата прикріплена внизу архіві. Плата, на якій я виготовляв осцилограф, містить невелику помилку в розведенні, тому некоректно керує реле. Довелося застосувати інвертор (на фото видно мікросхему розташовану висновками вгору і розпаяно на проводках).





Плата досить складна, двостороння і з металізацією, тому її виготовлення раджу Реле, яке застосовано у вхідній частині типу TX-4.5. Напруга спрацьовування має бути не більше 3,3 вольт. Операційні підсилювачі AD8065 дуже бояться перегріву та статики. Ще дуже легко нарватися на підробку. Тому рекомендую паяти їх добре заземленим паяльником з регулюванням температури, і намагатися не перегрівати, запаювати в один дотик. До запаювання ОУ рекомендую виготовити DC-DC перетворювач і впаяти його.
Це необхідно контролю працездатності ОУ. Після установки першого, подаємо живлення та контролюємо напругу на вході та виході. У нормального ОУ має бути 0 вольт на вході та виході. Ну і тепер про сам DC-DC. Він робить з 5 вольт +5 та -5 Вольт. Його схема та плата також є в архіві. Там найскладніше – намотати транс. Потрібно обов'язково дотримуватися полярності намотування і нічого не наплутати.

Можна придбати готовий DC-DC, при цьому трохи зростає рівень шумів осцилографа. Після збирання потрібно прошити мікросхему Eeprom. Для цього встановлюємо перемичку на платі, підключаємо по USB до комп'ютера, запускаємо Cypress Suite, заходимо в EZ Console, натискаємо кнопку LGeeprom, вибираємо файл прошивки з архіву (розширення.iic), і прошивка завантажується. Докладніше про прошивку можна почитати в . Корпус застосований стандартний з маркуванням BIS-M1-BOX-100-01BL. Розмір корпусу – 100*78*27 мм. Ідеально підходить для плати з архіву. Нижче фото самого корпусу та процесу складання.








Цифрові осцилографи використовуються аматорами електроніки і це одна зі звичних речей, що знаходяться за їхніми робочими столами. Але покупка готового рішення може влетіти в копієчку, тому я вирішив, що зберу свій осцилоскоп своїми руками. Цей базовий проект допоможе вам підвищити свої навички і у результаті у вас буде свій саморобний непоганий прилад, який полегшить вам життя.

Ардуїно – чудова річ, що працює на 8-бітних мікроконтролерах, які мають цифрові виходи, SPI, лінії I2S, послідовний зв'язок, ADC тощо. Таким чином, використання в цьому проекті Ардуїно є гарною ідеєю.

Крок 1: Необхідні матеріали




Я хотів, щоб все залишалося простим і дешевим, тому вам знадобляться:

  • Ноутбук x1
  • Ардуїно x 1 (UNO, PRO MINI, NANO - підійде будь-який, крім MEGA)
  • Кабелі зі штекерами x 2
  • Макетна плата x 1
  • Кліпси алігатори x 2
  • Кабель джек тато-тато на 3.5 мм x 1
  • Джерело аудіо, або іншого сигналу, чию форму ви хочете побачити

Крок 2: Код та програма осцилоскопа


Після підключення просто завантажте в нього код з zip-архіву. Цей код просто зчитує напругу на аналогових пінах A0-A5 або A7 Ардуїно (залежно від вашої плати), а потім конвертує його на значення, що варіюється від 0 до 1023. Далі це значення відправляється на комп'ютер через порт USB.

Піни A0-A5 або A7 (залежно від вашої плати) діють як 6 або 8 каналів осцилоскопа, але софт дозволяє відобразити лише три канали за раз.

Після того, як ви відкрили програму осцилоскопа слідом за завантаженням скетчу, виберіть потрібні параметри baud rate (швидкість передачі) і COM-порт, а потім відкрийте канали.

Програма осцилоскопа спроектована так, щоб набувати значень з Ардуїно і будувати з них графік, додаючи значення в лінію, що надає вам непогані графіки у вигляді хвиль, прямо як на осцилоскопі.

Файли

Крок 3: Принцип дій



  1. Підключіть Ардуїно
  2. Завантажте код
  3. Пустіть сигнал через піни A0-A5 або A7 (залежно від вашої плати). Я вибрав сигнал від мого телефону через джек. Один кінець дроту був підключений до телефону, а на іншому кінці я підключив землю до GND Ардуїно, а другий алігатор був підключений до одного з аудіоканалів. (В моєму випадку правий канал аудіосигналу) .
  4. Відкрийте програму осцилографа
  5. Виберіть COM-порт та baud rate
  6. Відкрийте канали та все готово!

Крок 4: Особливості

  • Роздільна здатність осцилоскопа: приблизно 0.0049 Вольта (4.9мВ)
  • Частота поновлення: 1КГц
  • Швидкість передачі: 115200
  • Діапазон напруги: 0-5 Вольт
  • Він може відображати одночасно 3 канали

Примітка: не перевищуйте на електронному осцилографі межу 5 Вольт, або ви підсмажите свій Ардуїно.

Обмеження:

  1. Напруга не може перевищувати, вона знаходиться в діапазоні 0-5 Вольт
  2. Будь-який сигнал вище 1КГц не буде помічений Ардуїно, або він буде визначатися як сміттєві значення (перешкоди)
  3. Не спробуйте виміряти сигнали AC, оскільки аналогові піни не пристосовані для цього і врешті-решт ви або пошкодите Ардуїно, або засічете позитивну половину.

Крок 5: Все готове!

Отже, я думаю, що досить просто зробити свій осцилограф на Ардуїно. Сподіваюся, вам усе сподобалося.

Частота вимірювання: 10 Гц – 7.7 кГц
Макс. вхідна напруга: 24В AC / 30В DC
Напруга живлення: 12В DC
Роздільна здатність дисплея: 128x64 пікселів
Область екрану осцилограми: 100x64 пікселів
Інформаційна область екрана: 28x64 пікселів
Режим тригера: автоматичний

Вступ

Одного разу, переглядаючи різні інтернет-сайти з електроніки, я натрапив на дуже цікавий проект осцилографа, який був спроектований з використанням МК PIC18F2550 та графічного LCD з контролером KS0108. Це був веб-сайт Steven Cholewiak. Це була хороша схема і я вирішив розробити свій проект осцилографа та використання мови С, якою я програмував останні роки, замість асемблера. Як середовище розробки я використовував , яка ґрунтується на open source AVR-GNU компіляторі і чудово працює з . Графічну бібліотеку я розробив сам, спеціально для цього проекту. Якщо ви захочете використовувати її для якихось інших проектів, то її необхідно переробляти. При вимірюванні прямокутного сигналу максимальна частота, при якій ви побачите хорошу осцилограму, становить близько 5 кГц. Для інших форм сигналів (синусоїда або трикутного сигналу) максимальна частота становить близько 1 кГц.

Принципова схема AVR-осцилографанаведена на малюнку нижче (натисніть, щоб збільшити):

Напруга живлення схеми становить 12 вольт постійного струму. З цієї напруги надалі виходить ще 2 напруги: +8.2В для IC1 і +5В для IC2, IC3. Пристрій може вимірювати вхідну напругу від +2.5 до -2.5В або від 0 до +5В, що залежить від позиції перемикача S1 ​​(вибір типу вхідного струму: постійний або змінний). При використанні пробника 1:10, вхідна напруга може бути збільшено в 10 разів. Крім того, перемикачем S2, можна встановити додатково розподіл напруги на 2.

Прошивка ATmega32

Файл прошивки: AVR_oscilloscope.hex при виборі фьюзів необхідно вказати використання зовнішнього кварцу. Після, необхідно обов'язково відключити JTAG інтерфейс, якщо цього не зробити, то на осцилографі відображатиметься екран ініціалізації, а потім він йтиме в перезавантаження.

Налаштування

Для налаштування приладу потрібно виконати всього 2 речі: настроїти контрастність LCD за допомогою підстроювального резистора Р2 та виставити центр осцилограми за допомогою підстроювального резистора Р1.

Використання

Ви можете переміщати промінь осцилограми вгору або вниз, натиснувши кнопки S8 і S4. Один квадрат на екрані відповідає 1В.
За допомогою кнопок S7 та S3 можна збільшувати або зменшувати частоту вимірювань. Мінімальна частота форми сигналу, яка може відображатися на LCD становить 460Гц. Якщо необхідно подивитися сигнал з нижчою частотою, наприклад 30Гц, необхідно натиснути S7 для стиснення осцилограми або S3 для розтягування.
В осцилографі використовується автоматичний режим тригера. Це означає, що якщо вхідний сигнал повторюється (наприклад трикутник), то тригер працює добре. Але якщо форма сигналу постійно змінюється (наприклад якась послідовність даних), то для фіксації зображення необхідно натиснути кнопку S6. Повторне натискання S6 повертає у нормальний режим.

Відео роботи осцилографа

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
IC1 Операційний підсилювач

LM358

1 У блокнот
IC2 LCD-дисплейDEM128064A1 128x64, контролер KS0108 У блокнот
IC3 МК AVR 8-біт

ATmega32

1 У блокнот
IC4 Лінійний регулятор

LM7805

1 У блокнот
D1 Стабілітрон

1N4738A

1 8.2В У блокнот
D2 Випрямний діод

1N4007

1 У блокнот
C1 Конденсатор470 нФ1 У блокнот
C2 Конденсатор27 пФ1 У блокнот
C3 22 мкФ 16 В1 У блокнот
C4, C7, C9 Конденсатор100 нФ3 У блокнот
C5, C6 Конденсатор22 пФ2 У блокнот
C8 Електролітичний конденсатор100 мкФ 25 В1 У блокнот
R1, R2, R4 Резистор

1 МОм

3 У блокнот
R3, R5 Резистор

390 ком

2 У блокнот
R6 Резистор

56 Ом

1 У блокнот
R7 Резистор

220 Ом

1 У блокнот
P1 Підстроювальний резистор10 ком1 У блокнот
P2 Підстроювальний резистор22 ком1 У блокнот
X1 Кварц16 МГц1

Оскільки інтегрований до мікроконтролера АЦП досить повільний, було прийнято рішення використовувати зовнішній швидкісний АЦП AD9280. Як дисплей використовується WG12864A (128*64). Прошивка написана на комп'ютері MikroC pro for AVR 5.60.

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

Вхідний опір 100 кОм;

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

Мінімальна частота 25 Гц;

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

Мінімальна напруга +/- 0,25;

Максимальна напруга +/- 25 В;

Напруга живлення 9 В;

З правого боку на екрані відображається амплітудне значення напруги, середньоквадратичне значення напруги, частота в кГц, тип синхронізації та дільник. 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до Гц. Прямокутні імпульси на високих частотах можна побачити на фото.

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

Діапазони перемикаються трипозиційним перемикачем – 1:1 (25 V); 1:4 (10 V); 1:10 (2,5V).

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

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

Схема та друк оновлена ​​версії V2

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

Перш ніж приступити до опису usb осцилограф своїми рукамина ATtiny45, необхідно відзначити, що в конструкції використовується тільки інтегрований АЦП перетворювач мікроконтролера ATmega45 з роздільною здатністю 10-біт, і дані дані передаються за допомогою впровадження програмного забезпечення V-USB з використанням драйверів USB HID, загальна швидкість передачі даних сильно обмежена.

Реальні вибірки на обох каналах до десятка вибірок за секунду. Таким чином, це цифровий двоканальний низькошвидкісний осцилограф на мікроконтролері.

V-USB є суто програмної реалізації низькошвидкісного USB протоколу для процесорів серії AVR фірми Atmel. Завдяки цим бібліотекам можна з незначними обмеженнями застосовувати USB практично з будь-яким мікроконтролером без необхідності використання додаткового спеціального обладнання. Усі бібліотеки V-USB розповсюджуються під ліцензією GNU GPL v.2.

Два аналогових входів здатні вимірювати напругу в діапазоні від 0 до +5 В. Широкий діапазон напруги можна досягти шляхом додавання підсилювача з високим вхідним опором та змінним коефіцієнтом підсилення (або вхідним резистивним дільником), або принаймні з використанням звичайного змінного резистора.

Всю основну роботу виконує запрограмований мікроконтролер ATtiny45. Працює він від внутрішнього тактового генератора із ділником із частотою 16,5 МГц. Для зв'язку через інтерфейс швидкісного USB ця частота необхідна, однак це веде до обмеження в мінімальній напрузі живлення, який повинен бути вищим, ніж 4,5 В і, звичайно, нижче, ніж 5,5 В.

Але, оскільки висновки даних порту USB використовують рівень напруги від 0 до +3,3, необхідно використовувати обмежуючі резистори R2, R3 і стабілітрони D2, D3. Таке рішення, звичайно, не можна рекомендувати для комерційного продукту, але для ознайомлення з проблематикою USB та отримання простої конструкції для домашнього використання цілком достатньо.

Вхідні канали CH1 і CH2 на роз'єм J2 блокуються конденсаторами С2 і C3 номіналом 100n відповідно до необхідної специфікації внутрішнього АЦП. Світлодіод D1 служить тільки для індикації роботи і, отже, можна виключити.

Список компонентів:

  • R1 - 270R
  • R2, R3 - 68R
  • R4 - 2k2
  • C1, C2, C3 - 100n
  • D1 - LED 3мм
  • D2, D3 - ZD (3,6 вольт)
  • IO1 - Attiny45-20PU
  • J1 - USB B 90

Програмне забезпечення:

Скомпільований файл HEX доступний для скачування в кінці статті, а також вихідний код мовою C. Установка конфігурації обмежується вибором використання внутрішнього множника PLL осцилятора.

Так як програма використовує HID драйвера (Human Interface Device), які є практично в кожній операційній системі, відпадає необхідність встановлення додаткових драйверів.

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

(завантажено: 1 273)

http://pandatron.cz/?1138&dvoukanalovy_usb_hid_osciloskop