Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не меняются фьюзы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Spider
Собрал параллельный программатор и начал писать на него софт.
Сделал ресет процу, запросил у него Sign, запросилось. Всё как надо.
Пошёл далее. Запросил фьюзы и лок бит, тоже всё работвет.
Начал менять фьюзы, а они не меняются sad.gif По RDY/BSY вроде как записалось. А на самом деле всё осталось. И так уже делал и эдак. И задерками играл. Что может быть? Может я чего не дочитал?
Палыч
Как предположение: запрограммирован Lock bit
Spider
Цитата(Палыч @ Dec 22 2006, 12:45) *
Как предположение: запрограммирован Lock bit

При чтении лок битов получаю значение 255, тобиш всё разлочено. Но я пробовал Делать Отчистку чипа. не помогает.
Палыч
А, что за МК пытаетесь программировать? А то, в Errata на tiny2313 было

Parallel Programming does not work
Parallel Programming is not functioning correctly. Because of this, reprogramming
of the device is impossible if one of the following modes are selected:
– In-System Programming disabled (SPIEN unprogrammed)
– Reset Disabled (RSTDISBL programmed)

Может заглянуть в Errata на Ваш МК?
Spider
Цитата(Палыч @ Dec 22 2006, 14:48) *
А, что за МК пытаетесь программировать? А то, в Errata на tiny2313 было

Parallel Programming does not work
Parallel Programming is not functioning correctly. Because of this, reprogramming
of the device is impossible if one of the following modes are selected:
– In-System Programming disabled (SPIEN unprogrammed)
– Reset Disabled (RSTDISBL programmed)

Может заглянуть в Errata на Ваш МК?

Мока мучуую МЕГА8. Вот добился какой-то отдачи. Пишу во фьюзы 0xff, а получаю при проверке 0xdf. Но при этом лок биты равны 0xdf. Никак не могу сбросить LockBits. В даташите сказано:
Цитата
The Chip Erase will erase the Flash and EEPROM(1) memories plus Lock Bits. The Lock
Bits are not reset until the Program memory has been completely erased. The Fuse Bits
are not changed. A Chip Erase must be performed before the Flash and/or the
EEPROM are reprogrammed.

Делаю стирание. Проц весело дёргает ногой BYSY 8.40ms типа стёрся. Но Лок биты так и остались df. Беру другой проц с заведомо разлочеными LockBits смотрим - 0xFF. Вот такие пироги. т.е. неправильное поведение DATA порта исключено.
Nanobyte
Вопрос, конечно, глупый, но всё-таки его задам. Всё нормально с питанием НА ВЫВОДАХ процессора? Есть-ли блокировочные конденсаторы на ногах питания? Видел я собранные программаторы с длинными кабелями и БЕЗ конденсаторов. Типа, это-же не рабочее устройство, а просто программатор, зачем ему ...
Ну а в режиме программирование питание должно быть особо хорошим и отфильтрованным.
Ljubitel
Цитата
Мока мучуую МЕГА8. Вот добился какой-то отдачи. Пишу во фьюзы 0xff, а получаю при проверке 0xdf. Но при этом лок биты равны 0xdf. Никак не могу сбросить LockBits.

Пока предлагаю поменять мегу8 на любую другую и попробовать попрограммировать ее.
Сам помнится мучался именно с восьмеркой. Какая то она "недоделанная".
defunct
С командами записи и сигналами часом не напортачили?
Вот отрыл пример из девайса, который Fuses M8 стирает:

Код
ResetFusesToDefaultValues:
    ldi   AL, $40
    rcall LoadCommand
    ldi   AL, $D9
    rcall LoadLowData
    rcall ExecuteCommandWithBS1
    rcall WaitAFew

    ldi   AL, $40
    rcall LoadCommand
    ldi   AL, $E4
    rcall LoadLowData
    rcall ExecuteCommand
    rcall WaitAFew
    ret


Это дело работает..
Использованные функции делают следующее:

;--------------------------------------------
; загружает команду в чип
; --> AL - код команды
; <-- ничего не возвращает
LoadCommand:

;--------------------------------------------
; загружает данные (L)(BS1=0) в чип
; --> AL - данные
; <-- ничего не возвращает
LoadLowData:

;--------------------------------------------
; загружает данные (H)(BS1=1) в чип
; --> AL - данные
; <-- ничего не возвращает
LoadHighData:

;---------------------------------------------
; Выполняет загруженную команду
ExecuteCommand:

;---------------------------------------------
; Аналогично Execute Command только с установленным BS1 = 1
ExecuteCommandWithBS1:
Spider
Разобрался таки в чём дело. Точнее что-то сделал и оно заработало. А точнее навставлял задержек после пеполненных действий. Задержки бешенные в сравнение с теми, то рекомендует даташит, но рабьотает. А мне более и не надо smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.