Реклама ⓘ
Главная » Компьютерная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

USB тестер

Устройство самодельного USB-тестера базируется на микроконтроллере ATmega8. Этот выбор обусловлен тем, что у меня валялось несколько таких микросхем. Так же были мысли использовать ATmega48, но позже от этого варианта было решено отказаться, так как было жаль тратить контроллер с большим количеством ШИМ выходов на схему, не требующую их применения.

Микроконтроллер работает на частоте в 1МГц, используя либо внутренний RC-генератор, либо внешний кварцевый резонатор (тоже на 1МГц).

Для моих целей было достаточно той точности, которая была при использовании RC-генератора (+/- 5 секунд за 5 минут). Но на печатной плате есть место для кварцевого резонатора.

Отображение данных происходит за счет светодиодного семисегментного четырехразрядного индикатора. Такой тип индикаторов не блистает экономичностью, но устройству работающему от USB, как мне кажется, экономичность ни к чему. Органов управления прибор не имеет, и сброс осуществляется выключением питания.

Для мониторинга выводятся следующие данные:

  • Напряжение
  • Ток
  • Потр. энергия (А*ч)
  • Время работы

Характеристики устройства:

  • Максимальное измеряемое напряжение: 6,6В
  • Максимальный измеряемый ток: 1,5А (зависит от характеристик шунта)

Я не буду говорить что устройство обладает феноменальной точностью, это не так. АЦП микроконтроллера ATmega8 в принципе не обладает точностью, так как в младших разрядах находится "мусор". Конечно, для более достоверных результатов стоит заводить микроконтроллер в сон, делать измерение и выполнять программу дальше, но это повлечет за собой задержки в работе программы.

Итак, схема устройства:

Схема

В данном устройстве можно применять как индикаторы с общим катодом, так и индикаторы с общим анодом.

Для смены типа индикатора требуется строчку в файле display7seg_lib.h

#define OK

в файле -- заменить на

#define OA

Если вам не требуется отображение прошедшего с момента запуска устройства времени, то можно закомментировать данную строчку в файле main.c:

#define DISPTIME 

Для более точного измерения токов без использования ОУ было решено снизить напряжение питания до 3.3В. Так же был применен делитель напряжения для измерения напряжения на разъеме USB.

Немного о прошивке

Прошивка писалась под avr-gcc (WinAVR), редактор кода - встроенный в Proteus (проект в версии 8.6).

Каждую секунду срабатывает прерывание по переполнению таймера Т1, и устройство измеряет параметры (напряжение, ток) а так же вычисляет энергию в А*ч. Далее, с помощью таймера Т2 организована смена показаний а возможностями библиотеки для вывода информации - "бегущая строка".

ВНИМАНИЕ! При тактировании от внутреннего RC-генератора показания прибора могут иметь большую погрешность.

Если вы решили отказаться от использования кварцевого резонатора, то фуз-биты можно оставить по-умолчанию. В противном случае, требуется установить CKSEL = 1001, SUT = 00.

Печатная плата выполнена на двухстороннем фольгированном материале (гетинакс/текстолит). Самый сложный момент при разводке платы - это посадочное место под микроконтроллер.

плата-1плата-2плата-3

На печатной плате, как и на схеме отсутствует один элемент - стабилизатор на 3.3В, 78L33. Он устанавливается следующим образом:

78L33

Так же, к выводы 1 и 3 на время программирования закорачиваются перемычкой. Это сделано для того, что бы не подпалить контроллер питающийся от 3.3В подачей 5 вольт на порт.

О замене деталей

Резисторы R1 - R4 можно безболезненно взять с сопротивлением 1 - 4.7 кОм , R6 и R7 необходимо использовать прецизионные (в моем случае были использованы с допуском +/- 1%) и обязательно с одинаковым сопротивлением. R10 - R17 можно заменить на резисторы мощностью 0,125 - 0,25Вт и сопротивлением 180 - 360 Ом. R8 используется для предотвращения появления "магических чисел" при отключенной нагрузке, соответственно его сопротивление должно быть в диапазоне 10 - 100 кОм. Резистор R18 можно взять на 10 - 100 кОм, или не устанавливать вообще (но тогда возможны произвольные сбросы микроконтроллера).

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

