Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Не буду скрывать, появлением на свет данного устройства, в основном, стали ваши довольно теплые отзывы о двухдиапазонном вольтметре здесь и на радиокоте. Как минимум несколько человек напрямую интересовались “не хочу ли я?” из зарядного устройства выкинуть лишний светодиод и еще чего-нибудь “ненужное” а вместо этого на освободившиеся ноги повесить второй индикатор и светить одновременно и амперы и вольты. Я долго упирался, но поразмыслив и взвесив все “за” и “против” было решено взяться за разработку нового устройства. При разработке были приняты во внимание следующие тезисы.
1. Переделывать что-то старое всегда не так интересно, как создавать что-то новое. Да и довольно громоздкие и специфические функции зарядного устройства вряд ли нужны для повседневного пользования.
2. Моя идея и реализация двух диапазонов в вольтметре конечно большинству из вас понравилась, но входная часть на ОУ была бы хороша в универсальном вольтметре. В лабораторном блоке питания в который в 95% случаев вы будете встраивать это устройство высокое входное сопротивление и даром не надо. Поэтому на входе только делители + защитные стабилитроны. Настраивать стало еще легче.
3. Измерение тока при помощи прецизионного ОУ и двухполярного источника питания – это конечно очень хорошо, но довольно громоздко схемотехнически. Тут мы будем мерять ток при помощи однополярного ОУ с rail-2-rail входом. Хотя конечно придется побороться с возникшими по этому поводу граблями. Но об этом позже.
4. Раз уж устройство будет претендовать на звание “народного”, то и микроконтроллер в нем должен быть “народный” – ATMega8 в DIP корпусе.
5. На сдачу, точнее на три оставшиеся бесхозные ноги добавлена схема для работы с триггерной защиты по току. О ней тоже позже.
6. Ну и наконец – “фишка”. В любой “народной” вещи должна быть “фишка”! В данном случае это будет автоопределение типов впаянных индикаторов. Ставить можно с общим катодом, можно с общим анодом, можно один такой, второй другой – все будет работать с одной прошивкой. Также все будет работать и с трехсимвольными индикаторами с общим анодом (без автоопределения), исчезнет только буква A или U для амперов и вольт соответственно.

Работа устройства. Сразу отмечу, что, если не поставить все детали связанные с 24 и 25 ногой контроллера, а кнопку сделать скрытой или сделать контакты для замыкания отверткой (без нее нельзя, она будет нужна один раз для калибровки) – то получится просто вольт-амперметр не обремененный никакими функциями. Но если собирать все в полном объеме то работа будет требовать пояснений. Работу токовой защиты можно разбить на четыре режима.
1. Порог срабатывания защиты не выставлен.
2. Установка порога защиты.
3. Порог защиты выставлен и запомнен, защита не срабатывала.
4. Защита сработала.
Во всех четырех режимах на верхний индикатор выводятся значение вольт в формате 0.00в – 9.99в в диапазоне 0-10в, и 10.0 – 99.9в, в режимах 1,3,4 на нижнем индикаторе выводится измеряемый ток. Вы спросите зачем это нужно в четвертом режиме? Все просто с индикатора “защита” снимается управляющее напряжение для отключения выхода блока питания. Механизм может быть любой. Единственное что вы должны знать – 0в на 24-ножке – защита не сработала, 5в – сработала. Еще имеет смысл помнить, что защита не очень высокоскоростная – в 99% случаев скорости ее срабатывания конечно же хватит, но есть и другие варианты… Что-то я отвлекся… О четвертом режиме: защита как таковая может и не использоваться, а просто можно пользоваться индикатором как триггером для того чтобы знать что было превышение потребления тока устройством которое запитано от БП. Именно потому в 4-м режиме продолжается измерение и тока и напряжения. Логика работы кнопки такова: из первого режима коротким нажатием запустится второй, далее выбираем переменным резистором значение тока срабатывания защиты от 0.00 до 9.99A, индикатор ампер при этом моргает. Еще одно короткое нажатие переведет нас в третий режим. При этом будет моргать точка возле буквы “А” сигнализируя о том, что в памяти есть значение порога срабатывания. Короткое нажатие на кнопку из режима 3 переведет нас снова в режим 2. Если сработала защита мы попадаем в режим 4. Сброс защиты, т.е. переход в режим 3 производится коротким нажатием на кнопку. Длинное удержание кнопки (более 1.5с) в режимах три и четыре переведет нас в режим 1, т.е. сотрет данные порога срабатывания. И только из режима 2 длинное нажатие запустит процесс автокалибровки, но о нем по-прежнему позже. Также стоить сказать о том, что при пропадании питания устройство “забывает” о запомненном значении порога срабатывания защиты.

