ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение DX168B »

Когда порт настроен на вход и на этот вход нацеплена кнопка, то надо на порт поставить
подтягивающий резистор на минус (если планируется подавать на порт через кнопку высокий уровень, от плюса), либо на плюс (если планируется замыкать кнопкой порт с массой).
Всё дело в том, что у порта очень высокое входное сопротивление и без подтяжки он будет находиться в третьем состоянии. Любая незначительная наводка спровоцирует ложное срабатывание порта.
У МК AVR имеются встроенные подтяжки на плюс, включить их можно вот так:

Код: Выделить всё

ldi          temp,            0b00001111    ;пишем значение в регистр
out          DDRB,            temp          ;шлём его Фф рэгистр DDRB и настраиваем порт Б
swap         temp                           ;меняем местами старшую и младшую часть регистра
out          PortB,           temp          ;шлём его в порт Б

То есть если мы отправим "1" в порт, который настроен на вход, то включатся внутренние резюки
МК между плюсом и портом.
I am DX168B and this is my favourite forum on internet!
Shurf
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср май 12, 2010 10:24:41
Откуда: Чувашия, Новочебоксарск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Shurf »

Запитал МК от внешнего источника. Теперь он вообще ни на каких конфигурациях не хочет перепрограммироваться - мигает светодиодом по последней программе, на ресет реагирует.

Что вы там говорили о подтяжке? :roll:

Надо ли ресет и mosi/miso подтягивать на VCC для пущей стабильности?
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение AI_Disable »

Shurf писал(а):Надо ли ресет и mosi/miso подтягивать на VCC для пущей стабильности?

Нет, во время программирования это не нужно. Программатор сам всё подтянет как надо. Ресет подтягивают к плюсу во время работы МК, чтоб защититься от непредвиденных сбросов.
Как понимать "Запитал МК от внешнего источника"? У него нет внутреннего источника питания :)
Shurf
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср май 12, 2010 10:24:41
Откуда: Чувашия, Новочебоксарск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Shurf »

Извиняюсь за непонятки. Сам для себя определил: питание от usb через программатор - внутреннее, от трансформатора через выпрямитель и LM7805 - внешнее.

В программе все порты включил (DDRB = 0xFF, PORTB = 0xFF), и хоть во второй раз их никуда не подключал - застопорил вторую тиньку. Вот что с этим делать? Можно как-то подглядеть, отвечает МК через MISO или нет?

Проблема не в программаторе - мегу8 на неработающем Протосс-программаторе шьет с радостью.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение AI_Disable »

Shurf писал(а):от трансформатора через выпрямитель и LM7805

Повесьте на выход стабилизатора конденсаторы 1000мкФ и 0.1мкФ, и на вход желательно 470. Земля программатора и источника соединена?
Shurf
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср май 12, 2010 10:24:41
Откуда: Чувашия, Новочебоксарск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Shurf »

На входе стабилизатора висит 470мкФ и 24 пкФ, на выходе 100мкФ и 24пкФ. Земля и масса конечно подсоединены - специально поставил светодиоды для индикации.

