Автор | Сообщение |
kasper123
|
Помогите плиз, может кто-то сталкивался
Программатор EXTRA-PIC шью ICprog версия 1.05с(1.05d)
после прошивки пик закрываеться (CT on) а в нем какая то левая пурга.
Тем же программатором, и той же программой без проблем шьеться и читаеться 12f675.
Панель одна и таже.
Вопрос ? что не так.
Зараннее большое спасибо. |
|
China
|
Это что такое? Может, CP? Защита кода? |
|
Slayer
Завсегдатай
Сообщения: 872
|
возможно "кривизна" самих PIC-ов. У меня токое было. (прога и железо - понька)
Добавлено Декабрь 01 2006
China - привет! |
|
China
|
Привет, Slayer. Получилось?
Если установлен бит защиты кода, то прошивка и не может прочитаться. На то она и защита. И 12f675 тоже не прочитается. А если читается, значит там бит защиты не установлен. К тому же, в 12f675 их два штуки. Отдельно на память программы, отдельно на данные в EEPROM. |
|
pioneer-s
Завсегдатай
Сообщения: 799
|
Тут может быть другая проблема . У этих пик-ов в конце прописан калибровочный байт . Нормальные программаторы не обращаются к этой ячейке памяти или запоминают её значение и восстанавливают при записи . Бесплатные проги затирают эту область , и пик можно выбрасывать . |
|
China
|
pioneer-s, этот байт нужен только для калибровки внутреннего RC генератора. Использовать или нет калибровку - дело разработчика. PIC прекрасно работает и затёртым этим байтом, только не удастся точно утановить 4 мГц внутреннего генератора.
В последней ячейки памяти программ сохраняется калибровочная константа для внутреннего RC генератора. На
эту ячейку памяти программ не распространяется действие бита защиты CP в слове конфигурации (кроме
микроконтроллеров PIC12C508/509). Калибровочная константа сохраняется в виде команды MOVLW XX, где XX -
калибровочное значение. После сброса микроконтроллера значение калибровки будет загружено в регистр W, счетчик
команд PC переполнится и микроконтроллер начнет выполнять программу пользователя с адреса 000h. В начале
выполнения программы имеется возможность загрузить калибровочную константу в регистр OSCCAL (05h) или
игнорировать ее.
Запись калибровочной константы в регистр OSCCAL позволяет устранить технологический разброс параметров
внутреннего RC генератора.
Примечание. Стирание памяти микроконтроллера также сотрет предварительно запрограммированную
калибровочную информацию. Для сохранения калибровочной информации ее рекомендуется прочитать перед
стиранием памяти микроконтроллера. |
|
pioneer-s
Завсегдатай
Сообщения: 799
|
China, я затер в нескольких пик-ах этот байт , по незнанию... они стали дурить . Пик-и выбросил.. |
|
China
|
У меня работают нормально, правда использую кварц, а не внутренний генератор. А в 12F675 у меня и внутренний генератор работает нормально при стёртом калибровочном байте. Конечно, реальная частота явно не 4 мГц.
Если в последнюю ячейку записать команду перехода куда-то в средину программы, то да.... Результат непредсказуем. |
|
kasper123
|
В принцыпе, я догадывался , но хотелось уточнить
Как я понял если затереть калибровочную константу, то пик попытаеться выполнять программу с адреса 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
|
Цитата: |
Все пики 508 ругались при прошивке на этот адрес, наверно не могли чего-то найти.
|
Это не PICи ругались, а ругался программатор.
Цитата: |
ДА 508 и 509, одноразовые, правда?
|
Правда.
Цитата: |
Как я понял если затереть калибровочную константу, то пик попытаеться выполнять программу с адреса 000h
|
Неправильно понял. Во всех случаях тактового генератора, кроме внутреннего, контроллер выполняет программу с адреса 0. В случае внутреннего генератора - с последней ячейки программной памяти. И ему по барабану есть там калибровка или она затёртая.
Цитата: |
Да, 508 зашились, с разными текстами (3 пика и три разных прошивки, и у всех стоит CP после прошивки) а 509 шился другим текстом, тоже выругался на адрес 000h, но работает.
|
Повторяю, это ругается не контроллер, а программатор. В данном случае он ругается потому, что после прошивки пытается проверить правильность записи, а прочитать правильно не может, потому что СР установлен. И не может прочитать самую первую ячейку, именно с неё начинается проверка. Калибровочная константа тут совсем ни при чём, она в самом конце памяти находится. |
|
|