Обсуждаем контроллеры компании Atmel.
Ответить

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

Вс янв 04, 2015 19:10:08

Смотрим спецификацию. Раздел "I/O-Ports", дальше "Ports as General Digital I/O", там внизу странички "Toggling the Pin" читаем:
"Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn.
Note that the SBI instruction can be used to toggle one single bit in a port."

Т.е. в начале можно выствить нужные ножки на "вывод" и записать начальное состояние. Затем, если прерывания будут правльно срабатывать, то в обработчиках достаточно инвертировать состояние сигнала на выходах. Ведь, по идее, в обработчиках это и делается. Другое дело, что крайние значения ШИМа надо как-то дополнительно обрабатывать. Учитывая при этом приоритет прерываний.

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

Вс янв 04, 2015 19:46:11

Так тут опять же, акцент на лог. единице. Причем фраза "independent on the value of DDRxn.", вовсе в ступор вгоняет. Это значит что ли: что на вход, что на выход тупо влепит "1"?А с нулем как? Ведь мне нужно погасить пин, когда счетчик сравняется.
в начале можно выставить нужные ножки на "вывод" и записать начальное состояние.
Сделано.
если прерывания будут правильно срабатывать, то в обработчиках достаточно инвертировать состояние сигнала на выходах.
Ну вот, когда пробую работать с PINB, все ломается, а общение с PORTB - нормально работает.
Никак не уловлю цимус этого трюка. Разве что в моем варианте в ассемблере парой инструкций побольше будет?
крайние значения ШИМа надо как-то дополнительно обрабатывать.
Так собственно, об этом и спрашиваю. :)

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

Вт янв 06, 2015 03:48:39

Прошу прощения у администрации, за невольное нарушение правил, но редакция предыдущего комментария мне уже недоступна.
Вобщем на аппаратном ШИМе с подключенным OC0A, с OCR0A=0, например, ситуация та же: слабое свечение светодиода. Видимо установка/сброс бита в железе сделан по похожему алгоритму? А вот со значением шима = 0xFF, ситуация в корне разная. Аппаратный работает, как ожидается, т.е. выдает полную яркость. Отчего программный, без дополнительных проверок, сбрасывает ее в нуль - загадка.

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

Сб янв 24, 2015 14:15:02

Извините за тупой вопрос, но уже забыл, а разбираться нет времени - Скажите могу ли я запрограммировать Аттини2313 программой Fbprg.exe, которой я программирую AT90S2313

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

Пн фев 02, 2015 23:04:20

Отвечу на свой вопрос сам))) = Нет, нельзя.
Есть другой вопрос - я спаял на коленках схемку для программирования аттини2313 через лпт-порт Понипрогом.
Скажите надо ли при программировании подавать питание на контроллер?
А то у меня понька записала аттини без подачи +5в. И вот теперь мучаюсь в сомнениях - а записался ли реально контроллер?

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

Пн фев 02, 2015 23:27:38

Изображение

8)

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

Пн фев 02, 2015 23:41:37

BAYERN писал(а):..А то у меня понька записала аттини без подачи +5в....
вот, молодец она какая! Надо подавать питание, однако, могло и записаться без питания :idea:

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

Ср мар 11, 2015 13:22:05

Итак, для часов на гри понадобилось прошить контроллер attiny2313, может кто-нибудь подсказать , как это сделать? Имеется программатор usbasp и переходник usb uart на cp2102, до этого прошивал arduino pro mini. Хотелось бы увидеть подробную инструкцию

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

Ср мар 11, 2015 20:09:57

