Перейти к содержанию
    

Внутрисхемное программирование

Мдя, на питатель можно не грешить.

Качнул ICProg. Выдержка из хелпа:

Enable VCC control for JDM: Normally JDM (compatible) programmers cannot control VCC. This means that the power supply is always on. Some PIC microcontrollers cannot be programmed correctly without VCC being toggled. This option allows IC-Prog to control the VCC on JDM Programmers. This option is not guaranteed to work and is therefore experimental and only for advanced users. Please do not use this option, because it can fail programming of other types of devices.

Почти про фазы Луны:).

Сейчас более внимательно посмотрел на схему основной платы программатора, чтобы попытаться понять, как он может управлять Vcc.

Резюм: пытаться управлять Vcc (в опциях программы) можно только с внешним источником. Чтобы все было более-менее корректно, нужно "+" C3 перенести с JP2.2 на JP2.3 (непосредственно на вход стабилизатора). Я бы еще добавил ключ для принудительного разряда C4, т.к. неизвестно, на какое время ICProg снимает Vcc - самостоятельно PIC будет долго разряжать 47 мкФ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот еще выдержка из хелпа к винпику:

Programming a PIC16F84 works, but programming a 16F628 does not work with my programmer - why ?

There is a major difference in the programming specifications. Most newer devices require a very fast rise on Vpp and / or Vpp (less than 50 microseconds between them) which is impossible with some of the "extremely simple" programmers I have seen on the web. The problem is, if the PIC starts executing its code because Vdd (the supply voltage) is present, but Vpp (the programming voltage) is not raised to say 12 Volts fast enough. So the program counter will not be zero when entering programming mode, and programming will fail for this reason. Get or borrow a two-channel oscilloscope and measure these voltages. If there is a slowly rising edge on the Vpp pin, throw those large electrolyte caps out to make the rise time faster. Or, invest a few pennies / cents for a few transistors and build a better interface.

There is a workaround for this problem when using the JDM programmer: WinPic sets all control lines HIGH for about 500ms, which should discharge all capacitors, before applying the Vpp voltage. I tried this successfully with a PIC12F675, where the MCLR-input had been disabled previously, and had no problem when trying to overwrite the chip. If this doesn't work with your JDM programmer, let me know, maybe making the 500ms discharge interval even longer helps. About the JDM programmer and oscilloscopes: DO NOT CONNECT THE OSCILLOSCOPE TO THE PIC'S GROUND - the scope's ground will most likely be connected to the PC's ground, which causes a short circuit for the JDM programmer's tricky supply voltage !

 

это типо транзистор пошустрее надо, поскольку конденсаторов то нету. Или както управлять питанием +5в...

Изменено пользователем J.Bond

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

Конфигурация: __CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTEN & INTIO); (HT PICC)

Программатор: ChipProg+ , ПО версия V. 3.95.00 или V. 4.00.12 Beta

 

Проблема в этом "MCLRDIS" при внутрисхемном программировании надо разрешать ногу сброса. иначе она первый раз программируется как порт ввода/вывода и приприповторном программировании (и при первойже верификации) на неё подаётся напряжение VPP (+12В) и эта нога порта (если не ошибаюсь RA3) выгорает, а возможно и ещё что-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот еще выдержка из хелпа к винпику:

...

 

это типо транзистор пошустрее надо, поскольку конденсаторов то нету. Или както управлять питанием +5в...

На основной плате программатора по схеме стоят два электролита по 47 мкФ (C4 я бы вообще заменил на керамику 0.1-1 мкФ).

Более шустрые транзисторы в ключах не требуются - если оставить C3 там, где он нарисован в схеме, время открывания ключа на Q6 будет определяться временем заряда C3 от линий DTR, RTS и, может быть, TXD COM-порта. Время закрывания - разрядом C3 через R8/базу Q4. Поэтому я и сказал, что

C3 перенести с JP2.2 на JP2.3 (непосредственно на вход стабилизатора).

С внешним питанием и JP2 в положении 1-2 оболочка может попробовать как-то поуправлять Vcc.

В 41191D.pdf не нашел подтверждения выделенному во фразе

Most newer devices require a very fast rise on Vpp and / or Vpp (less than 50 microseconds between them)

Сверху нормируется только параметр TVHHR - время нарастания MCLR (от VSS до VHH) для входа в режим программирования - не более 1мкс. Я про это уже писал.

Интервал между подачей Vpp и Vcc и время нарастания Vcc никак не ограничивается.

Но предложенный метод исследования проблемы (двухлучевым) бациллоскопом скорее всего позволит выяснить ее причину. Если соберетесь этим заняться, не забудьте про:

About the JDM programmer and oscilloscopes: DO NOT CONNECT THE OSCILLOSCOPE TO THE PIC'S GROUND - the scope's ground will most likely be connected to the PC's ground

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

Конфигурация: __CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTEN & INTIO); (HT PICC)

Программатор: ChipProg+ , ПО версия V. 3.95.00 или V. 4.00.12 Beta

 

Проблема в этом "MCLRDIS" при внутрисхемном программировании надо разрешать ногу сброса. иначе она первый раз программируется как порт ввода/вывода и приприповторном программировании (и при первойже верификации) на неё подаётся напряжение VPP (+12В) и эта нога порта (если не ошибаюсь RA3) выгорает, а возможно и ещё что-то

MCLR может работать только как вход. Защитный диод на нем стоит только на землю

 

в отличие от других ног

 

Внутрисхемное программирование накладывает некоторые ограничения на смехотехнику самого устройства и не более.

Не лучше ли прочитать внимательно документацию, чтобы не было сомнений про "возможно и ещё что-то"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня длинный кабель программатора - около 70 см. Возможно это искажает форму сигнала.

Изменено пользователем J.Bond

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что я заметил, поскольку изначально мой программатор сделан под понипрог, я попробовал проверить что он делает с питанием при программировании. Так вот понипрог на некоторое время отключает питание когда начинает программирование, а другие проги - нет. В схеме програматора 3 линии в паралели управляют питанием Vdd, а так ими управлять очевидно умеет только понипрог. Так что может быть стоит попробовать на управление питанием пускать только один канал и соответственно настроить ево в программе (в частности винпик может управлять Vdd). Может это поможет.

Изменено пользователем J.Bond

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все, наконец получилось. В спецификации показан порядок захода в режим программирования: сначала подается Vpp, потом Vdd, потом все остальное. Что я сделал - в схеме для понипрога убрал диоды d2 и d1 идущие на кондер с3, оставил только d3. Это дало то, что подачей питания управляет только сигнал подачи Vpp. Но поскольку Vpp нарастает мгновенно (нет никаких конденсаторов) а на Vdd стоит конденсатор (с3 и с4), то Vdd подается с задержкой. Только пришлось увеличить с3 до 1000мкф (кстати и переставить его на вход u3), потому что при записи памяти-еепром-битов идут пропуски Vpp, и мелкий конденсатор быстро разряжался и выключал кристалл, всвязи с чем неудавалось запрограммировать биты настроек.

 

Вобщем с 12f6xx похоже ясно все, только теперь меня немного смущает, что возникли проблемы с другими кристаллами, в частности с 16f876a. Для него похоже питание надо подавать раньше чем Vpp, иначе он не опознается программатором (винпик800). Однако есть интересная фишка - если два раза подряд без паузы нажать в нем распознавание процессора - первый раз нераспознает а второй распознает. Я так понял, что 1000мкф просто не успевают разряжаться и процесс распознавания проходит правильно.

 

Но это меня неочень радует, надо думать чтото еще.

 

Спасибо всем, в частности xemul за советы.

Изменено пользователем J.Bond

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня похожая проблема, только пик 12f629 и он нехочет программироваться. Читается, вся память 3fff, конфигурация 3fff, ID - FFFF. Поидее распиновка ног таже что и 12с508(509), программатор JDM, и ICProg и WinPIC ставят один и тот же диагноз. Насколько я понимаю спецификация программирования закладывается в программе, но оба программатора поддерживают 12f629. Заметил однако одну

С нового PIC (если есть калибровочная RETLW OSCCAL в последней ячейке CODE) нелишним вычитать, написать на кусочке самоклейки-ценника, и приклеить прямо на него снизу.

 

Все нормальные программеры не стирают у таких PIC RETLW OSCCAL.

Пользуюсь EPIC. Еще ни разу не остался без родной RETLW OSCCAL.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пользуюсь схемой программатора предложенной Елисеевым на телесистемах....и маленько переписанным софтом (altprog) - благо исходники он любезно предоставил. Из более 100 штук проколов не было. А все разговоры про покупные программаторы - долгая и бесполезная полемика ибо рассматривать надо всегда конкретную задачу и конкретный кристалл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пользуюсь схемой программатора предложенной Елисеевым на телесистемах....и маленько переписанным софтом (altprog) - благо исходники он любезно предоставил. Из более 100 штук проколов не было. А все разговоры про покупные программаторы - долгая и бесполезная полемика ибо рассматривать надо всегда конкретную задачу и конкретный кристалл.

Где посмотреть можно схему :santa2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...