Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.09.2003, 13:11
|
|
Прохожий
Регистрация: 03.07.2003
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Кто виноват - MPLAB, программатор или прокладка?
Программатор некий ТРБ2, MPLABом опознаётся как родной PICSTART. Контроллер PIC12F675. MPLAB
6.30.00. Глюк такой.
Компилирую программу, жму кнопку "Program" в MPLABе. Программирование проходит нормально, верификация (которая делается следом самим MPLABом) - тоже всё ОК. Жму кнопку "Verify" -
обнаруживается несоответствие одного байта EEPROM. Причём адрес этого байта определяется связкой
MOVLW XX
MOVWF EEADR,
присутствующей в начале программы. Как может текст программы влиять на процесс программирования/верификации??? Еще прикол - в начале программы есть команда
RLF DEV_TYPE,F (DEV_TYPE=#58, но этот адрес роли не играет)
Если эту команду убрать - глюк исчезает. Даже если изменить её на RLF DEV_TYPE,W - всё путём. Но если написать
RLF DEV_TYPE,W
MOVWF DEV_TYPE
глюк снова проявляется. За что MPLAB так невзлюбил эту ячейку?? Изменение имени ячейки или её адреса эффекта не даёт, EEPROM всё равно программируется криво.
Программа в зашитом пике читает злосчастную ячейку EEPROM так же, как и программатор при повторных верификациях, то есть криво (обнаруживается там не то, что записывали).
На нескольких контроллерах глюк проявляется абсолютно одинаково. Программатор без нареканий программировал эти самые 12F675 уже год. Пытался загрузить злополучный HEX в другой программатор (ChipProg) - косяк тот же. Видимо, дело всё-таки в HEXe. На что грешить - совершенно непонятно.
|
|
|
Сказали "Спасибо" Paragon
|
|
|
28.09.2003, 11:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
а не пробовал версию мплаб-а поменять? попробуй 5.хх поставить. Глюк уж больно странный.
Или другой вариант - в моменты переключения режимов программатора может стартовать проц. (конечно, если используется внутренний генератор). А если еще и напряжение на границе минимального (или еще ниже) тады ой. Может быть что угодно. Например, старт не нулевого адреса... процедура записи в ЕЕПРОМ стартует с неправильными данными и трет нафиг твою ячейку.....
З.Ы. Опять же, программатором управляет мплаб.... Я бы попробовал другую версию... Особенно из старых, стабильных, из ветки 5.хх
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:33.
|
|