Устанавливаем на компьютере драйвер программатора (если нужен).
Берём USBASP, подключаем к МК, потом к компу. Если на его выходе нет питания - подаём 5В на МК.
Открываем программу-прошивальщик, поддерживающую данный программатор, в настройках указываем программатор. Устанавливаем галочку "Проверка" ("Verification") .
Пробуем считать сигнатуру чипа ("Read Chip Signature"). Если считалось и не 00 или FF, продолжаем. Иначе проверяем подключение.
Выбираем файл с прошивкой (.hex), если надо - EEPROM (.eep). Жмём "Очистить МК" (может называться "Clear chip", "Erase all" и так далее). Нажимаем "Загрузить FLASH" ("Load FLASH", "Write FLASH", ...). Ждём. Если всё в порядке, ошибок нет - отлично, делаем то же самое для EEPROM, если надо. Иначе снова проверяем, всё ли подключено.
Теперь выставляем фьюзы, желательно использовать калькулятор фьюзов. Жмём "Write Fuse Bits". Снова пробуем считать сигнатуру. Если считалась, можно надеяться, что всё прошито правильно.

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

Ср мар 11, 2015 21:49:52

*Trigger* писал(а):Теперь выставляем фьюзы, желательно использовать калькулятор фьюзов. Жмём "Write Fuse Bits". Снова пробуем считать сигнатуру. Если считалась, можно надеяться, что всё прошито правильно.

Сперва заливать прошивку, потом фьюзы программировать? Подскажите наиболее удобную программу для заливки прошивки. Под вин7 x64

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

Ср мар 11, 2015 22:03:41

Желательно. Заливкой прошивки проверяется правильность связи МК с компьютером через программатор. Так точно не возникнет глюков при зашивании фьюзов.
Про Win7 не подскажу, у меня на всех компах XP.

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

Ср мар 11, 2015 23:55:49

John Locke писал(а):Подскажите наиболее удобную программу для заливки прошивки.
avrdude. Заставляет работать мозгами и потом с меньшей вероятностью будут вопросы про неправильно прошитые "фузы". :)

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

Чт мар 12, 2015 20:21:07

Собственно, попробовал залить прошивку в attiny2313. Делал все через avrdudeshell . Я так понял , это avrdude с графическим интерфейсом. После прошивки появилось окно:
СпойлерИзображение

Открыл отчет, в нем следующий текст:
Спойлер
Код:
"C:\Users\John Locke\Desktop\AVRDUDESHELL20150203\avrdude\avrdude.exe" -p attiny2313 -c usbasp -U flash:w:c:\adstemp.hex:i

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: reading input file "c:\adstemp.hex"
avrdude.exe: writing flash (1020 bytes):

Writing | ################################################## | 100% 0.85s

avrdude.exe: 1020 bytes of flash written
avrdude.exe: verifying flash memory against c:\adstemp.hex:
avrdude.exe: load data flash data from input file c:\adstemp.hex:
avrdude.exe: input file c:\adstemp.hex contains 1020 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.54s

avrdude.exe: verifying ...
avrdude.exe: 1020 bytes of flash verified

avrdude.exe: safemode: Fuses OK (E:FF, H:DF, L:E4)

avrdude.exe done.  Thank you.


Я так понял, прошивка заливается без проблем?
А вот с фьюзами какие-то проблемы. Выбрал нужные:
СпойлерИзображение

Нажал программировать фьюзы, и тут вылезла ошибка:
Спойлерhttp://img.radiokot.ru/files/100306/medium/lj6vfh8ap.JPG

Нажал закрыть, она еще раз вылезла. Затем окно с отчетами появилось:
СпойлерИзображение

Я так полагаю, проблемы с установкой фьюзов. Вот все отчеты:
Спойлер
Код:
"C:\Users\John Locke\Desktop\AVRDUDESHELL20150203\avrdude\avrdude.exe" -p attiny2313 -c usbasp -U lfuse:w:0xE4:m

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: reading input file "0xE4"
avrdude.exe: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0xE4:
avrdude.exe: load data lfuse data from input file 0xE4:
avrdude.exe: input file 0xE4 contains 1 bytes
avrdude.exe: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lfuse verified

avrdude.exe: safemode: Fuses OK (E:FF, H:DF, L:E4)

avrdude.exe done.  Thank you.

