Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программатор
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Screw
Здравствуйте, столкнулся с такой проблемой:
Использовал сначало программатор AVReal, затем uniprof - оба есс-но соеденины по схеме "5 проводков".

Все замечательно работало, пока не тронул фьюзы в uniprof (МК - Mega16) трогал CKSEL - хотел выставить внутренний генератор на 8 Mhz.
После этого uniprof и avreal определяют МК, стирают его, НО не шьют, фьюзы читаются как все 1.

Что посоветуете? Возможно ли используя имеющийся у меня инструментарий восстановить МК в начальное состояние? Или придется искать параллельный программатор?

Какие существуют параллельные программаторы для AVR - доступные для самостоятельного изготовления? Помогут ли они?
AST
Цитата(Screw @ Dec 17 2006, 20:29) *
Здравствуйте, столкнулся с такой проблемой:
Использовал сначало программатор AVReal, затем uniprof - оба есс-но соеденины по схеме "5 проводков".

Все замечательно работало, пока не тронул фьюзы в uniprof (МК - Mega16) трогал CKSEL - хотел выставить внутренний генератор на 8 Mhz.
После этого uniprof и avreal определяют МК, стирают его, НО не шьют, фьюзы читаются как все 1.

Что посоветуете? Возможно ли используя имеющийся у меня инструментарий восстановить МК в начальное состояние? Или придется искать параллельный программатор?

Какие существуют параллельные программаторы для AVR - доступные для самостоятельного изготовления? Помогут ли они?


Я с вышеуказанными программаторами не работал, но возможно виновата скорость работы через интерфейс программирования. Я с таким сталкивался со своим AVRISP mkII. Нужно что бы тактовая частота в интерфейсе программирования была меньше 1/4 тактовой частоты микроконтроллера. Если вы трогали CKSEL, и прошили на работу 8 МГц, то тактовая частота (у меня это ISP Freq) должна быть <=2Мгц.
Screw
К сожалению не помогает.... Уже по всякому пробовал.
У меня есть одна рабочая мега, но её использовать не могу - с нее лишь читаю фьюзы...

Я маленько ошибся - фьюзы читаются нулями (все), т.е. в Uniprof везде стоят галочки.

Так же нашел глюк с AVREAL - только что...
Если работать просто в командной строке - он выводит следующее:

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev4 (Mar 24 2006 08:54:51) http://www.ln.com.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Command:
-p1 +mega16 -ap
Power ON
Device connected, MEGA16 detected
Chip not locked
Fuses
OSCCAL = FF, FF, FF, FF
BODLEVEL = 1
BODEN = 1
SUT = 3
CKSEL = F
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
Reset pin released
Power OFF

Стоит поставить в команде >>1.txt (это значит вывод не на экран, а в файл), выдается следующее:

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev4 (Mar 24 2006 08:54:51) http://www.ln.com.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Command:
-p1 +mega16 -ap
Power ON
Device connected, MEGA16 detected
Chip not locked
Fuses
OSCCAL = CA, CB, C3, C4
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = 4
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 0
CKOPT = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
Reset pin released
Power OFF

Пытаюсь зашить CKSEL=1 получаю следующую картину (это из файла взято.... на экран выводит такую же чушь, как и раньше):

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev4 (Mar 24 2006 08:54:51) http://www.ln.com.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Command:
-p1 +mega16 -ap -o500 -fCKSEL=1 -w
Power ON
Device connected, MEGA16 detected
Chip not locked
Fuses
OSCCAL = CA, CB, C3, C4
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = 4
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 0
CKOPT = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
Programming fuses
New fuses value
OSCCAL = CA, CB, C3, C4
BODLEVEL = 1
BODEN = 1
SUT = 3
CKSEL = F
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
Reset pin released
Power OFF

Затем считываю - вижу, что CKSEL=4, как и раньше...
У кого какие идеи?
kv_addr
Цитата(Screw @ Dec 17 2006, 21:29) *
Здравствуйте, столкнулся с такой проблемой:
Использовал сначало программатор AVReal, затем uniprof - оба есс-но соеденины по схеме "5 проводков".

Все замечательно работало, пока не тронул фьюзы в uniprof (МК - Mega16) трогал CKSEL - хотел выставить внутренний генератор на 8 Mhz.
После этого uniprof и avreal определяют МК, стирают его, НО не шьют, фьюзы читаются как все 1.

