|
Внутрисхемное программирование, большой отход контроллегов при внутрисхемном прогр. |
|
|
|
Nov 13 2006, 08:40
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Проблема!!!! При программировании по внутрисхемному интерфейсу сыходят из строя конттроллеры (не функционируют, мертвые). Схема рабочая(перепайка процессора и работаем). Питание при программировании от программатора.
Питание подается , считываются программатором, перепрограммируются, верификация ОК!, но не работают. И таких доходит до 10%, от общего кол-ва.
Контроллер: PIC12F675 Конфигурация: __CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTEN & INTIO); (HT PICC) Программатор: ChipProg+ , ПО версия V. 3.95.00 или V. 4.00.12 Beta
|
|
|
|
|
Nov 14 2006, 09:00
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Цитата(xemul @ Nov 13 2006, 22:33)  Скорее всего слетает байт калибровки (точнее, программатор неправильно его считал, а потом записал не думая, что получилось). Что живет в убитых кристаллах по адресу 0x3fe? Должно быть что-то вида 0x34xx (retlw xx), xx - и есть заводская калибровка. Может быть по адресу 0x3fff, по моему в этом адресе ложат кончтанту, + программатор ограничивает доступ к последнему элементу от 0 до 0x3fe. Но согласен проверка не помешает Есть вероятность что портятся байты конфигурации bandgap (неправильно читаются или еще как) Буду проверять , программатор не разрешает эти биты произвольно править.
|
|
|
|
|
Nov 14 2006, 12:57
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Цитата(Alex B._ @ Nov 14 2006, 13:44)  Вам на microchip.ru уже все сказали - если вы нарушаете спецификацию программирования - никто вам не поможет. Используйте нормальный программатор и выкусите конденстатор 100 мкф по питанию. trt вам все подробно объяснил. Я хочу уточнить. Нужен ответ: они будут программироваться, НО возможно работать НЕ будут. Если я нарушаю спецификацию, программатор ( если он хороший) должен сообщить мне об этом, а на деле программаторникакого несоответствия не обнаруживает. Я обязательно изменю конденсатор и проведу пробное программирование партии, но я хочу выяснить что именно выходит из строя(затирается в памяти), нужно узнать причину
|
|
|
|
|
Nov 14 2006, 15:13
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Серёга_1 @ Nov 14 2006, 12:00)  Цитата(xemul @ Nov 13 2006, 22:33)  Скорее всего слетает байт калибровки (точнее, программатор неправильно его считал, а потом записал не думая, что получилось). Что живет в убитых кристаллах по адресу 0x3fe? Должно быть что-то вида 0x34xx (retlw xx), xx - и есть заводская калибровка.
Может быть по адресу 0x3fff, по моему в этом адресе ложат кончтанту, + программатор ограничивает доступ к последнему элементу от 0 до 0x3fe. Но согласен проверка не помешает Есть вероятность что портятся байты конфигурации bandgap (неправильно читаются или еще как) Разрядность инструкции контроллера PIC12F675 составляет 14 бит. При просмотре дампа памяти программы удобно включать режим просмотра по 2-хбайтовым словам. Инструкция возврата калибровочного значения располагается по адресу 0x3fe, и там должно быть именно 0x34xx. Подробности в даташите. Цитата Буду проверять , программатор не разрешает эти биты произвольно править. И это правильно (это я про то, что "не разрешает")  . Подробности в даташите. У меня под рукой и ChipProg2, и ProMate2, и PICStart, так что есть с чем сравнивать. Могу сказать, что ChipProg при внутрисхемном программировании спокойно справляется с емкостью 100 мкФ по питанию, но очень желательно при этом использовать соответствующий адаптер - буферы по PGD, PGC в программаторе слабоваты. На ProMate было от души матов сложено за бесподобную конструкцию установки адаптеров - вместо разъемов две полоски токопроводящей резины - типа работаем с ЖК-индикатором  . Дорогая малополезная игрушка. PICStart - development programmer. Еще одна возможная причина отвалов - плохой/мерцающий/зависящий от человеческого фактора контакт в используемом разъеме ICSP.
|
|
|
|
|
Nov 15 2006, 08:50
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
соответствующий адаптер истользую, сделанный самостоятельно по схеме предложенной производителем Chip Prog. Сделан качественно.
Конечный адрес в микросхеме установлен 0х3fe,
С асемблером общаюсь на ВЫ, программны на нем не писал (больше уважаю С ), но листинг в узких местах алгоритмов смотрю и оптимизирую(по возможности).
В одной из неработающих МС действительно удалена команда возврата и константа, каким образом - непонятно (может жертва экспериментов), с этим ясно.
вот код который загружает константу (стандартная директива ht-picc):
/*----- настройка генератора ----- */ 365: 366: OSCCAL = _READ_OSCCAL_DATA(); BCF 0x3, 0x5 CALL 0x3ff BSF 0x3, 0x5 MOVWF 0x10
практически, на мой взгляд, эдентично даташиту
Если не сложно обьясните почему CALL 0x3ff а не CALL 0x3fe
Контакт слотовый , может быть и мерцающим (но мне кажется программатор при верификации должен сообщить о несовпадении)
Сообщение отредактировал Серёга_1 - Nov 15 2006, 09:12
|
|
|
|
|
Nov 15 2006, 10:29
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Извините, утро вечера гораздо приятнее  . 0x34xx в 675 живет по адресу 0x3ff. Был неправ. Каким образом программаторы умудряются запороть калибровку, мне не понятно. Приключалось на всех помянутых мной программаторах. Тот же ProMate при верификации спокойно заявляет "Calibration bits invalid", хотя начало программирования предполагает, что предварительно было считано что-то вроде 0x34xx (иначе он сразу орет про калибровку и ничего не делает). Самое гадство - ни ProMate, ни ChipProg не позволяют записать калибровку с потолка (например, 0x3480 как середину диапазона). Я восстанавливал калибровку на PICStart'e под MPLab 5.7, которые еще не были такими умными. Сейчас забил, и, т.к. число отвалившихся микросхем плавно приближается к 200 (на ~50000 запрограммированных), студент в фоновом режиме пишет прогу для восстановления калибровки.
|
|
|
|
|
Nov 18 2006, 16:26
|
Группа: Новичок
Сообщений: 4
Регистрация: 18-02-06
Пользователь №: 14 483

