Архив для скачивания: avrtester.rar

Описание:

Портативный многофункциональный измерительный прибор с аккумуляторным питанием. Собран на Atmega32 и двустрочном восьмиразрядном индикаторе LCD0802.

Возможности:

    Постоянное напряжение      0.00 - 5.00 В
    Постоянное напряжение      00.0 +/- 99.9 В
    Прозвонка диодов           0 - 5000 мВ
    Сопротивление              1 Oм - 50 MOм с точность два разряда, автомат диапазона
    Емкость                    1 пФ - 65000 мкФ с точностью три разряда, автомат диапазона
    ESR конденсаторов          0 - 200 Oм с шагом 0.25 Ом
    Индуктивность              1мГ - 65000 мГ с точностью 1мГ, в одном диапазоне
    Счетчик импульсов          0 - FFFFFFFF
    Частотомер                 0 - 10 МГц с точностью 1Гц, в одном диапазоне
    Генератор импульсов        0 - 10 МГц

    Логический анализатор:     асинхронный, длинна записи 2048 бит, чтение автономное на
    индикатор, дискретизация до 2МГц, выбор условия старта

    Все режимы на один вход, переключение режимов кнопками, подтверждение звуком
    Питание от внутреннего аккумулятора
AVR Tester
Конструкция:
Корпус пластмассовый разборный, четыре самореза в нижней крышке. В верхней части LCD индикатор две строки по восемь символов сподсветкой. В торце снизу три кнопки управления. В торце слева вход для подключения зарядника (обычный круглый), рядом разъем для подключения программатора ( мама от USB). В торце справа кнопка включения ( притоплена ), рядом кнопка делителя напряжения для диапазона до 100В ( притоплена ), следом разъем для измерительного щупа. Программатор самый простой собран в шнуре от LPT. Батарея питания внутри, собрана из четырех аккумуляторов размера ААА, напряжение 5В, емкость 1А/Ч.
Программа:
Управление прибора програмное, поэтому особо описывать нечего. Процессор опрашивает клавиатуру, получает управляющие сигналы и выставляет регистры своих внутренних таймеров, ацп, портов и т.д. в соответствии с выбранным режимом. Для пользователя это выглядит так: - подача питания - звуковой сигнал - режим напряжгние (можно мерять) - нажатие кнопки - звуковой сиенал - режим частотомер (можно мерять) - нажатие кнопки - и т.д. Режимы подтверждаются соответствующей индикацией. Режимы переключаются по кольцу. Кнопка-2 гонит кольцо вперед, кнопка-1 назад, кнопка-0 служебная используерся для обнуления счетчика импульсов, переключения ситем счисления индикации и т. п.
Переключение режимов осуществлягтся через опрос трех кнопок и переключателя делителя напряжения для диапазона 100В. Опрос общий для всех режимов и ведется постоянно.
Программа написана на MikroBasic for AVR от фирмы Microelektronica. Критичные участки кода на встроенном в Basic Assembler.
Описание схемы:
Управление прибора програмное, поэтому особо описывать нечего. Процессор опрашивает клавиатуру, получает управляющие сигналы и выставляет регистры своих внутренних таймеров, ацп, портов и т.д. в соответствии с выбранным режимом. Для пользователя это выглядит так: - подача питания - звуковой сигнал - режим напряжгние (можно мерять) - нажатие кнопки - звуковой сиенал - режим частотомер (можно мерять) - нажатие кнопки - и т.д. Режимы подтверждаются соответствующей индикацией. Режимы переключаются по кольцу. Кнопка-2 гонит кольцо вперед, кнопка-1 назад, кнопка-0 служебная используерся для обнуления счетчика импульсов, переключения ситем счисления индикации и т. п.

Напряжение в диапазоне до 5.00V измеряется непосредственно входом ADC0.

Напряжение в диапазоне до +/- 100.0V измеряется через делитель двумя входами ADC5 и ADC7 поочереди, для определеня полярности. Делитель подключается механически переключателем см. схему. Питание прибора однополярное, сам по себе ADC МК может измерить только положительное напряжение. При подаче отрицательного ADC запирается и показывает ноль. По этому применена следующая схема измерений:
Порт PA6 коммутирует землю прибора. Во всех режимах кроме Udif порт установлен в 0 и соединяет входной згмляной щуп с землей.
В режиме Udif порт отключен и находиться в третьем состоянии.
Таким образом ADC7 освобожден, а земля измеряемой схемы и земля прибора разнесены.
Допустим на входе положительное напряжение и ток течет сверху вниз по схеме. Тогда на входе ADC5 будет положительное напряжение, а на входе ADC7 отрицательное. Если подать на вход прибора отрицательное напряжение все будет наоборот. Т.е на одном из входов пложительное напряжение будет в любом случае.
Программа опрашивает порт ADC5 - если там есть напряжение то оно положительное на индикатор и на выход. Если ADC5=0, то программа опрашивает порт ADC7 - если там есть напряжение, то оно отрицательное на индикатор и на выход. Если нет на обоих то 0.0V и на выход. Таким образом при однополярном питании можно измерить двуполярное напряжение, за счет перекоммутации земли.

Прозвонка - на вход подается 5V через резистор 560 Ом. ADC0 измеряет падение напряжения на p-n переходе диода.