Что посоветуете? Возможно ли используя имеющийся у меня инструментарий восстановить МК в начальное состояние? Или придется искать параллельный программатор?

Какие существуют параллельные программаторы для AVR - доступные для самостоятельного изготовления? Помогут ли они?

Если CKSEL3...0=1111, то это значит: External Crystal/Ceramic Resonator, т.е. внутренний RC генератор не работает, нужно либо кварц навесить, либо ввести внешнее тактирование. AVReal прекрасно с этим справляется, достаточно на ногу XTAL1 подать одноименный сигнал (5-я нога LPT если это соединение "5 веревок", сам пользуюсь ByteBlaster-ом) и установить ключик в командной строке -o0. После этого можно будет поменять CKSEL под 8 МГц внутреннего генератора и дальше работать с ним.

Вообще-то предложил бы "5 веревок" заменить на Байтбластер, как-то безопаснее для LPT порта. А из простых паралельных могу предложить: http://elm-chan.org/works/avrx/report_e.html
Ссылки на софт, схема и прочее - на этой же страничке.
Сам такой собрал, вполне нормально работает.
Lem
Почти наверняка поможет только внешний клок wink.gif
Либо параллельный программатор. Фузы детям не игрушка.
Screw
Цитата(kv_addr @ Dec 17 2006, 22:43) *
Цитата(Screw @ Dec 17 2006, 21:29) *

Здравствуйте, столкнулся с такой проблемой:
Использовал сначало программатор AVReal, затем uniprof - оба есс-но соеденины по схеме "5 проводков".

Все замечательно работало, пока не тронул фьюзы в uniprof (МК - Mega16) трогал CKSEL - хотел выставить внутренний генератор на 8 Mhz.
После этого uniprof и avreal определяют МК, стирают его, НО не шьют, фьюзы читаются как все 1.

Что посоветуете? Возможно ли используя имеющийся у меня инструментарий восстановить МК в начальное состояние? Или придется искать параллельный программатор?

Какие существуют параллельные программаторы для AVR - доступные для самостоятельного изготовления? Помогут ли они?

Если CKSEL3...0=1111, то это значит: External Crystal/Ceramic Resonator, т.е. внутренний RC генератор не работает, нужно либо кварц навесить, либо ввести внешнее тактирование. AVReal прекрасно с этим справляется, достаточно на ногу XTAL1 подать одноименный сигнал (5-я нога LPT если это соединение "5 веревок", сам пользуюсь ByteBlaster-ом) и установить ключик в командной строке -o0. После этого можно будет поменять CKSEL под 8 МГц внутреннего генератора и дальше работать с ним.

Вообще-то предложил бы "5 веревок" заменить на Байтбластер, как-то безопаснее для LPT порта. А из простых паралельных могу предложить: http://elm-chan.org/works/avrx/report_e.html
Ссылки на софт, схема и прочее - на этой же страничке.
Сам такой собрал, вполне нормально работает.


Да стоит у меня клок внешний и в AVReal прописывал - не помогает sad.gif

P.S. Интересует параллельный программатор для USB - на новых ноутах к сожалению нет ни com, ни LPT
bodja74
А говорите стирал кристалл-стирал кристалл,а это что ?

BLB1 = 3 запрет записи бутлоадером
BLB0 = 3 запрет записи\чтения программатором.
Screw
Цитата(bodja74 @ Dec 17 2006, 23:12) *
А говорите стирал кристалл-стирал кристалл,а это что ?

BLB1 = 3 запрет записи бутлоадером
BLB0 = 3 запрет записи\чтения программатором.


Честно сказать, такое ощущение, что программатор не корректно работает.... AVReal живую мегу видит, но говорит device not recognized.... Uniprof - видит, шьет и тп...

Дохлую - uniprof видит, но фьюзы не шьет (я так понимаю, если бы было включено внешнее тактирование, кристалл бы вообще не виделся), ну и конечно не шьет - только при стирании говорит ОК... Читать - читает - там пусто... (до этого была программа зашита)

Подскажите, может я в AVREAL команды как-то не так ввожу...
bodja74
Я понькой пользуюсь,но думаю в AVReal команда "стирание кристалла" тоже найдется,она автоматом
снимает фузы защиты.

