Простой USB-осциллограф

Автор: Tonich от 4-04-2011, 17:28

Простой USB-осциллограф
Этот проект USB-осциллографа, который вы сможете собрать своими руками. Возможности USB-осциллографа минимальны, но для многих радиолюбительских задач вполне сойдет. Также, схема данного USB-осциллографа может использоваться как основа для построения более
серьезных схем. В основе схемы стоит микроконтроллер Atmel Tiny45.

Осциллограф имеет два аналоговых входа и питается от USB-интерфейса. Один вход задействован через потенциометр, что позволяет уменьшать
уровень входного сигнала.


ПО для микроконтроллера Tiny45 написано на Си и скомпилировано при помощи Winavr и V-USB разработки Obdev, который реализует со стороны микроконтроллера HID-устройства.

В схеме не используется внешний кварц, а программно задействована частота от USB 16.5 МГц. Естественно не стоит ожидать от этой схемы
дискретизации 1Gs/s.


Осциллограф работает по USB через HID-режим, не требующий установки каких-либо специальных драйверов. Софт для windows написан с использованием .NET C#. Взяв за основу исходник программы, вы можете дополнить ПО как вам нужно.

Скриншот программы:
Простой USB-осциллограф

Принципиальная схема USB-осциллографа очень проста!

Простой USB-осциллограф

Список используемых компонентов:

1 светодиод (любой)
1 резистор для светодиода, от 220 до 470 Ом
2 резистора 68 Ом для USB D+ & D-линий
1 резистор 1.5K для определения USB-устройства
2 стабилитрона 3.6V для выравнивания USB-уровней
2 конденсатора 100нФ и 47пФ
2 фильтрующих конденсатора на аналоговых входах(от 10нФ до 470нФ), можно и без них
1 или 2 потенциометра на аналоговых входах, для уменьшения уровня входного напряжения (если нужно)
1 USB-разъем
1 микроконтроллер Atmel Tiny45-20.

Скачать архив 1 к проекту: usb_scope.rar [353,93 Kb] (cкачиваний: 1755) В архиве содержатся файлы печатной платы под Eagle, прошивка, исходники на Си включающие USB-библиотеки и HID, программа для windows (не требует установки) и ее исходник на C#.

Тот же осциллограф, только с другой печатной платой.

Простой USB-осциллограф
Простой USB-осциллограф

А так же программа с расширенным экраном для большего удобства.

Простой USB-осциллограф

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

Здесь оба луча синхронны. Красный - с параллельным резистором, синий - без. При отключении питания на щупе график начинает медленно опускаться вниз...

Осциллограммы одного и того же сигнала, красный график с параллельным резистором, синий - без:
Простой USB-осциллограф
Скачать архив 2 к проекту: usb_scope_2.rar [156,34 Kb] (cкачиваний: 2189) В архиве содержатся файлы печатной платы(lay), прошивка, программа для windows и доработанная программа с увеличенным экраном.

Команда для avrdude

avrdude.exe -p t45 -c ftbb -P ft0 -e -U flash:w:"C:\FTBB\main.hex":i -U lfuse:w:0xf1:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -B 4800 
pause

 Фьюзы, спасибо daimos12: CKSEL0=1 CKSEL1=0 CKSEL2=0 CKSEL3=0 SUT0=0 SUT1=1 BODLEVEL0=1 BODLEVEL1=0 BODLEVEL2=1 0-программируем, 1-не трогаем.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Подскажите пожалуйста фьюзы, для AVR студии. У меня проблема - подключаю к компу, загорается светодиод комп пишет, что найдено "неизвестное устройство" и так по кругу, постоянно возникает это сообщение. Грешу на фьюзы.
  • Tonich

  • 26 октября 2012 17:42
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
(for AVR STUDIO):
BODLEVEL 2.7V
EESAVE not preserved
WDTON disabled
SPIEN enabled
DWEN enabled
RSTDISBL enabled
-> which equals 0xdd
CKSEL hf pll (0001)
SUT 1..0 bod enabled fast rise
CKOUT disabled
CKDIV8 disabled
-> which equals 0xe1
(this was taken from the EasyLogger data files)
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
выставил:
RSTDISBL - 1
DWEN - 1
WDTON - 0
ESAVE - 1
BODLEVEL2 - 1
BODLEVEL1 - 0
BODLEVEL0 - 1
CKSEL3 - 0
CKSEL2 - 0
CKSEL1 - 0
CKSEL0 - 1
SUT1 - 0
SUT0 - 1
CKOUT - 0
CKDIV - 0
Теперь микруха вообще молчит как партизан...
  • Tonich

  • 27 октября 2012 10:43
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Она теперь шьётся вообще?
  • Tonich

  • 27 октября 2012 10:46
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Исторически так сложилось, что если фьюз равен:
0 – значит, запрограммирован / прошит / активен
1 – значит, НЕ запрограммирован / НЕ прошит / Не активен
  • Tonich

  • 27 октября 2012 10:47
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Нет, все нормально ее можно зашить еще раз, фьюзы читаются. А вот с единицами у нулями у меня проблема. wacko
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Вы не могли бы мне написать на каком фьюзе что выставлять?
  • Tonich

  • 27 октября 2012 20:55
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
EESAVE не менять
WDTON - 1
SPIEN - 0
DWEN - 0
RSTDISBL 0
CKSEL hf pll (0001) у вас правильно
SUT 1 - 1
SUT 0 - 0
CKOUT 1
CKDIV8 1,
остальные оставляйте как есть, должно сработать
  • Tonich

  • 27 октября 2012 20:58
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
BODLEVEL2 - 0
BODLEVEL1 - 1
BODLEVEL0 - 0
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Спасибо, большое в понедельник с утра попробую, а птом отпишусь
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Это получается, если я запишу 0 в rstdisbl, то микруха залочится и мне придется покупать новую?
  • Tonich

  • 29 октября 2012 18:24
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
если опасаешься не записывай этот бит, а так смотри здесь http://yveslebrac.blogspot.ru/2008/10/cheapest-dual-trace-scope-in-galaxy.html, там так же в комментах методом тыка подбирали smile
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Все, микруха залочилась, хотя RSTDISBL не активировал. Буду завтра чтот думать
  • Tonich

  • 30 октября 2012 18:50
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
А чем прошиваешь? Попробуй подать на clk внешний сигнал
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Я завтра руководителю дипломной понесу, пусть сам разбирается. А то я сделал терменвокс и это сам спаял, а он мне нихрена не помогал. Пусть терь смотрит, хоть что-то
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.10.2012
  • Статус:
  • Комментариев: 9
  • Публикаций: 0
