ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Не прошивается tiny2313
Я нуб в прошивке
Еще ничего не прошивал..
Все делал из обучалки "Бегущий огонек" на МК на этом сайте..
Собрал программатор, собрал бегущий огонек с SPI..
Скомпилировал простенькую прогу (вывод статических огоньков), подключил к компу, взял Avreal...
Выполняю:
avreal32.exe +tiny2313 -p1 -ab -o10Mhz -ew -c lights.hex -n -5 -v -%%
(Т.е. замедляю программинг (-5), проверяю (-v), вывожу доп инфо (-%%))
Результат:
Ничего не прошилось...
Мои пути решения:
1. Проверил плату.. Увидел, что не подпаял кварц (мдя
Паял в разные дни.. Кварц распаял, а к ногам 4,5 - не подвел его).. Подпаял - результат _такой же_ И вывод avreal такой же..
2. Проверил плату еще раз
Замерял напряжение на микросхемах МК и шинного формирователя на БайтБластере.. На 1й плате - 4.4В, на второй - 3.8В (питал от 3 АА = 4.5В).. Видимо падение от диода..
Взял Крен и взял Крону на 9В.. Напряжения стали 4.9В и 4.4В на этих двух микрухах соответственно...
Все вроде ОК.. Все должно шиться.. При записи программки загорается светодиод, которые индицирует запись.. Но вот ошибка все такая-же, как выше...
Если прошивать без -v, т.е. без проверки, то все шьется "на ура".. Ошибок avreal не показывает, но программа не прошивается и "erase counter" остается всегда 1...
Фьюзы никакие не менял (в статье про них ничего не написано.. Использовал командную строку из статьи как основу..)
В выводе avreal не нравится это:
RSTDISBL = 1
Кто что думает?.. Что я делаю не так?...
Спасибо!
Все делал из обучалки "Бегущий огонек" на МК на этом сайте..
Собрал программатор, собрал бегущий огонек с SPI..
Скомпилировал простенькую прогу (вывод статических огоньков), подключил к компу, взял Avreal...
Выполняю:
avreal32.exe +tiny2313 -p1 -ab -o10Mhz -ew -c lights.hex -n -5 -v -%%
(Т.е. замедляю программинг (-5), проверяю (-v), вывожу доп инфо (-%%))
Результат:
Код: Выделить всё
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev3 (Oct 31 2008 14:01:29) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: +tiny2313 -p1 -ab -o10Mhz -ew -c runfire.hex -n -5 -v -%
% LPT port number 1
% LPT base address 0x378
% DLportIO.dll succesfully loaded, DLportIO.sys interface activated
% LPT write cycle 1.58us
% ByteBlaster found
% ByteBlaster mode
% osc = 10000kHz -> setup=1, hold=1,1
% Reset
% PgmOn reply 00 00 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 91
% GetID reply 00 30 00 0A
% Read ID: 0x1E910A
Device connected, tiny2313 detected
% ReadLock command 58 00 00 00
% ReadLock reply 00 58 00 FF
Chip not locked
% ReadOsccal command 38 00 00 00
% ReadOsccal reply 00 38 00 5E
% ReadOsccal command 38 00 01 00
% ReadOsccal reply 00 38 00 5F
Number of erases not initialized
% Erase reply 00 AC 80 00
Device erased
% Reset
% PgmOn reply 00 00 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 91
% GetID reply 00 30 00 0A
% Read ID: 0x1E910A
Device connected, tiny2313 detected
% ReadLock command 58 00 00 00
% ReadLock reply 00 58 00 FF
% ReadFuses command 50 00 00 00
% ReadFuses reply 00 50 00 64
% ReadFuses command 58 08 00 00
% ReadFuses reply 00 58 08 DF
% ReadFuses command 50 08 00 00
% ReadFuses reply 00 50 08 FF
Fuses
OSCCALs = 5E 5F
CKDIV = 0
CKOUT = 1
SUT = 2
CKSEL = 4
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 7
RSTDISBL = 1
SELFPRGEN = 1
Writing erase counter = 1
Programming CODE memory
done (0.0s)
Verifying CODE memory
% 000007FE: expected 01, read FF
% 000007FF: expected 00, read FF
failed, 2 errors
done (0.0s)
Can't write number of erases
Reset pin released
Adapter disabled
Ничего не прошилось...
Мои пути решения:
1. Проверил плату.. Увидел, что не подпаял кварц (мдя
2. Проверил плату еще раз
Взял Крен и взял Крону на 9В.. Напряжения стали 4.9В и 4.4В на этих двух микрухах соответственно...
Все вроде ОК.. Все должно шиться.. При записи программки загорается светодиод, которые индицирует запись.. Но вот ошибка все такая-же, как выше...
Если прошивать без -v, т.е. без проверки, то все шьется "на ура".. Ошибок avreal не показывает, но программа не прошивается и "erase counter" остается всегда 1...
Фьюзы никакие не менял (в статье про них ничего не написано.. Использовал командную строку из статьи как основу..)
В выводе avreal не нравится это:
RSTDISBL = 1
Кто что думает?.. Что я делаю не так?...
Спасибо!
Последний раз редактировалось Dantist Вс мар 29, 2009 19:48:29, всего редактировалось 1 раз.
Чуть дополню:
Вместо AT90S2313 я взял attiny2313 (полная маркировка: Attiny2313-20PU)
Также, как я понял тут (http://radiokot.ru/start/mcu_fpga/avr/05/) и тут (http://radiokot.ru/start/mcu_fpga/avr/03/) конденсаторы в цепи питания неполярные и и имеют емкость по 0.1 мкФ каждый (Я правильно уловил этот момент !?!)... Я взял 100 нФ для программатора и 50 нФ для самого бегущего огонька.. Я так понимаю, что это не критично..
Я прав/не прав?...
Спасибо за помощь! :)
Вместо AT90S2313 я взял attiny2313 (полная маркировка: Attiny2313-20PU)
Также, как я понял тут (http://radiokot.ru/start/mcu_fpga/avr/05/) и тут (http://radiokot.ru/start/mcu_fpga/avr/03/) конденсаторы в цепи питания неполярные и и имеют емкость по 0.1 мкФ каждый (Я правильно уловил этот момент !?!)... Я взял 100 нФ для программатора и 50 нФ для самого бегущего огонька.. Я так понимаю, что это не критично..
Я прав/не прав?...
Спасибо за помощь! :)
Что пропало? В новой от внутреннего RC генератора тактирование установленно, теперь переключил на работу с кварцем и без него не будет запускаться - подключай кварц.
На "гаечный ключ" кликни и посмотри порт какой выбран СОМ или LPT, заодно на Probe кликни, посмотри тест проходит или нет, должен OK! сообщить если в порядке.
На "гаечный ключ" кликни и посмотри порт какой выбран СОМ или LPT, заодно на Probe кликни, посмотри тест проходит или нет, должен OK! сообщить если в порядке.
Dantist писал(а):Чуть дополню:
Вместо AT90S2313 я взял attiny2313 (полная маркировка: Attiny2313-20PU)...
Спасибо за помощь!
фьюз RSTDISBL = 1 не трогайте ни в коем случае, если 1, то он не прошит, т.е. вывод ресет выполняет ф-ю сброса контроллера. Если прошьете в 0, то без параллельного программатора Вам не обойтись.
Вместо -o10Mhz попробуйте с ключом -o1Mhz, кстати на какую частоту вы рассчитывали бегущий огонь?. Сейчас Ваш контроллер настроен на внутренний генератор, частота 1 МГц, сейчас кварц вам не нужен, отпаяйте его если не лень, хотя в принципе мешать не должен. Кстати схема подключения кварца как в даташите, надеюсь?
smac писал(а):фьюз RSTDISBL = 1 не трогайте ни в коем случае, если 1, то он не прошит, т.е. вывод ресет выполняет ф-ю сброса контроллера. Если прошьете в 0, то без параллельного программатора Вам не обойтись.
Вместо -o10Mhz попробуйте с ключом -o1Mhz, кстати на какую частоту вы рассчитывали бегущий огонь?. Сейчас Ваш контроллер настроен на внутренний генератор, частота 1 МГц, сейчас кварц вам не нужен, отпаяйте его если не лень, хотя в принципе мешать не должен. Кстати схема подключения кварца как в даташите, надеюсь?
Фьюз RSTDISBL трогать не буду..
В даташите так и написано: For all fuses “1” means unprogrammed while “0” means programmed.
Без кварца он не прошивался.. Хотя я пробовал в коммандной строке 10 мГц.. :) Завтра отпаяю и попробую прошить на 1 мГц...
Хотя АВРеал говорит, что мой CKSEL = 4 (0100), что равносильно этому : Calibrated internal RC Oscillator 8MHz. Видимо надо отпаять и 8 мГц попробовать...
В даташите есть еще такое:
1. External Clock - (0000)
2. External Crystal/Ceramic Resonator - (1000 - 1111)
Как я понимаю, установка CKSEL в 0 приведет к поиску внешнего генератора :)) А External Crystal/Ceramic Resonator - это именно кварц.. Я прав?.. Поправьте, если нет..
В обучалке фьюзы не трогали просто.. И я пытался не трогать... Попытаюсь завтра отпаять кварц и указать частоту 8 мГц..
Вроде не фигню говорю... Поправьте, если что...
nictrace писал(а):а железо какое? STK200?
Если я правильно понял вопрос :), то программатор вот этот:
http://radiokot.ru/start/mcu_fpga/avr/03/
Схема повторена полностью..
Похоже разобрался, но еще не тестировал...
Из даташита:
Т.е. если не менять фьюзы, то надо ставить частоту в 1 мГц и отпаивать кварц.. Если ставить кварц - надо кодить фьюзы...
Я думаю, что без кварца надо так шить:
avreal32.exe +tiny2313 -p1 -ab -o1Mhz -ew -c lights.hex -n -5 -v -%%
А с кварцем можно так:
avreal32.exe +tiny2313 -p1 -ab -o10Mhz -ew -c lights.hex -n -5 -v -%% -fCKSEL=F,CKDIV8=1,SUT=1
Надеюсь, получится... Завтра отпишу.
Спасибо всем учавствующим :)
Из даташита:
The device is shipped with CKSEL = “0100”, SUT = “10”, and CKDIV8 programmed. The default clock source setting is the Internal RC Oscillator with longest start-up time and an initial system clock prescaling of 8, resulting in 1.0 MHz system clock. This default setting ensures that all users can make their desired clock source setting using an In-System or Parallel programmer.
Т.е. если не менять фьюзы, то надо ставить частоту в 1 мГц и отпаивать кварц.. Если ставить кварц - надо кодить фьюзы...
Я думаю, что без кварца надо так шить:
avreal32.exe +tiny2313 -p1 -ab -o1Mhz -ew -c lights.hex -n -5 -v -%%
А с кварцем можно так:
avreal32.exe +tiny2313 -p1 -ab -o10Mhz -ew -c lights.hex -n -5 -v -%% -fCKSEL=F,CKDIV8=1,SUT=1
Надеюсь, получится... Завтра отпишу.
Спасибо всем учавствующим :)
GP1 писал(а):если верить снимку то проц должен работать от встроенного RC генератора с делением на 8. но если эти установки записать в проц то SPMEN = 1 и проц отклюсится от канала последовательного программыроавния :shock: . восстановить можно только параллельным программатором. (см.пост выше)
на будущее лучше поступать так:
прочитать-сохранить-изменить нужные-записать
и обязательно читайте даташиты, без них никуда.
спасибо за внимание, есть ведь ещё на свете добрые люди!
тот снимок ДО изменения первых фьюзов (cksel 0...3)
то есть с МК считаны дефалтные заводские настройки - это они (после моей покупки и спайки).
программатор у меня есть только LPT 5pin
я так и сделал, прочитал, делал скрин (и выложил его), изменил cksel и записал. какие изменил, не отпринтскринил почему-то(( но факт остаётся фактов- МК теперь просто не виден программатору.
добрый человек, подскажи, как восстановить? как подать проще всего тактовый сигнал на XTAL1, желательно ничего не покупая, так как живу в глуши и достать какую-то радиодеталь - редкость. народ отвечал, но как-то поверхностно.
есть ещё мега8, может с неё подать? это реально?
Блуд не любит флуд = )