А насчет AVReal,дока есть ,колдуйте с коммандной строкой,наколдуете мне расскажите. smile.gif
Я выкинул статью в nix-06.nm.ru в раздел "тест" ,вот она в тесте и сидит из за этой командной строки,так как AVReal не пользуюсь ,проверить пока не соберу плату программатора не могу.smile.gif
kv_addr
Я обратил внимание на следующее: "avreal/WIN32".
Операционка-то какая? Если NT или XP, то есть подозрение, что можно не обеспечить нормального тактирования через LPT порт.
Собственно говоря, для работы с LPT-программаторами у меня на технологическом компе стоит Win98 и собствено DOS, из под которой и программирую без проблем с работой с LPT.
kv_addr
Цитата(Screw @ Dec 17 2006, 23:58) *
Да стоит у меня клок внешний и в AVReal прописывал - не помогает sad.gif

P.S. Интересует параллельный программатор для USB - на новых ноутах к сожалению нет ни com, ни LPT

Чегой-то я не пойму. AVReal, "5 веревок" и без LPT? blink.gif
А это как?
Screw
Цитата(kv_addr @ Dec 17 2006, 23:35) *
Я обратил внимание на следующее: "avreal/WIN32".
Операционка-то какая? Если NT или XP, то есть подозрение, что можно не обеспечить нормального тактирования через LPT порт.
Собственно говоря, для работы с LPT-программаторами у меня на технологическом компе стоит Win98 и собствено DOS, из под которой и программирую без проблем с работой с LPT.


Под Linux - та же песня krapula.gif
Цитата(kv_addr @ Dec 17 2006, 23:48) *
Цитата(Screw @ Dec 17 2006, 23:58) *

Да стоит у меня клок внешний и в AVReal прописывал - не помогает sad.gif

P.S. Интересует параллельный программатор для USB - на новых ноутах к сожалению нет ни com, ни LPT

Чегой-то я не пойму. AVReal, "5 веревок" и без LPT? blink.gif
А это как?


Сейчас есть обычный ПК. В планах - приобрести ноутбук... Все просто wink.gif
kv_addr
Цитата(Screw @ Dec 18 2006, 00:57) *
Под Linux - та же песня krapula.gif

Хм-м-м... С AVReal-ом проблем как-то не замечал. А может попробовать вместо "5 веревок" собрать Байтбластер, минут 5-10 работы. Чем черт не шутит, может какие-то проблемы с уровнями или фронтами? Тут сказать с уверенностью ничего не могу, никогда по "веревкам" не программировал.

Да, еще один непонятный момент в этом:
Command:
-p1 +mega16 -ap -o500 -fCKSEL=1 -w
Power ON
Device connected, MEGA16 detected
Chip not locked
Fuses
OSCCAL = CA, CB, C3, C4
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = 4
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 0
CKOPT = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
Programming fuses
New fuses value
OSCCAL = CA, CB, C3, C4
BODLEVEL = 1
BODEN = 1
SUT = 3
CKSEL = F
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
Reset pin released
Power OFF

Если считывается CKSEL=4, то надо бы установить -o8000, а не o500. Вполне возможно, что оно как-то все же работает, но далеко не корректно.

Цитата(Screw @ Dec 18 2006, 00:57) *
Сейчас есть обычный ПК. В планах - приобрести ноутбук... Все просто wink.gif

Оно-то конечно хорошо, но я, как ретроград, предпочел бы для технологического и с лпт, и с ком-ом. Пусть не самый навороченный и скорострельный.
Andy Great
Если "5 веревок", то куда клок с порта подается? Проверьте внимательно.
Screw
Цитата(Andy Great @ Dec 18 2006, 13:14) *
Если "5 веревок", то куда клок с порта подается? Проверьте внимательно.


XTAL1.... плюнул я на это дело - завтро пойду за параллельным...
Andy Great
Значит, все-таки не 5, а 6? Опять же, какая длина проводов?
bvn123
Это же ответил сегодня на такую же тему на Казус.ру:

В ATmega, которыми я пользовался, последовательному программатору Fuse-бит, запрещающий последовательное же программирование, недоступен.
Для таких МК, как ATmega8, можно запрограммировать бит RSTDISBL (7-й в старшем Fuse), переведя линию RESET в режим работы еще одной линии ввода-вывода, тогда действительно нужен параллельный программатор.
Бывают сбои при программировании Fuse в составе системы (In-System), например, когда к линиям программирования подключены какие-то дополнительные цепи. В какое состояние переходят Fuse - неизвестно, устр. действительно перестает реагировать на последовательный программатор.
Несколько таких МК восстановились при подаче внешнего тактового сигнала от генератора на TTL элементах, у меня 500кГц.
Для восстановления RSTDISBL (был намеренно запрограммирован) действительно понадобилось делать параллельный прогр. (усеченный, только для восстановления старшего Fuse)
Artur Nikitin
Цитата(kv_addr @ Dec 17 2006, 23:35) *
Я обратил внимание на следующее: "avreal/WIN32".
Операционка-то какая? Если NT или XP, то есть подозрение, что можно не обеспечить нормального тактирования через LPT порт.
Собственно говоря, для работы с LPT-программаторами у меня на технологическом компе стоит Win98 и собствено DOS, из под которой и программирую без проблем с работой с LPT.

На ХР avreal работает нормально, только вот сама винда иногда адреса LPT портов меняет, делает то 378(LPT1), то 278(LPT2). Пока я галочку не снял ("Автоматическая настройка"), при каждом запуске виндовса у меня адреса менялись.
SasaVitebsk
С AVREAL работаю сколько он есть. Проблем вообще не было. За это время раз пять менял комп свой. У меня своя компьютерная контора. smile.gif Никаких проблем ни разу не было.

Бывали проблемы с новыми кристаллами. Так по началу не совсем правильно шилось t2313, а совсем недавно посылал письмо Редчуку, по поводу M640. При том M2560 шьётся нормально. Она и M640 шьётся, но сигнатура не верно прописана и, якобы не совпадает. Поэтому шью с ключом -! .

Для того чтобы вывести в файл требуется писать не ">>1.txt" а ">1.txt"

Всё прекрасно работает. Сам иногда пользуюсь, чтобы детально просмотреть фузы и весь протокол.

Иногда требуется подобрать частоту и напряжение. Так для записи m640 я сейчас пользуюсь строкой

avreal32 -ab -! +mega640 -e -w -v -l2 -o1000 -%% office.hex office.eep -fcksel=7,jtagen=1,bodlevel=5,ckdiv=1 -p1

для м8
avreal32 -ab +mega8 -e -w -v -l2 -o1000 -%% DvEsyU2.hex dvinaeasy.eep -fcksel=f,ckopt=0,blev=0,boden=0 -p1

для t2313
avreal32 +tiny2313 -ab -! -e -v -w -l2 modemlnT.hex -o400 -%% -fCKSEL=F,CKOUT=1,SUT=3,CKDIV=1 -p1
kipmaster
Аналогичная проблема!
Использую avreal, byteblaster, atmega8 (16 MHz), питание 5В. Написал и отладил прогу с внутренним генератором 1 МГц по умолчанию, fuse не трогал. Шилось без проблем. Потом поменял fuse CKSEL=8, остальные не менял. Avreal перестал выполнять любые операции, пишет can't resync. Что подозрительно - и контроллер с ранее зашитой программой по ресету ничего не делает. И так в двух девайсах - статистика, однако!
ключ -о0 не помогает, снижение скорости тоже. Состояние fuse не читается... sad.gif(
Помогите, кто может!
Maddy
Цитата(SasaVitebsk @ Feb 28 2007, 16:20) *
Для того чтобы вывести в файл требуется писать не ">>1.txt" а ">1.txt"

Позволю себе мааленькое уточнение '>' переназначить stdout в файл(файл переписываеться) '>>' stdout дописываеться к файлу.Есть еще '2> ' это редирект stderr (ну и 2>> тож можно)...

По поводу avreal используем родной byteblaster + кабель удлинитель LPT ( машина далеко от отладочной поверхности) За 4 года долбанулись две меги 16 и 161 , Но при этом соседи за стенкой устроили (во время программирования) Оччень Хорошее K3 ( кабель 4x10 поплавился нах) - и комп и byteblaster выжили wink.gif IMHO чего-то с питаловом не впорядке .......
kipmaster
Вопросы по постам 1 и 20 снимаются!
Почитал даташит (полезно иногда). CKSEL=8 - это внешний RC генератор. Потому кристаллы и не заводятся. Чтобы изменить fuse, нужно посчитать и впаять RC.
defunct
Цитата(kipmaster @ Dec 3 2007, 10:59) *
Потому кристаллы и не заводятся. Чтобы изменить fuse, нужно посчитать и впаять RC.

Можно просто подать внешний клок на XTAL1, смотря что вам будет удобнее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.