Подсоединил к программатору МК напрямую - последний раз был включен внутренний осциллятор 4МГц - все равно ни в какую(.

А вот uniprof прошил тиньку на ура (точнее я почистил ей флэш), программатор для СОМ собрал по схеме с сайта easyelectronics.ru, запитывал от USB . После этого она опять радостно начала программироваться USBtinyISPом. Вот и получается, что при включении большого количества портов тинька перестает программироваться USB-программатором. Хотя при попытке войти в SPI режим тинка все же делает ресет, но дальше не отвечает. Кто виноват и что делать?
ustass
Родился
Сообщения: 12
Зарегистрирован: Чт авг 02, 2007 19:11:41

не шьется ATTiny2313

Сообщение ustass »

Доброго времени суток уважаемые форумчане. Пытаюсь прошить контроллер ATTiny2313. Скомпилил элементарную программу на asm, просто включаю диоды. Пытаюсь прошить с помощью Altera Byte Blaster, 6-ти проводного. Программатор паял не я, но в его работоспособности сомнений нет. В качестве прошивщика AVreal. На все мои команды он пишет мне:
"Adapter enabled
Can't resync
Reset pin released
Adapter disabled"
И ничего я поделать не могу. В качестве команды пишу что-то типо:"avreal32.exe +tiny2313 -p1 -ab -ew tini.hex" Ключи разные пробовал, но все безтолку. В чем может быть причина?
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Re: не шьется ATTiny2313

Сообщение smac »

ustass писал(а):...В чем может быть причина?

Код: Выделить всё

avreal32.exe +tiny2313 -o800kHz -% -p1 -ab -ew tini.hex (непосредственно набирать в командной строке)


покажите что выводит программа после этого.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение DX168B »

Для Shurf:
Заметил на некоторых тиньках, что при ресете (сбросе)
содержимое некоторых регистров сохраняется. Возможно, что при сбросе
МК программатором регистр DDRB не очищается и программатор не может получить ответа от МК
либо не может послать первый запрос. Можно сделать эксперимент:
Внедрить в свою программу МК, сразу после инициализации стека следующий код:

Код: Выделить всё

;.....стек, за тем:
sbic     PortD,     6    ;Проверим наличие напряжения на выводе PD6
rjmp     LOOP            ;Если есть, то зациклимся. Если нет, то пропускаем "rjmp  LOOP"
rjmp     NEXT            ;А иначе пойдём дальше.
LOOP:                    ;Наш "зацикл"
rjmp     LOOP
NEXT:
;Здесь далее мы уже настраиваем порты и прочее. Но не ранее кода, приведённого выше!

После этого прошиваешь чистый МК, подтягиваешь вывод PD6 через резюк 5,6к к земле и
пробуешь войти в программирование обычным способом, если старая канитель, то отключаешь питание программатора, за тем через резюк на 200 ом соединяешь вывод PD6 с плюсом МК
и подаёшь питание на программатор. За тем снова попробуй войти в режим программирования.
Что при этом произойдёт? А вот что. При подаче питания, МК проверит ток на выводе PD6.
Если его там не будет, то он продолжит выполнять твою программу, а если будет, то он зациклится в самом начале твоей программы и не даст настроить порты на выход и продолжить работать с твоей программой. Таким образом можно проверить, действительно ли виноваты в этом настройки портов МК.
I am DX168B and this is my favourite forum on internet!
ustass
Родился
Сообщения: 12
Зарегистрирован: Чт авг 02, 2007 19:11:41

Re: не шьется ATTiny2313

Сообщение ustass »

smac писал(а):
ustass писал(а):...В чем может быть причина?

Код: Выделить всё

avreal32.exe +tiny2313 -o800kHz -% -p1 -ab -ew tini.hex (непосредственно набирать в командной строке)


покажите что выводит программа после этого.

ввел эку команду в командной строке результат на рисунке прилагается.
Вложения
cmd.JPG
Командная строка.
(33.1 КБ) 424 скачивания
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Re: не шьется ATTiny2313

Сообщение smac »

ustass писал(а):...результат на рисунке прилагается.

Вопросы следующие:
1 Есть ли питание на программируемом микроконтроллере?
2. Не забыли ли Вы подать питание на программатор (не знаю точно, как Ваш, но байтбластер схема которого приведена на сайте автора avreal питается от целевого, т.е. от программируемого устройства) и соединить земли программируемого устройства с программатором?
3. Попробуйте следующую команду - она должна просто стереть МК и ориентируется на пониженную тактовую частоту контроллера - 16 кГц. Только стирание необходимо для того, чтобы в случае успешного входа в программирование Вам не пришлось очень долго ждать, ибо программирование на тактовой частоте 16 кГц даже небольшого файла займет достаточно долгое время.
Когда будете выкладывать результат работы команды, не делайте скриншотов - пользуйтесь цивилизованным способом т.е. перенаправлением вывода программы в файл, а то мне даже как-то перед автором программы неудобно. Покажу на примере вводимой команды

Код: Выделить всё

avreal32.exe +tiny2313 -o16kHz -% -p1 -ab -e > avrlog.txt

В результате выполнения все что вывела программа будет направлено в файл avrlog.txt, который будет находиться в каталоге из которого была запущена программа avreal32.exe
ustass
Родился
Сообщения: 12
Зарегистрирован: Чт авг 02, 2007 19:11:41

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение ustass »

Питание на программатор отдельно я не подавал. Внешний блок питания +5 в подсоединен к выводам контроллера, и я думаю через разъём к программатору. Команду на очистку МК подал, результат в текстовом файле.
Вложения
log.txt
(310 байт) 251 скачивание
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение avreal »

ustass писал(а):Внешний блок питания +5 в подсоединен к выводам контроллера, и я думаю через разъём к программатору.
Ну если проводок соответствующий есть, то питание должно было дойти. Программатор именно на это и рассчитан.

ustass писал(а):Команду на очистку МК подал, результат в текстовом файле.
Или потерялсяпо дороге символ % в командной строке, или строи из форума была скопирована в bat-файл. А в bat-файле надо этот сивол дублировать, давать -%%
Из-за отсутствия % в дошедшей до программы командной строке выдача малоинформативна.

Вы уверены, что все соединения в норме?

Попробуйте без микроконтроллера закоротить ножки MOSI MISO программатора между собой прямо на той колодке, которая на плату подключается. Ну и питание на программатор подайте. При -% (-%% в bat-файле) в выдаче в PgmOn reply при исправном программаторе должно быть AC 53 00 00.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Shurf
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср май 12, 2010 10:24:41
Откуда: Чувашия, Новочебоксарск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Shurf »

DX168B писал(а):Заметил на некоторых тиньках, что при ресете (сбросе)
содержимое некоторых регистров сохраняется. Возможно, что при сбросе
МК программатором регистр DDRB не очищается и программатор не может получить ответа от МК
либо не может послать первый запрос.

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

Как будет время - проверю так, как Вы посоветовали. Может кнопку специальную приделаю к моей отладочной плате. :kill:
ustass
Родился
Сообщения: 12
Зарегистрирован: Чт авг 02, 2007 19:11:41

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение ustass »

Да,% потярялся. Замкнул MISO и MOSI. Результат работы в текстовом файле. Все соединения проверил в очередной раз, все впорядке. Наверно все-таки программатор не фурычит... :cry:. Спасибо тебе за консультацию.
Вложения
log.txt
(894 байт) 223 скачивания
ustass
Родился
Сообщения: 12
Зарегистрирован: Чт авг 02, 2007 19:11:41

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение ustass »

:shock: Начал менять местами провода разёма програоматора.... и о чудо!!! Он зафурычил. В общем извини за то что мучил тебя два дня. Дело было не в бабине.... Просто попутаны местами провода в разъеме прогроматора. :lol: :lol: :lol:
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение avreal »

DX168B писал(а):Возможно, что при сбросе МК программатором регистр DDRB не очищается и программатор не может получить ответа от МК либо не может послать первый запрос.
...
Таким образом можно проверить, действительно ли виноваты в этом настройки портов МК.
DDR* сбрасываются.
"Не может послать первый запрос" - вполне возможно, в документации от Атмел это описано, равно как и процедура пересинхронизации (тот самый resync) в случае, если в момент подачи reset на вводе SCK не было уровня 0. Учитывая задержку от входа сброса до регистра DDRB, а от него - до перехода выводов в 3-е состояние, вполне возможно, что активированный в "1" выход SCK пересиливает программатор (выводы контроллера помощнее, чем 74HC244, а там ещё и резисторы стоят последовательные) и при сбросе уровень на SCK ещё не дотянул до 0.
При этом с первой попытки вход в программирование не произойдёт, но пересинхронизация помогает.

Shurf писал(а):В последнее время задача упростилась - прошивается, если к ножкам порта В не подключены светодиоды.
Ну это просто выходы программатора перегружаться могут и недотягивать до нужного уровня "1"-ки или "0".
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение avreal »

ustass писал(а):Просто попутаны местами провода в разъеме прогроматора.
Ну так все неисправности заключаются в том, что либо нет контакта там, где он должен быть, либо есть там, где его не должно быть :)))
"перепутаны провода" -- это присутствие обеих типов неиправностей одновремённо.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение DX168B »