Спойлер
Код:
"C:\Users\John Locke\Desktop\AVRDUDESHELL20150203\avrdude\avrdude.exe" -p attiny2313 -c usbasp -U hfuse:w:0xFF:m

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xFF:
avrdude.exe: load data hfuse data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of hfuse verified

avrdude.exe: safemode: hfuse changed! Was ff, and is now df
Would you like this fuse to be changed back? [y/n]

Спойлер
Код:
"C:\Users\John Locke\Desktop\AVRDUDESHELL20150203\avrdude\avrdude.exe" -p attiny2313 -c usbasp -U efuse:w:0x01:m

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: reading input file "0x01"
avrdude.exe: writing efuse (1 bytes):

Writing |  ***failed; 
################################################## | 100% 0.06s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0x01:
avrdude.exe: load data efuse data from input file 0x01:
avrdude.exe: input file 0x01 contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0xff != 0x01
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: efuse changed! Was 1, and is now ff
Would you like this fuse to be changed back? [y/n]

Спойлер
Код:
"C:\Users\John Locke\Desktop\AVRDUDESHELL20150203\avrdude\avrdude.exe" -p attiny2313 -c usbasp -U lock:w:0x8F:m

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: reading input file "0x8F"
avrdude.exe: writing lock (1 bytes):

Writing |  ***failed; 
################################################## | 100% 0.06s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0x8F:
avrdude.exe: load data lock data from input file 0x8F:
avrdude.exe: input file 0x8F contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0x3f != 0x8f
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: Fuses OK (E:FF, H:DF, L:E4)

avrdude.exe done.  Thank you.

Может кто-нибудь сказать, в чем проблема? И установились ли фьюзы? При нажатии на кнопку "Читать фьюзы" они становятся так:
Спойлерhttp://img.radiokot.ru/files/100306/medium/lj76d7f0l.JPG

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

Сб мар 14, 2015 00:44:40

Так что, поможет кто-нибудь?

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

Сб мар 14, 2015 06:20:41

Здравствуйте.

Откуда эти фьюзы? Зачем Вы пытаетесь отключить SPIEN? Хорошо что его по последовательному интерфейсу снять нельзя, иначе бы потеряли контроллер для SPI программирования.

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

Сб мар 14, 2015 13:56:45

edm2007 писал(а):Здравствуйте. Откуда эти фьюзы?

Отсюда:
http://robocua.blogspot.com/2013/12/blog-post.html

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

Сб мар 14, 2015 14:04:32

"Отмеченная" опция означает логическое состояние "0". То бишь фьюз запрограммирован. У Вас же "не отмечено - значит запрограммировано".

В статье: нет галки = 1, есть галка = 0
У Вас: нет галки = 0, есть галка = 1

В этом случае непонятно, зачем снят SPIEN в статье. Попробуйте его не трогать. Фьюзы RSTDISBL и SPIEN в общем случае всегда противоположны друг другу (если это ISP программирование и вывод RESET не заюзан как пин порта).

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

Сб мар 14, 2015 15:00:14

edm2007 писал(а):В этом случае непонятно, зачем снят SPIEN в статье. Попробуйте его не трогать. Фьюзы RSTDISBL и SPIEN в общем случае всегда противоположны друг другу (если это ISP программирование и вывод RESET не заюзан как пин порта).

Выставил фьюзы вот так:
СпойлерИзображение

При установке фьзов, вылетела ошибка при установке бита extended.
При нажатии на кнопу "Читать фьюзы" , они выглядят вот так:
СпойлерИзображение

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

Сб мар 14, 2015 15:09:13

SELFPRGEN разрешает запись программе в память программ, ругаться на него не должен. У Вас какой программатор, кстати?

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

Сб мар 14, 2015 15:16:24

edm2007 писал(а):У Вас какой программатор, кстати?

Такой
Изображение
Написано usbasp v2.0 LC Technology. В самой программе программатор выбран usbasp. Может выбрать usbasp-clone?
edm2007 писал(а):SELFPRGEN разрешает запись программе в память программ

Так может его выбрать надо, т.е. снять галочку?
Ответить