Azovsky2 › Блог › Ремонт программатора PICkit3
Статья не окончена
Чтобы не шерстить интернет при очередном ремонте PICkit3, решил свести информацию в одну статью.
Данный не исправный клоно_экземпляр выглядит хуже всех, ранее ремонтируемых.
Отсутствует сигнал VPP_PUMP соответственно нет и VPP_TAR.
Отсутствуют сигналы ICSP_DAT и ICSP_CLK .
Статья будет строиться по принципу: замерил-записал в «он лайн» режиме. Художественного оформления пока не будет.
Начну с отличий в схеме от оригинала.
Нумерация элементов согласно схеме из даташит оригинального изделия.
*Самовосстанавливающиеся предохранители PTS 2_3_4 на выходах U8, U9, U11 74LVC1T45, отсутствуют. Вместо них установлены резисторы 30 Ом.
*Вместо сборки U6 FDC6420C установлены два разрозненных полевика N and P канал соответственно.
Предположительно
302U-FDV302P-MOSVET_P
335U-NDS335N-MOSVET_N
* вместо 2х канального операционного усилителя U5 MCP601 установлен почти аналог LM358, с обвязкой «под себя».
*Вместо U7- MCP 1727 установлен AMS1117 3.3v
Назначение некоторых элементов.
* U12 — 74AHC1G125— неинвертирующий драйвер буфера, может иметь три состояния на выходе. Выход переходит в высокоимпедансное состояние при высоком уровне на первой ноге (OE).
В основном устройство предназначено для работы с электроприводом, диапазон питания от 2,0 В до 5,5 В
* U8, U9, U11 74LVC1T45 1-битный шинный приемопередатчик с двуполярным питанием, тремя состояниями на выходе, [SOT-23-6]* U5 MCP601— КМОП операционный усилитель с однополярным питанием, 2.7В…5.5В.
Начинается как всегда с тщательного осмотра.
74LVC1T45 в канале ICSP_DAT и ICSP_CLK перепаивались и окаймлены перемычками. Скорее всего горели перед заменой, и выжгли рядом лежащие дорожки.
Присмотревшись внимательно, замечаю, что они запаяны вверх тормашками.
Скорее всего преставились. Аминь.
Необходима замена.
Но пока, просто выпаиваю их феном, с температурой 250 градусов. Снимаются хорошо. Программатор в режим To_Go, дабы не быть привязанным к компьютеру.
В официальном мануале «PICkit™ 3 Programmer/Debugger User’s Guide» о To_Go толком ничего не написано. Лучше воспользоваться MPLAB® X PICkit™ 3 User’s Guide For MPLAB® X IDE
Chapter 5. PICkit 3 Programmer-To-Go
Там же, есть таблица TABLE 5-2: PROGRAMMER-TO-GO OPERATION FEEDBACK CODES, где сведены блинк-коды сбоев программирования.
Выпаял две 74LVC1T45 в канале CLK and DAT.
Сразу появился VDD_PUMP, до селе отсутствующий. Упал потребляемый ток. Но по питанию присутствует наводка.
Замерять VDD_PUMP, проще на резисторе 10 кОм, припаяного ко второй ноге ОУ U5 (см. рисунок), что равнозначно замеру на 12ой ноге МК.
Он присутствует всегда, не зависимо от нажатии кнопки.
Отслеживаем путь VDD_PUMP . После фильтра, на второй ноге ОУ U5 ( в оригинальных изделиях 4я), ШИМ превращается в постоянку размахом в +0,8V. На выходе ОУ ( 1я нога) +4V.
На G полевика Q1 те же +4V. На его S +5V_USB. На D= 1.55V=VDD_INT. U5 охвачен обратной связью через R15
В момент генерации VDD_PUMP, на VPP_FBACK, постоянка 1.8 вольт.
По моему мнению, оно информирует микроконтроллер, о процессе программирования.
***********
Видел много видео, где в режиме Programmer-To-Go, внешнее питание на МК не подается. С клоноподибем, этот фокус не проходит. Внешнее питание обязательно. иначе не появится VPP_PUMP.
Напряжение VPP_TAR — при нажатии на кнопку, делает мгновенный скачок до +11 вольт, и плавный рост до 13 вольт за 100 us.
Постоянные напряжения на
Q5e-0v
Q5b-0v
Q5k-1.4v
Q7e-0v
Q7b-0v
Q7k-0v
вне режима программирования.
Можно сделать вывод, что части схемы VDD_PUMP-VPP_TAR исправны.
*************************
U10— источник опорного напряжения 2.5v
**************************
ICSP_CLK && ICSP_DAT
Поскольку 74LVC1T45 Штука двунаправленная, и отделить пакеты запроса от пакетов ответа с ней практически не реально. Пользуясь случаем ее отсутствия, считал запросные пакеты от PICkit3.
**************************
Проверка канала ICSP_CLK сводится к вылавливанию импульсов во время программирования.
CLK_EN
SCK
Сложный пакет импульсов, как нибудь растяну и соберу на одном экране.
**************************
Проверка канала ICSP_DAT аналогична ICSP_CLK
DATA_EN— постоянка 2.5 вольт на время программирования
9ть пакетов.
В первом 6ть импульсов Длительностью 3.3us. Амплитуда 3 вольта. Нарастание и спад за 400 ns.
Второй пакет с паузой от первого 8us- 8мь импульсов.
Третий пакет- пауза 18us, 2а импульса.
Четвертый пакет- пауза 32us, — 2а импульса.
Пятый пакет- пауза 38us, — 2а импульса.
Шестой пакет- пауза 32us, — 2а импульса.
Седьмой пакет- пауза 32us, — 2а импульса.
Восьмой пакет- пауза 38us, — 2а импульса.
Девятый пакет- пауза 38us, — 2а импульс.
CDO+CDI складываются на резисторах R29 && R30, и поступают на третью ногу U8 74LVC1T45.
Заменил пару U8 and U9 74LVC1T45 в каналах ICSP_DAT ICSP_CLK.
Соединение происходит успешно. ID МК отображается верно.
В режиме TO_GO По блинк-кодам программирование прошло успешно. Пока не проверял на сколько успешно.
Все дальнейшие действия, контролирую исправным PICkit3.
Поэтому, неисправный PIC, либо огрехи кабеля, или соединений, исключаются.
Попытка запрограммировать PIC в обычном режиме, прошла не удачно.
Программирование без подачи внешнего питания:
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x633
configuration memory
program memory
Address: 0 Expected Value: 280a Received Value: 0
Failed to program device
С подачей внешнего питания:
Connecting to MPLAB PICkit 3…
Currently loaded firmware on PICkit 3
Firmware Suite Version…01.52.02
Firmware type…Midrange
Target device was not found (could not detect target voltage VDD). You must connect to a target device to use PICkit 3.
В заливаемой прошивке установлен бит защиты. При считывании должны быть все нули. Проходит надпись, что считывание прошло успешно, но в Programme Memory вот такая бяка:
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 3F8C 3F8C 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 0000
0000 0000 0000 0000 0000 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C
3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C 3F8C
Пока предполагаю неисправность флэш, либо повреждена прошивка PIC24 в PICkit3.
В последствии, эта версия не подтвердится.
********************
Снимаю бит защиты в прошивке. Заливаю ее в PIC исправным программатором.
Читаю неисправным. Результат:
Первый байт в прошивке считывается верно, затем чтение идет с переменным успехом. Какие то байты верные, какие то нет. Но в какой то момент, происходит некий сброс, и чтение начинается по новой, с нулевого адреса. Эти места, я выделил на фото зеленым. Иногда, читается много кратно только нулевой адрес.
Проверяю питание на второй ноге во время чтения. Есть некая подозрительная дерготня. Как при питании от PICkit, так и при внешнем питании. Но в целом, оно стабильно.
Звоню на пробой, имеющие отношение к VDD_TAR цепи. Сопротивление на впаянном резисторе R58 номиналом в 1кОм, составляет 500 Ом, против 0,86 кОм в исправном PICkit3.
Выпаиваю U11, ответственную за LVP c виду красавица. дорожки вокруг нее целы.
И сопротивление на R58 восстанавливается. 0,86 кОм. Оставляю программатор без нее. Испытуемый PIC, не поддерживает низковольтное программирование.
Но программатор шить не хочет.
Но, теперь стал почти нормально стирать PIC.В редких ячейках, вместо 3FFF, есть иные записи.
**************************
Проверил два полевика, ( в оригинале сборка U6 ) сравнил напряжения на U12, c рабочим PICkit3, отклонений не обнаружил. 74LVS1T45, так же в норме.
**************************
Выловил осциллографом, что в моменты чтения, программирования, и даже соединения (далее по тексту «под нагрузкой»), идет сбой по питанию на время этих действий.
Появляется дикая наводка. Будто бы сигнал, кто то по верхнему фронту красит широкой кистью. Ощущение, буд то бы на это время, отваливается масса.
Присоединяю массовый крокодил осциллографа к минусу USB. Щуп на вторую ногу главного разъема, и там наводка во время чтения-записи.
Оставляю «крокодил» на минусе USB, щуп на массу программируемого МК.
Под нагрузкой, возникает разность потенциалов между ними примерно в вольт.
Явный признак нарушения массы.
Отключаю питание, звоню массу от МК до USB, и сопротивление составляет 0,02 Ом.
Обрыва нет?
Паяю временную перемычку «по массе». И все недуги пропадают. Прошивка считывается верно, программирование проходит удачно. Исчезает «вилка» между массой МК и USB .
Причина найдена. Микротрещина на третьем пине главного разъема (масса). И главное зараза звонилась в «ноль». Но стоило немного подвергнуть его изгибу, и он развалился на пополам.
Причина найдена, ремонт окончен.
Позже наведу в статье порядок, и возможно перерисую фотку с нумерацией элементов.
**************************
О чем предстоит написать еще.
**************************
**************************
Проверка схемы формирования VDD_TAR и контроля подачи внешнего напряжения (VDD_FBACK)
**************************
О ошибках и их причинах в процессе прошивки.
**************************
Полезные ссылки.
Как перепрошить PICkit3
На плате есть нераспаянный 6-пиновый разъём J2 с шагом 1,27mm (первый вывод — со скосом на шелкографии). Делаете 5-жильный шнурок PLS2,54-6 — PLS1,27-6, все линии 1:1 (6-е контакты не нужны, выдернуть). Иголочки 1,27 просто вставляете в отверстия J2 и слегка перекашиваете для уверенного контакта. Далее с помощью исправного PicKit3 и какой-то ма… MPLAB заливаете прошивку: pickit3_PIC24FJ256GB106.rar.
www.microchip.su/attachme…mentid=10724&d=1492146534
Вопрос:
Сообщение от in37usd Посмотреть сообщение
Так как правильно »заливать» прошивку в ремонтируемый pickit3?
Через »Импорт»?
И тогда конфигурацию не менять менять, ( какая появилась в окне конфигурации, ту и оставить без измененния при режиме »программатор»)?
Ответ:
Да, так, собственно, и заливаются прошивки в 99% случаев для типового железа.
&&&&&&&&&&&&&&
**************************
.
Неисправности PICkit 3, симптомы возможные причины.
.
%%%%%%%%%%%%%%%%%%%%%%%%%
Target Device ID (0x0) does not match expected Device ID (0x101e0000).
1. Пробит или не исправен один из ключей VPP_TAR Q6 Q7.
2. В старых PICkit3, необходимо закоротить резистор R26, R45, R43 перемычкой.
Replace (R26) with 0 ohms or jumper wire. The same modification can be made to the LVP (R45) and CLOCK (R43) nodes.
ETN #32
Интересный топик об подобной проблеме.
Топик стартер, заменил все, включая PIC 24 в PICkit3. В итоге оказался пробит вышеупомянутый ключ.
PICkit 3 strange problem.
%%%%%%%%%%%%%%%%%%%%%%%%%
Target Device ID (00000000)
1. Пробит или не исправен один из ключей VPP_TAR Q6 Q7.
%%%%%%%%%%%%%%%%%%%%%%%%%
Target device was not found (could not detect target voltage VDD). You must connect to a target device to use PICkit 3.
1. Нет массы в соединении PICkit и МК, либо не поступает внешнее напряжение.
%%%%%%%%%%%%%%%%%%%%%%%%%
Failed to program device.
1. Нет массы в соединении PICkit и МК, либо не поступает напряжение на программируемый МК от PICkit ( обрыв).
2. Неисправен программируемый МК.
%%%%%%%%%%%%%%%%%%%%%%%%%
Выдержки из постов с форума. К статье не относятся, висят здесь пока в виде заметок.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Напряжения на ногах 74LVS1T45:
1 ножка у всех +3,3в
2 — земля
3 — при программировании импульсы 5В ?
4 — при программировании импульсы 5В ?
5 — определяет направление портов.
6 — 5В
%%%%%%%%%%%%%%%%%
Информация по ремонту. Вышел из строя PICKit3 (распространенный клон от Sure Electronics, далее в скобках обозначения элементов для этого клона). Работал и вдруг перестал видеть МК. Разбор полета показал, что нет Vpp, а точнее оно есть, но не +13в. Проверил по схеме импульсы Vpp_PUMP c МК приходят на R23(R58) и далее на базу Q2(Q6), а это схема Boost. Но на коллекторе Q2(Q6) импульсов нет. Заменил его на MMBT2222A, появились импульсы на коллекторе и, соответственно, +13в VPP.
Что странно — неисправный транзистор прозванивался также как и исправный.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Еще некоторые выводы по поводу работы PICkit3.
Имеется сигнал VDD_PUMP (шим) с вывода 12 U1, который устанавливает напряжение питания VDD_TAR программируемого устройства. И есть сигнал VDD_FBACK, который поступает на вывод 14 U1. Казалось бы, вот она петля ОС для регулирования VDD_TAR. Не тут то было! Сигнал VDD_FBACK в регулировке не участвует. Там видимо расчитывается коэффициент заполнения ШИМ для конкретного напряжения на выходе.
Как узнал. В IPE при питании от PICKit3 не определялся МК — среда писала, что надо 5в, а на выходе 4,65, и дальше отказывалось работать. Я замерил параметры и амплитуду ШИМ. U1 питался от 3,1в. Поднял питание до 3,3в (не надо удивляться, т.к. это клон и там питание сделано на LM1117-ADJ и надо только делитель подправить). Напряжение на выходе сразу поднялось до 4,8в. IPE замолчала про напряжение и начала определять и работать с МК. А параметры ШИМ остались прежними, кроме амплитуды, которая поднялась с 3,1 до 3,3 за счет подъема питания.
Комментарий.
Спасибо, полезная информация! Получается, сигнал VDD_FBACK нужен просто для измерения VDD, не более того.
%%%%%%%%%%%%%%%%%
Напомню, что при серьёзных программных затыках иногда быстрее перепрошить сам PicKit3 — требуется только шлейф PLS2,54-PLS1,27 и другой программатор.
При первом подключении надо только подождать, пока он обновится до текущей версии MPLAB.
%%%%%%%%%%%%%%%%%