|
Давно пользуюсь для программирования программой WinPic и простым программатором на сом порте. Из 10000 ни одного прокола. Там кстати можно менять значение калибровки.
|
|
|
|
|
Nov 22 2006, 15:16
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 1-11-06
Пользователь №: 21 855

|
Цитата(xemul @ Nov 15 2006, 10:29)  Самое гадство - ни ProMate, ни ChipProg не позволяют записать калибровку с потолка (например, 0x3480 как середину диапазона). Я восстанавливал калибровку на PICStart'e под MPLab 5.7, которые еще не были такими умными. Сейчас забил, и, т.к. число отвалившихся микросхем плавно приближается к 200 (на ~50000 запрограммированных), студент в фоновом режиме пишет прогу для восстановления калибровки. PICkit2 умеет восстанавливать утерянную калибровку методом прошивки маленькой программы которая дергает ногой, PICkit2 измеряет частоту и восстанавливает калибровку. Так что если студент умный - посмотрит исходники PICkit2.
|
|
|
|
|
Nov 23 2006, 00:29
|
Участник

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

|
У меня похожая проблема, только пик 12f629 и он нехочет программироваться. Читается, вся память 3fff, конфигурация 3fff, ID - FFFF. Поидее распиновка ног таже что и 12с508(509), программатор JDM, и ICProg и WinPIC ставят один и тот же диагноз. Насколько я понимаю спецификация программирования закладывается в программе, но оба программатора поддерживают 12f629. Заметил однако одну особенность, когда вставляю 16f84a или 16f876a (с другими пока неработал, но с этими никаких таких проблем небыло) WinPIC распознает ее правильно, а когда вставляю 12-й - пишет "устройство нераспознано". Как я понимаю это проблема конкретной микросхемы, может кто сталкивался с подобным и лечится ли это или попробовать прошить другой экземпляр??
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|