Ну конечно, если при программировании светодиоды остаются на месте вместе с выводами программатора, то возникнут проблемы при программировании.
Но выше писалось, что чистый МК прошивается. С атмегой вообще проблем нет.
А вот запрограммированный МК не шьётся.
Вы говорите, что все регистры при сбросе очищаются,
тогда как работает счётчик сбросов? В некоторых своих программах я даже применял эту особенность. При сбросе просто программа начинает всё сначала, по этому содержимое регистров
изменяется. Очищаются они только при отключении питания. Но точно знаю, что это относится к РОН. На счёт других регистров типа DDRB пока только предположения.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение avreal »

DX168B писал(а):Ну конечно, если при программировании светодиоды остаются на месте вместе с выводами программатора, то возникнут проблемы при программировании.
Но выше писалось, что чистый МК прошивается. С атмегой вообще проблем нет.
А вот запрограммированный МК не шьётся.
Так, давайте как-то чётче.
Светодиоды имеют отношение к "чистый шьётся, записанный - нет" ? Или это независимые ситуации, которые просто тут на форуме встретились.

Если есть какая-то ситуация "не шьётся", то надо разбираться. Я утверждаю, что микроконтроллер, зашитый такой вот коротой программкой

Код: Выделить всё

   .org 0
   ldi   r16,0xFF
   out   DDRB, r16
   out PORTB, r16

halt:   rjmp halt
которая сразу же после запуска активирует выходы, обязан программироваься.
Точнее, "программируемость" в одной и той же ситуации стёртого контроллера и зашитого такой программой не должна отличаться :-) А то мало ли.
Вон много лет назад с какими-то кристаллами "проблема" была — не шьются и всё. "Уменя программатор точно исправен, в друие контроллеры этим байт-бластером всё шьётся, а тут или куча ошибок летит". Я даже такой же контроллер купил и в макетку сунул. Всё шьётся. Через несколько неделдь переписки выяснилось, что на той новой плате с новым контроллером к колодке байт-бластера подвели землю всего к одной из двух ножек, так как вторую неудобно было вести. А на предыдущих платах на всех было два контакта. А в шлейфе от байт-бластера к плате подломился один земляной проводок. Как раз тот, который на новой плате был разведён. И байт-бластер оказаля без земли. Каким чудом вообще в программирование это дело входило — я не представляю.
Я не говорю, что avreal без ошибок :-) Но внимательнее надо быть всем.

Если не шьётся — то это ошибка в программаторе. Если не шьётся в avreal — давайте тип контроллера, какие были зашиты фьюзы, что ещё такого делает программа, я буду разбираться.

DX168B писал(а):Вы говорите, что все регистры при сбросе очищаются,
...
На счёт других регистров типа DDRB пока только предположения.
Я́ говорю, что все регистры очищаются?
DDR* по сбросу очищаютя. По сбросу включения питания, от внешней ножки сброса, от WDT.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Ответить

Вернуться в «AVR»