^
Сделал! Все работает 100%, препод так ничем не помог. Ошибка была в разъеме ЮСБ принтера, подпаял проводками напрямую. Вот фьюзы:
CKSEL0=1
CKSEL1=0
CKSEL2=0
CKSEL3=0
SUT0=0
SUT1=1
BODLEVEL0=1
BODLEVEL1=0
BODLEVEL2=1
0-программируем, 1-не трогаем.
А еще пока не забыл - устройство определяется не на всех материнках, я решил это путем подпаивания параллельно 2 диодов, от подтягивающего резистора до 8 ноги
  • Tonich

  • 14 ноября 2012 21:46
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Что сказать , хреновый у вас препод, главное , что всё заработало, поздравляю smile
  • bdw5

  • 29 декабря 2012 23:13
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
скачал 2 архив-там столько папок? поясните что где прошу...
  • bdw5

  • 30 декабря 2012 14:26
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
а точно ли на фильтр от 10 до 470 НАНО фарад??
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 60
  • Публикаций: 26358
^
Цитата: bdw5
а точно ли на фильтр от 10 до 470 НАНО фарад??

bdw5, что вы имели ввиду?
Цитата: bdw5
скачал 2 архив-там столько папок? поясните что где прошу...

Четыре архива, Debug.zip - прога с большим экраном, main.zip - пошивка для МК, os2.zip - печатная плата, UsbADC.zip - прога со стандартным размером экрана

--------------------
  • bdw5

  • 30 декабря 2012 17:43
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
я там электролит вижу - может микрофарад?
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 60
  • Публикаций: 26358
^
2 фильтрующих конденсатора на аналоговых входах(от 10нФ до 470нФ), можно и без них
А электролит по питанию 47мкФ

--------------------
  • bdw5

  • 30 декабря 2012 18:23
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
прошу подробнее о переменном резисторе? для чего он?
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 60
  • Публикаций: 26358
^
bdw5,
1 или 2 потенциометра на аналоговых входах, для уменьшения уровня входного напряжения (если нужно)

--------------------
  • bdw5

  • 30 декабря 2012 20:13
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
это если мне надо например 10 вольт подключить??7
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 60
  • Публикаций: 26358
^
Цитата: bdw5
это если мне надо например 10 вольт подключить??7

Да!, хоть 1000В, всё будет зависеть от резисторного делителя на входе

--------------------
  • bdw5

  • 31 декабря 2012 20:57
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
с наступающим. собрал включил-график пошёл-ура работает. пока выключил. теперь прошу вас уточнить вопросы- до какой частоты меряет, и измеряет ли постоянку. а и что за кнопки на панелях проги- одной и второй. за ранее благодарен...

поставил переменник на 10 кило ом -потом заменил на два постоянных и получилось 2000мв =20в. но при этом синусойды практически не видно. идёт ершистая прямая. обидно. может есть выход??
  • Tonich

  • 1 января 2013 11:02
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Цитата: bdw5
поставил переменник на 10 кило ом -потом заменил на два постоянных и получилось 2000мв =20в. но при этом синусойды практически не видно. идёт ершистая прямая. обидно. может есть выход??

А на какие заменили? Может вы генератор сильно нагружаете?
  • bdw5

  • 1 января 2013 12:51
  • Группа: Посетители
  • ICQ:
  • Регистрация: 29.12.2012
  • Статус: Пользователь offline
  • Комментариев: 10
  • Публикаций: 0
^
заменил эквивалентно переменнику- 8.7к на1.1к

плечо 1.1к-идёт на gnd

я кстати комп под угрозу не ставлю?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.