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

Не меняются фьюзы

Собрал параллельный программатор и начал писать на него софт.

Сделал ресет процу, запросил у него Sign, запросилось. Всё как надо.

Пошёл далее. Запросил фьюзы и лок бит, тоже всё работвет.

Начал менять фьюзы, а они не меняются :( По RDY/BSY вроде как записалось. А на самом деле всё осталось. И так уже делал и эдак. И задерками играл. Что может быть? Может я чего не дочитал?

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


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

Как предположение: запрограммирован 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 на Ваш МК?

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


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

А, что за МК пытаетесь программировать? А то, в 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 порта исключено.

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


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

Вопрос, конечно, глупый, но всё-таки его задам. Всё нормально с питанием НА ВЫВОДАХ процессора? Есть-ли блокировочные конденсаторы на ногах питания? Видел я собранные программаторы с длинными кабелями и БЕЗ конденсаторов. Типа, это-же не рабочее устройство, а просто программатор, зачем ему ...

Ну а в режиме программирование питание должно быть особо хорошим и отфильтрованным.

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


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

Мока мучуую МЕГА8. Вот добился какой-то отдачи. Пишу во фьюзы 0xff, а получаю при проверке 0xdf. Но при этом лок биты равны 0xdf. Никак не могу сбросить LockBits.

Пока предлагаю поменять мегу8 на любую другую и попробовать попрограммировать ее.

Сам помнится мучался именно с восьмеркой. Какая то она "недоделанная".

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


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

С командами записи и сигналами часом не напортачили?

Вот отрыл пример из девайса, который 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:

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


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

Разобрался таки в чём дело. Точнее что-то сделал и оно заработало. А точнее навставлял задержек после пеполненных действий. Задержки бешенные в сравнение с теми, то рекомендует даташит, но рабьотает. А мне более и не надо :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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