проблемы прошивки 12с508а

kasper123
01/12/2006 11:40
Помогите плиз, может кто-то сталкивался
Программатор EXTRA-PIC шью ICprog версия 1.05с(1.05d)
после прошивки пик закрываеться (CT on) а в нем какая то левая пурга.
Тем же программатором, и той же программой без проблем шьеться и читаеться 12f675.
Панель одна и таже.
Вопрос ? что не так.
Зараннее большое спасибо.

China
01/12/2006 15:21
kasper123 писал:
(CT on)


Это что такое? Может, CP? Защита кода?

Slayer
01/12/2006 15:26
возможно "кривизна" самих PIC-ов. У меня токое было. (прога и железо - понька) недовольство, огорчение

Добавлено Декабрь 01 2006

China - привет! улыбка

China
01/12/2006 15:32
Привет, Slayer. Получилось?
Если установлен бит защиты кода, то прошивка и не может прочитаться. На то она и защита. И 12f675 тоже не прочитается. А если читается, значит там бит защиты не установлен. К тому же, в 12f675 их два штуки. Отдельно на память программы, отдельно на данные в EEPROM.

pioneer-s
04/12/2006 05:50
Тут может быть другая проблема . У этих пик-ов в конце прописан калибровочный байт . Нормальные программаторы не обращаются к этой ячейке памяти или запоминают её значение и восстанавливают при записи . Бесплатные проги затирают эту область , и пик можно выбрасывать .

China
04/12/2006 07:06
pioneer-s, этот байт нужен только для калибровки внутреннего RC генератора. Использовать или нет калибровку - дело разработчика. PIC прекрасно работает и затёртым этим байтом, только не удастся точно утановить 4 мГц внутреннего генератора.

В последней ячейки памяти программ сохраняется калибровочная константа для внутреннего RC генератора. На
эту ячейку памяти программ не распространяется действие бита защиты CP в слове конфигурации (кроме
микроконтроллеров PIC12C508/509). Калибровочная константа сохраняется в виде команды MOVLW XX, где XX -
калибровочное значение. После сброса микроконтроллера значение калибровки будет загружено в регистр W, счетчик
команд PC переполнится и микроконтроллер начнет выполнять программу пользователя с адреса 000h. В начале
выполнения программы имеется возможность загрузить калибровочную константу в регистр OSCCAL (05h) или
игнорировать ее.
Запись калибровочной константы в регистр OSCCAL позволяет устранить технологический разброс параметров
внутреннего RC генератора.
Примечание. Стирание памяти микроконтроллера также сотрет предварительно запрограммированную
калибровочную информацию. Для сохранения калибровочной информации ее рекомендуется прочитать перед
стиранием памяти микроконтроллера.

pioneer-s
04/12/2006 07:57
China, я затер в нескольких пик-ах этот байт , по незнанию... они стали дурить . Пик-и выбросил..

China
04/12/2006 08:31
У меня работают нормально, правда использую кварц, а не внутренний генератор. А в 12F675 у меня и внутренний генератор работает нормально при стёртом калибровочном байте. Конечно, реальная частота явно не 4 мГц.

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

kasper123
09/12/2006 19:15
В принцыпе, я догадывался , но хотелось уточнить улыбка
Как я понял если затереть калибровочную константу, то пик попытаеться выполнять программу с адреса 000h
Все пики 508 ругались при прошивке на этот адрес, наверно не могли чего-то найти.
Да, 508 зашились, с разными текстами (3 пика и три разных прошивки, и у всех стоит CP после прошивки) а 509 шился другим текстом, тоже выругался на адрес 000h, но работает. По тому , что я делал, у меня насчет 508 есть два варианта: питание и глючные пики. В программаторе кренка, на Upr и в принцыпе дает нужное 13,2 напряжение, но я давал в начале 11,78-12,0 В. на вход программатора, а у кренок 1,5-1,75 В. должен быть мин. запас. Вот я и грешу на питание, потому что 509 я шил с напр. на входе программатора 15 В. А второй вариант прост глючные пики....
Но остаеться вопрос, почему 509 выругался по адресу 000h, но остался работоспособен, и еще как.
улыбка
ДА 508 и 509, одноразовые, правда?

China
11/12/2006 08:56
Цитата:

Все пики 508 ругались при прошивке на этот адрес, наверно не могли чего-то найти.


Это не PICи ругались, а ругался программатор.
Цитата:

ДА 508 и 509, одноразовые, правда?


Правда.


Цитата:

Как я понял если затереть калибровочную константу, то пик попытаеться выполнять программу с адреса 000h


Неправильно понял. Во всех случаях тактового генератора, кроме внутреннего, контроллер выполняет программу с адреса 0. В случае внутреннего генератора - с последней ячейки программной памяти. И ему по барабану есть там калибровка или она затёртая.



Цитата:

Да, 508 зашились, с разными текстами (3 пика и три разных прошивки, и у всех стоит CP после прошивки) а 509 шился другим текстом, тоже выругался на адрес 000h, но работает.


Повторяю, это ругается не контроллер, а программатор. В данном случае он ругается потому, что после прошивки пытается проверить правильность записи, а прочитать правильно не может, потому что СР установлен. И не может прочитать самую первую ячейку, именно с неё начинается проверка. Калибровочная константа тут совсем ни при чём, она в самом конце памяти находится.

liveinternet.ru RadioTOP Rambler's Top100 –ейтинг@Mail.ru