|
Внутрисхемное программирование, большой отход контроллегов при внутрисхемном прогр. |
|
|
|
Nov 26 2006, 03:48
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Мдя, на питатель можно не грешить. Качнул 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 мкФ.
|
|
|
|
|
Nov 26 2006, 13:13
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 23-11-06
Пользователь №: 22 645

|
вот еще выдержка из хелпа к винпику: 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 - Nov 26 2006, 13:33
|
|
|
|
|
Nov 26 2006, 14:32
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(J.Bond @ Nov 26 2006, 13:13)  вот еще выдержка из хелпа к винпику: ...
это типо транзистор пошустрее надо, поскольку конденсаторов то нету. Или както управлять питанием +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
|
|
|
|
|
Nov 26 2006, 14:45
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(SergR @ Nov 26 2006, 13:55)  Цитата(Серёга_1 @ Nov 13 2006, 07:40)  ... Конфигурация: __CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTEN & INTIO); (HT PICC) Программатор: ChipProg+ , ПО версия V. 3.95.00 или V. 4.00.12 Beta
Проблема в этом "MCLRDIS" при внутрисхемном программировании надо разрешать ногу сброса. иначе она первый раз программируется как порт ввода/вывода и приприповторном программировании (и при первойже верификации) на неё подаётся напряжение VPP (+12В) и эта нога порта (если не ошибаюсь RA3) выгорает, а возможно и ещё что-то MCLR может работать только как вход. Защитный диод на нем стоит только на землю [attachment=8422:attachment] в отличие от других ног [attachment=8423:attachment] Внутрисхемное программирование накладывает некоторые ограничения на смехотехнику самого устройства и не более. Не лучше ли прочитать внимательно документацию, чтобы не было сомнений про "возможно и ещё что-то"?
|
|
|
|
|
Nov 26 2006, 15:52
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 23-11-06
Пользователь №: 22 645

|
У меня длинный кабель программатора - около 70 см. Возможно это искажает форму сигнала.
Сообщение отредактировал J.Bond - Nov 26 2006, 15:52
|
|
|
|
|
Nov 26 2006, 18:35
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 23-11-06
Пользователь №: 22 645

|
Что я заметил, поскольку изначально мой программатор сделан под понипрог, я попробовал проверить что он делает с питанием при программировании. Так вот понипрог на некоторое время отключает питание когда начинает программирование, а другие проги - нет. В схеме програматора 3 линии в паралели управляют питанием Vdd, а так ими управлять очевидно умеет только понипрог. Так что может быть стоит попробовать на управление питанием пускать только один канал и соответственно настроить ево в программе (в частности винпик может управлять Vdd). Может это поможет.
Сообщение отредактировал J.Bond - Nov 26 2006, 18:36
|
|
|
|
|
Nov 27 2006, 03:36
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 23-11-06
Пользователь №: 22 645

|
Все, наконец получилось. В спецификации показан порядок захода в режим программирования: сначала подается Vpp, потом Vdd, потом все остальное. Что я сделал - в схеме для понипрога убрал диоды d2 и d1 идущие на кондер с3, оставил только d3. Это дало то, что подачей питания управляет только сигнал подачи Vpp. Но поскольку Vpp нарастает мгновенно (нет никаких конденсаторов) а на Vdd стоит конденсатор (с3 и с4), то Vdd подается с задержкой. Только пришлось увеличить с3 до 1000мкф (кстати и переставить его на вход u3), потому что при записи памяти-еепром-битов идут пропуски Vpp, и мелкий конденсатор быстро разряжался и выключал кристалл, всвязи с чем неудавалось запрограммировать биты настроек.
Вобщем с 12f6xx похоже ясно все, только теперь меня немного смущает, что возникли проблемы с другими кристаллами, в частности с 16f876a. Для него похоже питание надо подавать раньше чем Vpp, иначе он не опознается программатором (винпик800). Однако есть интересная фишка - если два раза подряд без паузы нажать в нем распознавание процессора - первый раз нераспознает а второй распознает. Я так понял, что 1000мкф просто не успевают разряжаться и процесс распознавания проходит правильно.
Но это меня неочень радует, надо думать чтото еще.
Спасибо всем, в частности xemul за советы.
Сообщение отредактировал J.Bond - Nov 27 2006, 04:01
|
|
|
|
|
Dec 13 2006, 17:52
|

Группа: Участник
Сообщений: 4
Регистрация: 21-12-05
Из: Ukraine
Пользователь №: 12 493

|
Цитата(J.Bond @ Nov 23 2006, 00:29)  У меня похожая проблема, только пик 12f629 и он нехочет программироваться. Читается, вся память 3fff, конфигурация 3fff, ID - FFFF. Поидее распиновка ног таже что и 12с508(509), программатор JDM, и ICProg и WinPIC ставят один и тот же диагноз. Насколько я понимаю спецификация программирования закладывается в программе, но оба программатора поддерживают 12f629. Заметил однако одну С нового PIC (если есть калибровочная RETLW OSCCAL в последней ячейке CODE) нелишним вычитать, написать на кусочке самоклейки-ценника, и приклеить прямо на него снизу. Все нормальные программеры не стирают у таких PIC RETLW OSCCAL. Пользуюсь EPIC. Еще ни разу не остался без родной RETLW OSCCAL.
--------------------
Toodle-pip!
|
|
|
|
|
Jan 27 2007, 07:51
|
Группа: Новичок
Сообщений: 1
Регистрация: 27-01-07
Пользователь №: 24 798

|
Цитата(Sir Jon @ Dec 26 2006, 13:34)  Пользуюсь схемой программатора предложенной Елисеевым на телесистемах....и маленько переписанным софтом (altprog) - благо исходники он любезно предоставил. Из более 100 штук проколов не было. А все разговоры про покупные программаторы - долгая и бесполезная полемика ибо рассматривать надо всегда конкретную задачу и конкретный кристалл. Где посмотреть можно схему
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|