Транзисторы можно заменить на отечественные аналоги КТ312, 315, 3102 и т.д. В общем, можно взять любые маломощные транзисторы структуры n-p-n.

Токовый шунт при желании можно взять с иным сопротивлением, но для этого потребуется изменить следующую строку в программе:

#define R 2

Где поменять 2 на ваше сопротивление.

И наконец, немного фото а так же видео сборки и работы:

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega8A-AU
1 TQFP-32Поиск в магазине ОтронВ блокнот
Q1-Q4 Биполярный транзистор
BC547
4 Поиск в магазине ОтронВ блокнот
Стабилизатор78L331 На схеме не обозначенПоиск в магазине ОтронВ блокнот
R1-R4 Резистор
1 кОм
4 Поиск в магазине ОтронВ блокнот
R5 Резистор
2 Ом
1 Токовый шунтПоиск в магазине ОтронВ блокнот
R9-R17 Резистор
220 Ом
9 Поиск в магазине ОтронВ блокнот
R6-R8, R18 Резистор
10 кОм
4 R6,7 - презиционныеПоиск в магазине ОтронВ блокнот
C1, C2 Конденсатор22 пФ2 Поиск в магазине ОтронВ блокнот
Конденсатор0.1 мкФ2 Опционально. На вход и выход стабилизатора 78L33Поиск в магазине ОтронВ блокнот
X1 Кварцевый резонатор1МГц1 Поиск в магазине ОтронВ блокнот
ИндикаторСветодиодный1 ОК, ОА, 4 разряда, 7 сегментовПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 2.8 Проголосовало: 2 чел.

Комментарии (13) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
diogen_b #
Можно было бы поднапрячь мозги и все детали разместить на плате без кучи проводов! Тем более, что у Вас двусторонняя плата.
Ответить
0

[Автор]
zeconir #
Индикатор размещен за пределами платы не потому что мне было лень разводить ее, а потому что мне было физически не удобно возиться с кучей переходных отверстий, так как ЛУТ и фоторезист пока вне не доступа.
Ответить
0
Zlodey #
У вас код работы с динамической индикацией неправильно написан - имеется паразитная засветка соседних знакомест. Поправьте код.
Отредактирован 23.04.2017 21:46
Ответить
0

[Автор]
zeconir #
Да, спасибо что напомнили. Хотел исправить но отложил "на потом". Просто принебрег задержками при переключении.
Ответить
0
risov #
С прошивкой не понял. Eeprom прошивать не надо?
Ответить
0

[Автор]
zeconir #
Нет, EEPROM не используется.
Ответить
0
Alexey #
Измерительный шунт 2Ом
При токе 1А на нем упадет 2В, а при токе 2А -4
Для USB зарядок это очень много
Ответить
0

[Автор]
zeconir #
Да, под рукой другого не было. Но ничто не мешает заменить его на более низкоомный.
Ответить
0
Alexey #
Мешает то, что 10 битный АЦП мерит довольно высокое напряжение (либо VCC либо опорное)
Что толку без усиления подавать сигнал - 0 -0.1В?
Получается еще операционник на входе нужно ставить.
Ответить
0

[Автор]
zeconir #
Учитывая, что ток в подавляющем большинстве случаев не превышает 1 - 1,5А, можно взять шунт с несколько большим сопротивлением, нежели 0,1 Ом. Но, даже если применить 0,1Ом то можно подключить внутренний источник опорного напряжения контроллера.
Ответить
0
Alexey #
Низкое падение напряжения на шунте. Что без усиления делает его использование с 10-битным АЦП контроллера практически бесмыссленным
Ответить
0
Саша #
Если собирать на пико контроллере, то какой нужен код для прошивки?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

USB-реле (2 канала)
USB-реле (2 канала)
Сатфайндер UNI-T UT-61A
вверх