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

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

Проблема!!!!

При программировании по внутрисхемному интерфейсу сыходят из строя конттроллеры (не функционируют, мертвые). Схема рабочая(перепайка процессора и работаем).

Питание при программировании от программатора.

 

Питание подается , считываются программатором, перепрограммируются, верификация ОК!, но не работают. И таких доходит до 10%, от общего кол-ва.

 

Контроллер: PIC12F675

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

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

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


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

Не знаю как PIC16F675, но PIC18F1320-I/P имеют определенный процент (~0,8%) "непрограммируемых" микросхем. Иногда помогает исключение защиты памяти.

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


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

Скорее всего слетает байт калибровки (точнее, программатор неправильно его считал, а потом записал не думая, что получилось). Что живет в убитых кристаллах по адресу 0x3fe? Должно быть что-то вида 0x34xx (retlw xx), xx - и есть заводская калибровка.

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


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

Скорее всего слетает байт калибровки (точнее, программатор неправильно его считал, а потом записал не думая, что получилось). Что живет в убитых кристаллах по адресу 0x3fe? Должно быть что-то вида 0x34xx (retlw xx), xx - и есть заводская калибровка.

 

 

Может быть по адресу 0x3fff, по моему в этом адресе ложат кончтанту, + программатор ограничивает доступ к последнему элементу от 0 до 0x3fe.

 

Но согласен проверка не помешает

 

Есть вероятность что портятся байты конфигурации bandgap (неправильно читаются или еще как)

 

Буду проверять , программатор не разрешает эти биты произвольно править.

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


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

Вам на microchip.ru уже все сказали - если вы нарушаете спецификацию программирования - никто вам не поможет. Используйте нормальный программатор и выкусите конденстатор 100 мкф по питанию. trt вам все подробно объяснил.

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


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

Проверьте в битах конфигурации правильно ли Вы выбрали режим ГЕНЕРАТОРА.

Вероятнее всего причина в этом. А программатор ChipProg+ - замечательный, пользуюсь им уже

более 4 лет и никогда не было вопросов. Кстати, уже на сайте Phyton.ru выложен 4.32, но это никак

не соотносится с Вашей проблемой !

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


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

Причина может быть и в низковольтовом программировании. В моей практике 3-5 раз и

контроллер перестает записываться.С 14 вольтами они не спорят.

Если верификация Ok, то вероятно контроллеры исправны.Прочитайте в них память и конфигурационное слово.

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


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

Вам на microchip.ru уже все сказали - если вы нарушаете спецификацию программирования - никто вам не поможет. Используйте нормальный программатор и выкусите конденстатор 100 мкф по питанию. trt вам все подробно объяснил.

 

 

Я хочу уточнить. Нужен ответ: они будут программироваться, НО возможно работать НЕ будут.

 

Если я нарушаю спецификацию, программатор ( если он хороший) должен сообщить мне об этом, а на деле программаторникакого несоответствия не обнаруживает.

 

Я обязательно изменю конденсатор и проведу пробное программирование партии, но я хочу выяснить что именно выходит из строя(затирается в памяти), нужно узнать причину

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


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

Скорее всего слетает байт калибровки (точнее, программатор неправильно его считал, а потом записал не думая, что получилось). Что живет в убитых кристаллах по адресу 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.

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


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

соответствующий адаптер истользую, сделанный самостоятельно по схеме предложенной производителем 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

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


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

Извините, утро вечера гораздо приятнее:). 0x34xx в 675 живет по адресу 0x3ff. Был неправ.

Каким образом программаторы умудряются запороть калибровку, мне не понятно. Приключалось на всех помянутых мной программаторах. Тот же ProMate при верификации спокойно заявляет "Calibration bits invalid", хотя начало программирования предполагает, что предварительно было считано что-то вроде 0x34xx (иначе он сразу орет про калибровку и ничего не делает).

Самое гадство - ни ProMate, ни ChipProg не позволяют записать калибровку с потолка (например, 0x3480 как середину диапазона). Я восстанавливал калибровку на PICStart'e под MPLab 5.7, которые еще не были такими умными. Сейчас забил, и, т.к. число отвалившихся микросхем плавно приближается к 200 (на ~50000 запрограммированных), студент в фоновом режиме пишет прогу для восстановления калибровки.

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


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

Давно пользуюсь для программирования программой WinPic и простым программатором на сом порте. Из 10000 ни одного прокола. Там кстати можно менять значение калибровки.

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


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

За ChipProg замечено - есть проблемы с ICSP, особенно с 18хх - с родной "шайбой" (icd2) проблем в тех же условиях нет

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


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

Самое гадство - ни ProMate, ни ChipProg не позволяют записать калибровку с потолка (например, 0x3480 как середину диапазона). Я восстанавливал калибровку на PICStart'e под MPLab 5.7, которые еще не были такими умными. Сейчас забил, и, т.к. число отвалившихся микросхем плавно приближается к 200 (на ~50000 запрограммированных), студент в фоновом режиме пишет прогу для восстановления калибровки.

 

PICkit2 умеет восстанавливать утерянную калибровку методом прошивки маленькой программы которая дергает ногой, PICkit2 измеряет частоту и восстанавливает калибровку. Так что если студент умный - посмотрит исходники PICkit2.

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


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

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

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


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

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

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

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

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

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

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

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

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

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