О конструкции и настройке. Конструктивно все расположено на одной плате. Разъемы для подключения расположены в один ряд и имеют достаточно крупные контакты. Устройство требует отдельное питание в пределах 7…15в. Толщина и длина проводов критична для подключения земляного провода и провода “- Rn” – эти два провода должны быть максимально толстыми и короткими. Провод “-Rn” подключается непосредственно к минусовой выходной клемме. Сопротивление шунта как таковое измерить удастся не всем – китайский мультиметр такое померять не в состоянии, поэтому настройка канала амперметра сводится к настройке коэффициента усиления ОУ IC4. Сопротивление шунта для номиналов на схеме должно составить 3.62 м(илли)ом. Реально – будете подбирать резистор R25. В качестве шунта я использовал половинку витка от спирали нагревателя какого-то камина толщиной около 1мм и диаметром 5мм. На плате мест под такие “перемычки” предусмотрено два. Теперь собственно о “граблях”… Так как решено было отказаться от двухполярного питания в пользу относительно недорогого rail-2-rail ОУ – возникла проблема с нулем на выходе. Коэффициент усиления довольно велик, а усиливаются в том числе собственные шумы,  а такие ОУ к малошумящим и прецизионным отнести сложно – на выходе образовался некоторый потенциал, аппаратными методами скомпенсировать который довольно проблематично. У меня получилось 0.15A (mcp6022, Кус=100) при абсолютном нуле на входе 🙁 Ну а теперь давайте вспомним как устроен АЦП. 0.15А, точнее цифра 0.15 по отношению к 9.99 – это 15 отсчетов АЦП. АЦП у нас 10-битный, т.е. 2 в 10-й степени = 1024 отсчета. Так получается что такой цифрой как 15 мы вполне можем пожертвовать абсолютно безболезненно для диапазона измерения, а если даже предположить что цифра будет больше 24 “свободных” отсчетов, то это будет означать что “отгрызется” немножко из измеряемого диапазона сверху, т.е. верхний предел будет не 9.99A, а скажем 9,87. Все не так и плохо. В общем именно это мы и делаем при калибровке. Запоминаем значение АЦП при фактическом токе 0A – никакая нагрузка не подключена, а потом это значение, в дальнейшем вычитаем из измеренного значения, заменяя при этом случайно образовавшийся переход через 0 (это может быть в пределах погрешности измерения) обычным 0.00. Я уже полез в дебри алгоритма работы программы…

Опишу лучше практический алгоритм настройки канала измерения тока. Запускаем предварительную калибровку (длинное нажатие кнопки из режима установки порога срабатывания). Признаком успешной калибровки – отображение 0.00А при отключенной нагрузке. Проводим это до начала каких либо подборов резисторов, затем подбираем R25 до приемлемого, но не окончательного значения показаний тока, затем повторно калибруемся и окончательно выставляем номинал R25. Больше нам калибровка никогда не понадобится, единственное пожелание – эту процедуру выполнять уже по месту установки в конечное изделие. С вольтметром все гораздо проще – подбираем соотношение резисторов в делителе R24 R23 для диапазоны 10…100в и R22 R21 для диапазона 0…10в. Номиналы указаны для идеального стечения обстоятельств, когда образцовое напряжение на AREF будет равно 2.56в. На практике все равно придется подбирать…. Длина и толщина провода “+Rn” не особо критична, но его стоит подключать непосредственно на выходную клемму БП. Еще  стоит проконтролировать напряжение на AREF и верхнем по схеме выводе резистора R13 – в обоих точках должно быть около 2.5в. Вот в целом и вся настройка. Единственное на чем бы еще остановился – так это на кажущихся ненужными резисторах R29 R30 – они нужны для правильной работы автоопределения типов индикаторов. Также резистор R13 можно заменить на любой другой (в разумных пределах) номинал, не забывая что R15 = R13.

Прошивка EEPROM в перечне файлов нужна для того чтобы записать 0 по адресу будущей константы смещения нуля. Это нужно для того, кто хочет оценить масштаб трагедии со смещенным нулем с точностью до одного отсчета. Я же рекомендую просто при первом же запуске провести калибровку. Вот в общем и все не считая фузов:

Файлы:
Схема в SPlan 7
Печатная плата в Spint Layout 5
Прошивка
Прошивка EEPROM

Модификации исходной прошивки:
1. Прошивка, в которой реализовано запоминание порога срабатывания тока защиты после выключения питания, а также автоматическая инициализация EEPROM при начальной прошивке МК.
2. Прошивка в которой отключена разделительная запятая в канале тока. При соответствующем пересчете шунта / усилителя ток будет отображаться как 0…999.
3. Прошивка в которой запятая в канале измерения напряжения смещена на один символ вправо. Т.е. диапазоны выглядят как: 00.0…99.9 и 100…999. Пересчет входных делителей обязателен.
4. Прошивка в которой запятая в канале тока находится на индикаторе 2 . При соответствующем пересчете шунта / усилителя ток будет отображаться как 00.0…99.9.



X

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7

Usb программатор pic своими руками для windows 7