Те, кто покупал программатор микроконтроллеров и микросхем памяти RH-0001C (или собирал его аналог), — знают, что он позволяет программировать только те модели микроконтроллеров PIC, которые поддерживают алгоритм перевода в режим программирования, известный как «Vpp-first». Алгоритм перевода в режим программирования, известный как «Vdd-first» программатором не поддерживается.
Подробнее о различных алгоритмах перевода PIC-контроллеров в режим программирования можно почитать вот по этой ссылке.
Вместе с тем, большое количество моделей PIC-контроллеров (особенно старых), типа PIC16F84A или PIC16F877 поддерживают только алгоритм «Vdd-first».
Ограниченность функционала программатора RH-0001C связана с тем, что он не умеет управлять линией Vpp. Предложеная в этой статье схема позволяет решить указанную проблему и расширить функционал программатора RH-0001C таким образом, чтобы стало возможным программировать с его помощью PIC-контроллеры, поддерживающие только алгоритм «Vdd-first».
Вот здесь есть небольшая таблица, в которой указано какие алгоритмы перевода в режим программирования поддерживают разные микроконтроллеры PIC.
Итак, ниже представлена схема на двух транзисторах, которая позволяет переделать управление таким образом, чтобы сигнал Reset1 разъёма XT2 управлял линией Vpp. В этом случае вместо Vpp неуправляемой станет линия Vdd, но это в данном случае не важно.
Vdd для питания контроллера можно взять с соседнего разъёма XT3 программатора или вообще использовать штатное питание, если используется внутрисхемное программирование.
Транзисторы можно взять любые маломощные с UКЭ max больше 12 Вольт. Номиналы резисторов тоже можно менять в довольно широких пределах (по хорошему их нужно пересчитывать в зависимости от коэффициента усиления транзисторов).
Скачать печатную плату (DipTrace 3.2.0.1)
При этом в программе никакие линии дополнительно инвертировать не нужно, поскольку после двойного инвертирования транзисторами дополнительной схемы логика сигнала останется такой же, какой и была. То есть при высоком уровне на линии Reset1 получится высокий уровень сигнала Vpp, а при низком уровне на линии Reset1 получится низкий уровень Vpp.
Схема испытывалась с микроконтроллером PIC16F877 и программой IC-Prog 1.05D. Ниже под спойлером представлен фотоотчёт проведённых испытаний.
а Reset1 это выход VddTx ? 😉
Да, на progopic2 Reset1 называется VddTx