Сопротивление - измеряется в семи поддиапазонах пересчитывается по формуле см. исходник.
Порт PA6 подключает нижний по схеме вывод резистора к земле. Один из портов PA2,PA3 или PA4 подает напряжение Vcc на один из эталонных резисторов Rэт соответствующего диапазона. ADC0 измеряет падение напряжения на Rx. МК вычисляет значение сопротивления по формуле:
Rx=Urx*Rэт/Vcc-Urx;
Таким образом можно измерять сопротивление без применения операционного усилителя.

Емкость - заряжается через резистор соответствующего диапазона до момента срабатывания компаратора. Порог компаратора установлен на одну десятую от величины заряжающего напряжения, для обеспечения выхода на линейный участок кривой заряда ( экспоненты ). После срабатывания компаратора конденсатор разряжается через открытый порт и процесс повторяется. Время от момента начала заряда емкости до момента срабатывания компаратора регистрируется таймером счетчиком. Показания таймера счетчика пересчитываются через соответствующий корректирующий коэффициэнт и выводятся на индикатор.
Порт PA6 подключает нижний по схеме вывод конденсатора к земле.  PD3 установлен в ноль. На входе AIN1 пороговое напряжгние компаратора Up=0,05Vcc. Вход компаратора AIN0 подключен к конденсатору.
МК через резистор соответствующего дапазона подает напряжение Vcc на измерягмую емкость и запускает таймер-счетчик. В начальный момент времени t0 напряжение на емкости равно нулю Uс=0V (см. переходные процессы в эл. цепях). Затем напряжение плавно нарастает по закону экспоненты. В момент времени t1 когда напряжение на емкости Uc сравняется с пороговым напряжением компаратора Up, сработает компаратор и таймер-счетчик остановиться. Показания таймера t1-t0 будут пропорциональны измеряемой емкости.
В данном конкретном приборе емкость измеряется достаточно точно (5%) в трех диапазонах:
0пФ-50.000пФ, 50нФ-50.000нФ, 50мФ-65.000мФ. Переключение атоматическое.
Многие спрашивают почему при включении прибора на индикаторе высвечивается начальное значение емкости 100-300пФ. Все просто - это емкость монтажа + емкость измерительных щупов. Нужно калибровать, только не паять, а програмно вычесть эту емкость из нуля.

ESR - измеряется просто, как активное сопротивление разряженнго конденсатора.
Измерение ESR проводиться в одном цикле с измерением емкости, результаты выводятся на индикатор одновременно в разные строки. Используется резистор 560Ом PA3.
Вот алгоритм:
- разряжаем конденсатор
- через резистор 560 Ом подаем постоянное напряжение Vcc=5В.
- ADC измеряем падение напряжения на конденсаторе
- это значение пересчитываем в Омы
- на экран и в цикл
- это и будет ESR

ESR измеряется как активное сопротивление постоянному току разряженного конденсатора. В начальный момент заряда емкости, ее реактивное - емкостное сопротивление потоянному току равно 0. В этот момент времени все приложенное постоянное напряжение будет падать только на ESR.
Просто ADC должен успеть измерить это напряжение, пока емкость не успела зарядиться.

Время полного цикла ADC Atmega t=10мкС. Допустим R=500 Ом, С=100мкФ, тогда Тау=R*C=5.000мкС,
т.е. весь цикл измерения конденсатор остается разряженным. На практике, этим прибором, спокойно можно мерять ESR у конденсаторов от 1мкФ. Достоинства метода - простота, наглядность, точность.

Индуктивность - измеряется также как и емкость только все наоборот.
МК через резистор 560Ом подает напряжение Vcc на измерягмую индуктивность. В начальный момент времени напряжение на индуктивности Ul=Vсс (см. переходные процессы в эл. цепях). Затем напряжение плавно падает по экспоненте. В момент когда Ul=0,8Vcc срабатывает компаратор. МК закорачивает индуктивность на землю, затем задержка и цикл.
Время от момента подачи напряжения на индуктивность до момента срабатывания компаратора измеряется таймером-счетчиком. Это время пропорционально индуктивности. Падающая экспонента на участке 1,0-0,8 линейна с точностью до третьего знака. В этом конкретном приборе индуктивность измеряется оценочно в одном диапазоне.
Диапазон 0мГ-65535мГ. Это диапазон счетчика. Одному отсчету соответствует 1мГ. Средняя точность примерно 20%. - этим методом хорошо мерять трансформаторы строчные, БП, инверторов, и т.п.
Поскольку меряем ударным импульсом сразу видно КЗ витки. Предел индуктивности примерно 100мкГ, меньше получиться врядли.

Счетчик импульсов - в качестве счетчика импульсов используется аппаратный таймер-счетчик плюс расширение до 32 разрядов за счет двух регистров, логические уровни выводятся символьном виде H L U, соответственно высокий низкий неопределенный.

Частотомер - измеряются показания счетчика импульсов в течении интервала времени в одну секунду и выводятся на индикатор, затем счетчик обнуляется и т.д.

Генератор импульсов - аппаратный таймер-счетчик в режиме генератора, либо програмный генератор.

Логический анализатор - программа с определенной частотой опрашивает входной пин контроллера, данные о состоянии пина сдвигаются в аккумулятор, содержимое аккумулятора перезаписывается в память (RAM контроллера), адрес памяти инкрементируется и так далее пока весь блок памяти не закончится. Чтение происходит в обратном порядке по нажатию соответствующей кнопки. За одно нажатие кнопки на индикатор выводится содержимое четырех байт памяти.
Устройства на микроконтрроллерах
Subradio
Copyright © 2019 by Subradio. All Rights reserved.