ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Смотрим спецификацию. Раздел "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."
Т.е. в начале можно выствить нужные ножки на "вывод" и записать начальное состояние. Затем, если прерывания будут правльно срабатывать, то в обработчиках достаточно инвертировать состояние сигнала на выходах. Ведь, по идее, в обработчиках это и делается. Другое дело, что крайние значения ШИМа надо как-то дополнительно обрабатывать. Учитывая при этом приоритет прерываний.
"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."
Т.е. в начале можно выствить нужные ножки на "вывод" и записать начальное состояние. Затем, если прерывания будут правльно срабатывать, то в обработчиках достаточно инвертировать состояние сигнала на выходах. Ведь, по идее, в обработчиках это и делается. Другое дело, что крайние значения ШИМа надо как-то дополнительно обрабатывать. Учитывая при этом приоритет прерываний.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Так тут опять же, акцент на лог. единице. Причем фраза "independent on the value of DDRxn.", вовсе в ступор вгоняет. Это значит что ли: что на вход, что на выход тупо влепит "1"?А с нулем как? Ведь мне нужно погасить пин, когда счетчик сравняется.
Никак не уловлю цимус этого трюка. Разве что в моем варианте в ассемблере парой инструкций побольше будет?

Сделано.в начале можно выставить нужные ножки на "вывод" и записать начальное состояние.
Ну вот, когда пробую работать с PINB, все ломается, а общение с PORTB - нормально работает.если прерывания будут правильно срабатывать, то в обработчиках достаточно инвертировать состояние сигнала на выходах.
Никак не уловлю цимус этого трюка. Разве что в моем варианте в ассемблере парой инструкций побольше будет?
Так собственно, об этом и спрашиваю.крайние значения ШИМа надо как-то дополнительно обрабатывать.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Прошу прощения у администрации, за невольное нарушение правил, но редакция предыдущего комментария мне уже недоступна.
Вобщем на аппаратном ШИМе с подключенным OC0A, с OCR0A=0, например, ситуация та же: слабое свечение светодиода. Видимо установка/сброс бита в железе сделан по похожему алгоритму? А вот со значением шима = 0xFF, ситуация в корне разная. Аппаратный работает, как ожидается, т.е. выдает полную яркость. Отчего программный, без дополнительных проверок, сбрасывает ее в нуль - загадка.
Вобщем на аппаратном ШИМе с подключенным OC0A, с OCR0A=0, например, ситуация та же: слабое свечение светодиода. Видимо установка/сброс бита в железе сделан по похожему алгоритму? А вот со значением шима = 0xFF, ситуация в корне разная. Аппаратный работает, как ожидается, т.е. выдает полную яркость. Отчего программный, без дополнительных проверок, сбрасывает ее в нуль - загадка.
- BAYERN
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Ср сен 20, 2006 18:20:55
- Откуда: UKRAINE
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Извините за тупой вопрос, но уже забыл, а разбираться нет времени - Скажите могу ли я запрограммировать Аттини2313 программой Fbprg.exe, которой я программирую AT90S2313
- BAYERN
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Ср сен 20, 2006 18:20:55
- Откуда: UKRAINE
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Отвечу на свой вопрос сам))) = Нет, нельзя.
Есть другой вопрос - я спаял на коленках схемку для программирования аттини2313 через лпт-порт Понипрогом.
Скажите надо ли при программировании подавать питание на контроллер?
А то у меня понька записала аттини без подачи +5в. И вот теперь мучаюсь в сомнениях - а записался ли реально контроллер?
Есть другой вопрос - я спаял на коленках схемку для программирования аттини2313 через лпт-порт Понипрогом.
Скажите надо ли при программировании подавать питание на контроллер?
А то у меня понька записала аттини без подачи +5в. И вот теперь мучаюсь в сомнениях - а записался ли реально контроллер?
-
Rtmip
- Держит паяльник хвостом
- Сообщения: 963
- Зарегистрирован: Чт апр 03, 2014 23:16:55
- Откуда: Россия
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
вот, молодец она какая! Надо подавать питание, однако, могло и записаться без питанияBAYERN писал(а):..А то у меня понька записала аттини без подачи +5в....
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Итак, для часов на гри понадобилось прошить контроллер attiny2313, может кто-нибудь подсказать , как это сделать? Имеется программатор usbasp и переходник usb uart на cp2102, до этого прошивал arduino pro mini. Хотелось бы увидеть подробную инструкцию
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Устанавливаем на компьютере драйвер программатора (если нужен).
Берём USBASP, подключаем к МК, потом к компу. Если на его выходе нет питания - подаём 5В на МК.
Открываем программу-прошивальщик, поддерживающую данный программатор, в настройках указываем программатор. Устанавливаем галочку "Проверка" ("Verification") .
Пробуем считать сигнатуру чипа ("Read Chip Signature"). Если считалось и не 00 или FF, продолжаем. Иначе проверяем подключение.
Выбираем файл с прошивкой (.hex), если надо - EEPROM (.eep). Жмём "Очистить МК" (может называться "Clear chip", "Erase all" и так далее). Нажимаем "Загрузить FLASH" ("Load FLASH", "Write FLASH", ...). Ждём. Если всё в порядке, ошибок нет - отлично, делаем то же самое для EEPROM, если надо. Иначе снова проверяем, всё ли подключено.
Теперь выставляем фьюзы, желательно использовать калькулятор фьюзов. Жмём "Write Fuse Bits". Снова пробуем считать сигнатуру. Если считалась, можно надеяться, что всё прошито правильно.
Берём USBASP, подключаем к МК, потом к компу. Если на его выходе нет питания - подаём 5В на МК.
Открываем программу-прошивальщик, поддерживающую данный программатор, в настройках указываем программатор. Устанавливаем галочку "Проверка" ("Verification") .
Пробуем считать сигнатуру чипа ("Read Chip Signature"). Если считалось и не 00 или FF, продолжаем. Иначе проверяем подключение.
Выбираем файл с прошивкой (.hex), если надо - EEPROM (.eep). Жмём "Очистить МК" (может называться "Clear chip", "Erase all" и так далее). Нажимаем "Загрузить FLASH" ("Load FLASH", "Write FLASH", ...). Ждём. Если всё в порядке, ошибок нет - отлично, делаем то же самое для EEPROM, если надо. Иначе снова проверяем, всё ли подключено.
Теперь выставляем фьюзы, желательно использовать калькулятор фьюзов. Жмём "Write Fuse Bits". Снова пробуем считать сигнатуру. Если считалась, можно надеяться, что всё прошито правильно.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
*Trigger* писал(а):Теперь выставляем фьюзы, желательно использовать калькулятор фьюзов. Жмём "Write Fuse Bits". Снова пробуем считать сигнатуру. Если считалась, можно надеяться, что всё прошито правильно.
Сперва заливать прошивку, потом фьюзы программировать? Подскажите наиболее удобную программу для заливки прошивки. Под вин7 x64
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Желательно. Заливкой прошивки проверяется правильность связи МК с компьютером через программатор. Так точно не возникнет глюков при зашивании фьюзов.
Про Win7 не подскажу, у меня на всех компах XP.
Про Win7 не подскажу, у меня на всех компах XP.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
avrdude. Заставляет работать мозгами и потом с меньшей вероятностью будут вопросы про неправильно прошитые "фузы".John Locke писал(а):Подскажите наиболее удобную программу для заливки прошивки.
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Собственно, попробовал залить прошивку в 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.
Я так понял, прошивка заливается без проблем?
А вот с фьюзами какие-то проблемы. Выбрал нужные:
Нажал программировать фьюзы, и тут вылезла ошибка:
Нажал закрыть, она еще раз вылезла. Затем окно с отчетами появилось:
Я так полагаю, проблемы с установкой фьюзов. Вот все отчеты:
Спойлер
Код: Выделить всё
"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.Может кто-нибудь сказать, в чем проблема? И установились ли фьюзы? При нажатии на кнопку "Читать фьюзы" они становятся так:
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Так что, поможет кто-нибудь?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Здравствуйте.
Откуда эти фьюзы? Зачем Вы пытаетесь отключить SPIEN? Хорошо что его по последовательному интерфейсу снять нельзя, иначе бы потеряли контроллер для SPI программирования.
Откуда эти фьюзы? Зачем Вы пытаетесь отключить SPIEN? Хорошо что его по последовательному интерфейсу снять нельзя, иначе бы потеряли контроллер для SPI программирования.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
edm2007 писал(а):Здравствуйте. Откуда эти фьюзы?
Отсюда:
http://robocua.blogspot.com/2013/12/blog-post.html
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
"Отмеченная" опция означает логическое состояние "0". То бишь фьюз запрограммирован. У Вас же "не отмечено - значит запрограммировано".
В статье: нет галки = 1, есть галка = 0
У Вас: нет галки = 0, есть галка = 1
В этом случае непонятно, зачем снят SPIEN в статье. Попробуйте его не трогать. Фьюзы RSTDISBL и SPIEN в общем случае всегда противоположны друг другу (если это ISP программирование и вывод RESET не заюзан как пин порта).
В статье: нет галки = 1, есть галка = 0
У Вас: нет галки = 0, есть галка = 1
В этом случае непонятно, зачем снят SPIEN в статье. Попробуйте его не трогать. Фьюзы RSTDISBL и SPIEN в общем случае всегда противоположны друг другу (если это ISP программирование и вывод RESET не заюзан как пин порта).
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
edm2007 писал(а):В этом случае непонятно, зачем снят SPIEN в статье. Попробуйте его не трогать. Фьюзы RSTDISBL и SPIEN в общем случае всегда противоположны друг другу (если это ISP программирование и вывод RESET не заюзан как пин порта).
Выставил фьюзы вот так:
Спойлер
При установке фьзов, вылетела ошибка при установке бита extended.
При нажатии на кнопу "Читать фьюзы" , они выглядят вот так:
Спойлер
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
SELFPRGEN разрешает запись программе в память программ, ругаться на него не должен. У Вас какой программатор, кстати?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
John Locke
- Потрогал лапой паяльник
- Сообщения: 312
- Зарегистрирован: Пт окт 03, 2014 22:48:27
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
edm2007 писал(а):У Вас какой программатор, кстати?
Такой

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