Устройство самодельного 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.
Печатная плата выполнена на двухстороннем фольгированном материале (гетинакс/текстолит). Самый сложный момент при разводке платы - это посадочное место под микроконтроллер.
На печатной плате, как и на схеме отсутствует один элемент - стабилизатор на 3.3В, 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 | Поиск в магазине Отрон | ||
Стабилизатор | 78L33 | 1 | На схеме не обозначен | Поиск в магазине Отрон | ||
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)
Прикрепленные файлы:
- USBTest.rar (200 Кб)
Комментарии (13) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
При токе 1А на нем упадет 2В, а при токе 2А -4
Для USB зарядок это очень много
[Автор]
Что толку без усиления подавать сигнал - 0 -0.1В?
Получается еще операционник на входе нужно ставить.
[Автор]