Avrprog error entering programming mode avr910

roboforum.ru Технический форум по робототехнике. AVR910USB AVR910USB chinga » 10 май 2011, 20:49 Re: AVR910USB Scorpio » 10 май 2011, 22:59 Re: AVR910USB chinga » 11 май 2011, 10:28 Re: AVR910USB RootAdmin » 11 май 2011, 11:22 Покажите список устойств? Добавлено спустя 1 минуту 22 секунды: Да, джампер «программирование» в мастеркитовском присутствует? Re: AVR910USB […]

Содержание

  1. roboforum.ru
  2. AVR910USB
  3. AVR910USB
  4. Re: AVR910USB
  5. Re: AVR910USB
  6. Re: AVR910USB
  7. Re: AVR910USB
  8. Re: AVR910USB
  9. Re: AVR910USB
  10. Re: AVR910USB
  11. Re: AVR910USB
  12. Re: AVR910USB
  13. Re: AVR910USB
  14. Re: AVR910USB
  15. Re: AVR910USB
  16. Re: AVR910USB
  17. Avrprog error entering programing mode

roboforum.ru

Технический форум по робототехнике.

AVR910USB

AVR910USB

chinga » 10 май 2011, 20:49

Re: AVR910USB

Scorpio » 10 май 2011, 22:59

Re: AVR910USB

chinga » 11 май 2011, 10:28

Re: AVR910USB

RootAdmin » 11 май 2011, 11:22

Покажите список устойств?

Добавлено спустя 1 минуту 22 секунды:
Да, джампер «программирование» в мастеркитовском присутствует?

Re: AVR910USB

chinga » 11 май 2011, 11:38

Re: AVR910USB

RootAdmin » 11 май 2011, 13:08

Re: AVR910USB

chinga » 11 май 2011, 15:29

Re: AVR910USB

RootAdmin » 11 май 2011, 16:06

Re: AVR910USB

Scorpio » 11 май 2011, 17:01

Re: AVR910USB

avr123.nm.ru » 11 май 2011, 18:01

Программатор не может войти в режим программирования чипа. Причин несколько —

— нет свзя с чипом так как в чипе нет тактового сигнала — убедитесь что включен внутренний генератор или подайте такт на XTAL1 — варианты www.proavr.narod.ru/07.htm

— линии программирования нагружены на землю или на питания или друг на друга — прозвоните. Затем проверьте если ли сигналы на линиях программирования при попытках.

Re: AVR910USB

chinga » 11 май 2011, 18:11

вот извините, как проверить внутренний генератор?

а на счет линий, вроде все нормально) с юзбасп работает)
и даж када подключаю в программаторе АВР910ЮЗБ светик горит) вроде все нормально с линий.

Re: AVR910USB

chinga » 14 май 2011, 20:21

Re: AVR910USB

avr123.nm.ru » 14 май 2011, 22:31

Re: AVR910USB

chinga » 14 май 2011, 22:40

Источник

Avrprog error entering programing mode

Давно точил зубы на программатор AVR910, поскольку он довольно популярный, и поддерживается многими программами. Я знаю как минимум 3 программы, работающие с ним — avrdude, AVR Studio, CodeVision AVR.

Этот программатор давно разработала сама компания Atmel (кажется аж в 2000 году), и полностью опубликовала всю документацию по нему, включая схему, код firmware программатора и протокол работы. Именно по этой причине AVR910 стал стандартом де-факто и до сих пор популярен. Изначально программатор AVR910 был рассчитан на подключение к компьютеру через последовательный COM-порт, и это со временем стало его серьезным недостатком — COM-порты трудно найти в современных компьютерах. Поэтому стали появляться клоны AVR910 (см. Ссылки), которые можно было подключить через USB. Эти AVR910-программаторы использовали для подключения к USB удачную микросхему FT232 (преобразователь USB COM-порт), либо библиотеку V-USB компании Objective Development. На основе библиотеки V-USB делалось firmware, поддерживающее CDC-класс, к которому не нужен драйвер — нужен только информационный inf-файл. Этот класс организует в компьютере виртуальный COM-порт, через который и ведется обмен данными с AVR910.

Мне попались в руки исходники программатора PROTTOSS на чипе ATmega8 (выражаю большую признательность автору). Этот программатор основан на старой версии библиотеки V-USB (см. ссылки). Я портировал его код на чип ATmega16, что позволило без особого труда сделать из макетной платы AVR-USB-MEGA16 программатор, совместимый AVR910 и подключаемый по USB. Схема программатора видна на рисунке (красным цветом показаны дополнительные детали и соединения, которые надо установить на макетное поле платы). В результате получается программатор, полностью аналогичный функционально программатору PROTTOSS-а.

На схеме фиолетовым цветом показана доработка макетной платы AVR-USB-MEGA16, чтобы получился программатор AVR910. Кварц необходимо поменять на 12 МГц (на макетной плате AVR-USB-MEGA16 может быть установлен кварц на 16 МГц. У меня в плане доработать исходники, чтобы можно было использовать все кварцы, которые на сегодняшний день поддерживает библиотека V-USB — 12, 15, 16, 16.5 и 20 МГц). На макетное поле установлено 2 ISP-коннектора (6 pin мама и 10 pin папа) для подключения программируемых устройств, а также установлены 2 светодиода — зеленый RD и синий PWR, перемычка LOW SCK и необходимые резисторы. Красный светодиод D1 (он уже был установлен на макетной плате) показывает режим записи программируемого устройства. Зеленый светодиод RD показывает режим чтения. Синий светодиод PWR показывает, что наличие питания на программаторе и показывает активность программатора (его включает и выключает процедура FlashTstLed, вызываемая из главного цикла main). Перемычка LOW SCK переключает скорость чтения и записи программируемого устройства. Когда перемычка снята, то скорость максимальная (используется аппаратный SPI), а когда установлена, то скорость искусственно снижается (при этом протокол SPI реализован программно). Более подробно про алгоритм работы перемычки LOW SCK и всего программатора можно почитать на сайте PROTTOSS (см. ссылки) — он остался без изменений.

На фото представлен внешний вид получившегося программатора. Цифрами в кружках показано назначение отдельных деталей на плате.

1 — разъем miniUSB J1, через который программатор подключается к компьютеру.
2 — ISP коннектор U1, который используется для записи firmware в макетную плату AVR-USB-MEGA16. Через него нужно записать в микроконтроллер U2 программу для работы программатора (двоичный файл DebugExeavr910protoss.bin или avr910protoss.hex из архива проекта, см. ссылку 1).
3 — кварц U4, который надо поменять на 12 МГц (на макетной плате AVR-USB-MEGA16 установлен кварц на 16 МГц).
4 — разъем U3 JTAG, который может использоваться для программирования и отладки firmware (если Вы счастливый обладатель JTAGICE mkII).
5 — красный светодиод WR — когда программатор что-то пишет в программируемое устройство, светодиод мигает.
6 — зеленый светодиод RD — когда программатор что-то читает из программируемого устройства, светодиод мигает.
7 — коннектор для подключения внешнего напряжения питания 5 В — этот коннектор устанавливать необязательно. Я его припаял и использовал при отладке. Можно использовать для умощнения питания при программировании устройств, потребляющих более 70 ма. Внимание! Будьте осторожны с полярностью и напряжением (оно должно быть точно 5 В +/- 0.2 вольта) дополнительного источника питания — чтобы не спалить USB-порты и плату программатора.
8 — штырек, на который я отдельно вывел сигнал 1 МГц (нужен для приведения в чувство микроконтроллеров, у которых ошибочно зашиты фьюзы для использования внешнего кварца), который у PROTTOSS почему-то называется LED. Этот сигнал также выведен на 10-pin коннектор, и я его вывел на отдельный штырек для удобства. Устанавливать необязательно.
9 — перемычка LOW SCK.
10 — синий светодиод PWR.
11 — атавизм — перемычка, которую хотел использовать для сигнала RESET. Устанавливать не нужно.
12 — ISP коннектор 6 pin мама, предназначенный для программирования внешних устройств (рабочий коннектор программатора AVR910).
13 — ISP коннектор 10 pin папа, предназначенный для программирования внешних устройств (рабочий коннектор программатора AVR910).

[Отличия описываемого здесь программатора от программатора PROTTOSS]

1. Я применил на всякий случай 2 ISP-коннектора — один 6-выводный (мама), другой 10-выводный (папа). Оба коннектора имеют ставшие стандартными цоколевки, которые широко используются.
2. Перемычка J1J2, которая использовалась у PROTTOSS для прошивки firmware в сам программатор, убрана из схемы за ненадобностью, так как макетная плата AVR-USB-MEGA16 имеет для целей программирования firmware AVR910 отдельный ISP-коннектор U1 (помимо JTAG-коннектора U3).
3. Схема программатора питается не от 3.3 вольт, а от 5 вольт, и на коннекторы ISP выведено напряжение питания 5 вольт, которое можно использовать для питания программируемой платы (если, конечно, она не потребляет ток больше 70 мА). Для подключения дополнительного источника питания можно использовать коннектор 7 (например, если программируемая плата потребляет ток больше 70 ма).
4. Предохранитель по питанию F1 на 0.1 А отсутствует. В нем нет особой нужды, поскольку в протоколе USB оговорено ограничение тока, потребляемое устройством по шине USB (100 мА по умолчанию, и 500 мА для устройств повышенной мощности), и все современные материнские платы и ноутбуки аппаратно поддерживают ограничение тока.
5. Светодиод «PWR» подключен не к шине питания, а к порту микроконтроллера, что позволяет его использовать также и для отладки.

Больше принципиальных отличий нет. Если необходимо программировать микроконтроллеры не от 5 вольт, а от 3.3 вольт, то я советую Вам установить на макетную плату интегральный стабилизатор на 3.3 вольт (например, дешевый LM1117), и запитать все схему от него. Можно даже предусмотреть переключение напряжения питания перемычкой — либо 5 вольт (прямое питание от USB), либо 3.3 вольт (питание от выхода стабилизатора LM1117). Никаких изменений в схему программатора при этом вносить не нужно.

При первом подключении программатора Windows XP запросит драйвер — скормите ей inf-файл AVR910.Driver2k_xp_32avr910.usb.2000.xp.inf (находится в архиве пакета с документацией и исходниками, см. ссылки).

[Проблемы прошивки, которые нужно исправить]

1. Программа работает только с кварцем на 12 МГц, хотя библиотека V-USB позволяет также использовать кварцы на 15, 16, 16.5 и 20 МГц.

2. Программа не работает с программатором avrdude. По словам автора, причина в некорректной обработке команд LED_ON и LED_OFF протокола — avrdude посылает команду LED_XX и не посылает состояние светодиодов, а firmware программатора эту ситуацию некорректно обрабатывает.

Если кто-нибудь из читателей поправит код и решит эти проблемы, буду очень рад.

[Работа программатором через консольную программу avrdude]

Программатор avrdude доступен в исходниках и скомпилированном виде для систем Windows и *nix, его легко скачать в Интернет. Эта программа несомненно порадует Линуксоидов, поскольку с помощью неё можно работать с программатором AVR910 из *nix-систем. Но, к сожалению, у меня программатор AVR910 работал с avrdude некорректно — то, что записывалось в чип ATmega16, не проходило верификацию. Кроме того, работает avrdude на запись чипов с описываемым в статье программатором очень медленно — например, микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт 727 секунд (12 минут). Чтение происходит быстро — за 18 секунд. Наверное, это связано с некорректной работой avrdude с AVR910 от PROTTOSS.

Пример комплексной операции — стирание чипа ATmega16, записи в него файла avr910protoss.hex (формат Intel Hex) и сверки содержимого flash с файлом avr910protoss.hex:

avrdude.exe -p m16 -c avr910 -P com4 -U flash:w:»C:asmAVR910-protossDebugExeavr910protoss.hex»:i -U flash:v:»C:asmAVR910-protossDebugExeavr910protoss.hex»:i -e -F

Пример записи перемычек 0xBF (low) и 0x09 (high):

avrdude.exe -p m16 -c avr910 -P com4 -U lfuse:w:0xBF:m -U hfuse:w:0x09:m -F

Пример чтения flash в файл progmemory.hex:

avrdude.exe -p m16 -c avr910 -P com4 -U flash:r:»C:asmAVR910-protossDebugExeprogmemory.hex»:i -F

[Работа с программатором из CodeVision]

В среде CodeVisionAVR работать с программатором AVR910 довольно просто (я экспериментировал с версией CodeVisionAVR 2.04.4a Advanced). Сначала настраиваете тип программатора — выбираете в меню Settings -> Programmer, выбираете тип программатора Atmel AVRProg (AVR910) и порт Communication Port. Тут надо указать тот COM-порт, который появляется в системе при подсоединении программатора к компьютеру (можно посмотреть через Диспетчер Устройств). Скорость выбираете 115200. Микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт примерно за 42 секунды, проверка записи занимала 23 секунды.

[Работа с программатором из AVR Studio]

Тут тоже все просто. Выбираете в меню Tools -> AVR Prog. и программа автоматически находит программатор AVR910 (порт указывать не нужно). Выбираете файл для программирования (в формате Intel HEX), выбираете тип программируемого чипа и жмете кнопку Program. Есть также кнопка Advanced. которая позволяет стереть чип и настроить его перемычки. Микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт примерно за 15 секунд (вместе с проверкой!). Отдельно проверка занимает примерно 3 секунды. Это наилучший результат! Такая высокая скорость, по словам PROTTOSS, получается за счет того, что программа от Atmel использует команды блочного обмена данными.

[Проблемы, которые у меня были с программатором AVR910 (PROTTOSS)]

1. Известная проблема несовместимости с avrdude.

2. «AVRProg error entering programming mode». Симптомы такие — светодиоды при попытке программировать/прочитать чип моргают (т. е. программатор система видит, и обмен данными с программатором есть). Проблема была в том, что не контачил сигнал SCK в коннекторе ISP (он не доходил до программируемого чипа).

3. При перетыкании программатора из одного порта USB в другой меняется номер COM-порта, привязанного к программатору. Например, в одном порте он может быть COM3, а в другом COM4. В программаторе CodeVision AVR приходится менять настройку порта программатора, а в программаторе AVR Studio приходится перезапускать программу (AVRprog от AVR Studio находит порт автоматически, если он в пределах COM1..COM4). К сожалению AVR Studio, в отличие от CodeVision, не видит порты COM5..COM8 (при перетыкании они вполне могут привязаться к программатору).

В принципе, это не проблема, а так — фича. Такое поведение легко поправить, если в файле usbconfig.h ввести макроопределение USB_CFG_SERIAL_NUMBER_LENGTH не равное нулю, и usbCfgSerialNumberStringDescriptor со строкой серийного номера. Я попробовал — работает, COM-порт получается всегда один и тот же при включении в разные порты USB. Внимание — если Вы задали серийный номер устройства в usbconfig.h, то в компьютере нельзя одновременно использовать несколько программаторов с одинаковыми серийными номерами (хотя, собственно, зачем это надо?).

Вот так выглядят в реестре настройки программатора с назначенным серийным номером AVR910-AVR-USB-MEGA16. Теперь номер COM-порта при перетыкании по портам USB остается неизменным (COM3).

Старые ненужные настройки виртуальных USB COM-портов можно удалить. После удаления их настроек при подключении устройства Windows снова запросит драйвер. Удалять надо подпапки внутри папки HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBVid_16c0&Pid_05e1. Обычно эти подпапки именуются загадочно типа 5&160f4e1&0&2 — это и есть серийный номер, который назначается Windows автоматически, если в устройстве серийный номер не задан. Если же серийный номер задан, то подпапка будет иметь имя, совпадающее с серийным номером (например, подпапка AVR910-AVR-USB-MEGA16). Чтобы удалить подпапку, нужно поставить разрешения (Permissions) на её удаление. Это делается просто. В редакторе реестра (в Windows XP это regedit.exe, в W2K это regedt32) кликните правой кнопкой на подпапке с именем, совпадающим с серийным номером, и выберите в контекстном меню «Permissions. «. В открывшемся окне для пользователя Everyone (Все по-русски) поставьте галочку на Full Control (полный доступ), нажмите OK. Теперь подпапка даст себя удалить.

Номер назначенного виртуального USB COM-порта программатора можно поменять вручную через Диспетчер Устройств. Это делается просто. Запускаете диспетчер устройств, идете в раздел «Ports (COM & LPT)». Находите там порт, соответствующий Вашему программатору. Например, это «Communications Port (COM15)». Мы хотим поменять COM15 на что-то более удобное, например COM3 (этот номер порта физически должен быть свободен, то есть сейчас в Диспетчере Устройств он должен отсутствовать или быть запрещен). Для этого кликните правой кнопкой на «Communications Port (COM15)», выберите Свойства (Properties). На закладке Port Settings нажмите кнопку «Advanced. «, в выпадающем списке «COM Port Number:» выберите COM3. В этом списке может быть написано, что этот порт используется «COM3 (in use)», но не обращайте на это внимания — Windows просто читает данные из реестра, где может быть указано, что такой порт когда-то использовался. После смены номера COM-порта в выпадающем списке жмем OK, еще раз OK. Если теперь обновить список оборудования в Диспетчере Устройств (меню Action -> Scan for hardware changes), то порт программатора теперь поменяется с COM15 на COM3.

4. При подключенном по USB программаторе не получается перетыкать программируемые платки в коннекторе ISP, если эти платки питаются через этот коннектор. Из-за броска напряжения по питанию программатор перестает функционировать, и приходится перетыкать интерфейс USB. Побороть эту беду можно несколькими способами — отключить у чипа ATmega16 Brown-Out детектор напряжения питания (соответствующими фьюзами), поставить фильтр по питанию коннектора ISP, запитать программируемую плату отдельно, либо подать дополнительное мощное питание +5 вольт на программатор (или применить все эти меры в комплексе).

[Настроечные биты микроконтроллера]

Для обеспечения работы микроконтроллера важно правильно выбрать значение его внутренних настроек (фьюзы, fuses). Самое главное, что необходимо обеспечить — правильную работу тактового генератора, за его работу отвечают фьюзы SUT1, SUT0 (start-up time, время запуска) и CKSEL3..0 (выбор источника для тактирования). По умолчанию выбран внутренний тактовый генератор 1 МГц, что не подойдет, так как для библиотеки V-USB надо обеспечить работу кварцевого резонатора. Вполне работоспособны следующие настройки для этих бит:

SUT1SUT0 = 11, CKSEL3..0 = 1111 (высокочастотный резонатор, время запуска 16 тыс. тактов CK + 64 мс)

SUT1SUT0 = 01, CKSEL3..0 = 1111 (высокочастотный резонатор, время запуска 16 тыс. тактов CK)

Остальные фьюзы не так важны, их можно оставить в значениях по умолчанию. Они выбирают включение/выключение различного функционала микроконтроллера (например, разрешение отладки, разрешение работы JTAG, разрешение программирования через SPI, разрешение работы узла детектора пропадания напряжения питания и т. д.). Советую обратить особое внимание только на фьюзы JTAGEN и SPIEN, так как от них зависит работоспособность программирования кристалла.

Для проверки правильности установки фьюзов используйте даташит на микроконтроллер, а также замечательный сайт, посвященный выбору фьюзов для микроконтроллеров AVR — Engbedded Atmel AVR® Fuse Calculator site:engbedded.com (строка для поиска Google).

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

0xBF LOW BYTE, 0x09 HIGH BYTE
0x9F LOW BYTE, 0XC9 HIGH BYTE

Основное отличие этих двух вариантов в том, что у первого разрешена отладка и JTAG, а у второго запрещены.

Источник

Технический форум по робототехнике.

AVR910USB

AVR910USB

заказал AVR910USB с мастеркита и установил драйвера от ПРОТТОСа, и теперь с CVAVR открываю programmer и прошиваю, но не пашет: AVRProg error entering programming mode…
и открываю с того же масткеркита AVRProg опять ошибка: Can’t enter programming mode…
в чем ошибка? я даж укоротил, но ошибка та же…


Re: AVR910USB

Scorpio » 10 май 2011, 22:59

Причин может быть несколько: Не правильно настроен СОМ порт, неправильно подключен программатор к прошиваемому МК, на последний не подано питание, ножка RESET сконфигурирована как порт (фьюзы), включены внешняя синхронизация и нет кварца (опять фьюзы). Пока хватит — проверяйте.


Re: AVR910USB

chinga » 11 май 2011, 10:28

программатор правильно подключен к мк, с USBasp работает ведь…
питание есть)
программа та только светодиод мигает и все) с reseto-ом ниче не делал) только на подтяжке стоит и все)
вот на счет фузов чет не уверен) и кварц не подключен к мк) я хочу внутренний кварц включить.
а как с фузами? я как понял если не буду прошивать никакие фузы то включается внутренний генератор,эт правильно?


Re: AVR910USB

RootAdmin » 11 май 2011, 11:22

Покажите список устойств?

Добавлено спустя 1 минуту 22 секунды:
Да, джампер «программирование» в мастеркитовском присутствует?


Re: AVR910USB

chinga » 11 май 2011, 11:38

http://www.masterkit.ru/main/set.php?code_id=276487

вот тот программатор) и я ниче не трогал))
список?)вот:
робоконтроллер

http://robozone.su/2008/06/01/universal … rc-40.html

без экспериментального модуля) и МК-Atmega32.
и шнур укороченный до 15-17см)
вроде все) контроллер программируется с USBasp)думаю в робокотроллере нету проблем


Re: AVR910USB

RootAdmin » 11 май 2011, 13:08

Хм… То есть мк успешно шьется через другой программатор? Или через этот же, AVR910USB, но из другой программы? Как определят его компьютер?


Re: AVR910USB

chinga » 11 май 2011, 15:29

мк шьется через USBasp нормально) вот с AVR910USB не хочет… находит по разному СОМ-порт) када включаешь по ходу рандомом выбирает) но я потом поставил вручную на СОМ2) но все ж не пашет… пробовал через AVRProg все ж…


Re: AVR910USB

RootAdmin » 11 май 2011, 16:06

Тут к avr123 надо, он на программах под Win собаку съел.


Re: AVR910USB

Scorpio » 11 май 2011, 17:01

Зеленый светодиод на AVR910USB моргает при попытке считывания/прошивки МК?


Re: AVR910USB

avr123.nm.ru » 11 май 2011, 18:01

chinga писал(а):AVR910 USB — AVRProg error entering programming mode… в чем ошибка?

Программатор не может войти в режим программирования чипа. Причин несколько —

— нет свзя с чипом так как в чипе нет тактового сигнала — убедитесь что включен внутренний генератор или подайте такт на XTAL1 — варианты

www.proavr.narod.ru/07.htm

— линии программирования нагружены на землю или на питания или друг на друга — прозвоните. Затем проверьте если ли сигналы на линиях программирования при попытках.


Re: AVR910USB

chinga » 11 май 2011, 18:11

вот извините, как проверить внутренний генератор?

а на счет линий, вроде все нормально) с юзбасп работает)
и даж када подключаю в программаторе АВР910ЮЗБ светик горит) вроде все нормально с линий…


Re: AVR910USB

chinga » 14 май 2011, 20:21

я вот читал где то что надо 12 ножку к земле подсоединить, это обязательно?


Re: AVR910USB

avr123.nm.ru » 14 май 2011, 22:31

Лучше название ножки.


Re: AVR910USB

chinga » 14 май 2011, 22:40

PB0(ICP)


Re: AVR910USB

avr123.nm.ru » 15 май 2011, 01:03

не надо.


Форум РадиоКот :: Просмотр темы — Вопрос про avr910


Автор:  sajaxt [ Сб окт 23, 2010 20:50:26 ]
Заголовок сообщения:  Re: Вопрос про avr910

Но ошибка то всёравно есть…


Автор:  546vlad [ Сб окт 23, 2010 21:33:01 ]
Заголовок сообщения:  Re: Вопрос про avr910

Возможно мк программатора прошился некорректно, что маловероятно. Все же лучше вместо светодиода прицепить осциллограф или частотомер, чтобы однозначно определить наличие частоты. А может порт выгоревший… Короче нужно измерять.
По поводу ошибки: а программатор вообще видит подключенный к нему мк? Т.е. есть ли разница при подключенном или отключенном прошиваемом мк?


Автор:  sajaxt [ Пн окт 25, 2010 01:02:42 ]
Заголовок сообщения:  Re: Вопрос про avr910

Абсолютно никакой разницы нет.
Выдаёт «AVRProg error entering programming mode.» в обоих случаях.


Автор:  sajaxt [ Вт окт 26, 2010 18:15:39 ]
Заголовок сообщения:  Re: Вопрос про avr910

Неужели, никто ничем не может помочь?


Автор:  O-LED [ Вт окт 26, 2010 18:42:37 ]
Заголовок сообщения:  Re: Вопрос про avr910

sajaxt писал(а):

Доброе время суток!

Я также стал жертвой ошибки «AVRProg error entering programming mode.».
Дело было так, внезапно программатор прекратил вообще распознаваться системой, если я не ошибаюсь произошло это после того как я выдернул его из копмпа, когда комп ещё работал.
Я переустановил дрова, всё вроде бы нормально, но вот выдаёт вышеупомнятою ошибку.
В качестве ПО использую CodeVisionAVR Evaluation V2.04.5b

Фьюзы я не трогал.
Все контакты ISP проверил раз по десять и визуально и прозвонил, всё вроде нормально.

Что ещё может быть не так? Подскажите, сегодня 4 часа подряд перепаивал схемку, устроиства которое надо запрограммировать. Я новичок.

вроде всё упомянул.

есть аналогии, или нет — тебе решать. моя история.

Я также стал жертвой ошибки «AVRProg error entering programming mode.».
Дело было так, внезапно программатор прекратил вообще распознаваться системой. после чего это произошло — хз, ВНЕЗАПНО.
Я переустановил дрова, всё вроде бы нормально, но вот выдаёт вышеупомнятою ошибку.
В качестве ПО использую CodeVisionAVR Evaluation V2.04.5b
Фьюзы я не трогал.
Все контакты ISP проверил раз по десять и визуально и прозвонил, всё вроде нормально. а параллельно я ремонтировал комп который принесли по гарантии. как только комп был доделан и выключен — О ЧУДО! ошибка исчезла, и прогер, как и раньше стал шить как автомат. подключив этот комп обратно, получаю — «AVRProg error entering programming mode.» выключаю его, но сетевой провод не вынимаю из БП этого компа — «AVRProg error entering programming mode.». вынимаю провод — шьёт отлично.
на этом же месте, рядом с программатором уже неоднократно настраивались кучи компов, и ничего подобного не наблюдалось.

мораль. скорее всего наводки. укорачивай шнур прогер-контролер, переложи прогер на другое место, попробуй на другом компе………
удачи.


Автор:  Murav [ Вт окт 26, 2010 18:49:27 ]
Заголовок сообщения:  Re: Вопрос про avr910

Может быть это вот эта проблема: viewtopic.php?p=598237#p598237 ?

O-LED писал(а):

Я также стал жертвой ошибки «AVRProg error entering programming mode.».

Возможно здесь причиной были помехи по проводу заземления? Провода заземления компьютеров были соединены?


Автор:  O-LED [ Вт окт 26, 2010 19:11:28 ]
Заголовок сообщения:  Re: Вопрос про avr910

так у меня проблемы нет. просто чел не знает что делать, вот я и рассказал свою историю, вдруг ему это поможет.


Автор:  sajaxt [ Вт окт 26, 2010 23:43:31 ]
Заголовок сообщения:  Re: Вопрос про avr910

Вообщем ситуация аналогичная….Внезапно прекратил распознаваться а потм стал выдавать ошибку.
Сегодня снова прекратил распознаваться, я занова дрова переустановил не распознаётся.
Установил дрова на другом компе, тоже не распознаётся :( у меня истерика скоро начнётся…
Подумываю, винду переустановить на ноуте, может начнёт тогда пахать….



Автор:  Murav [ Ср окт 27, 2010 13:23:55 ]
Заголовок сообщения:  Re: Вопрос про avr910

sajaxt писал(а):

Вообщем ситуация аналогичная….Внезапно прекратил распознаваться а потм стал выдавать ошибку.
Сегодня снова прекратил распознаваться, я занова дрова переустановил не распознаётся.

Программатор вообще видится системой?

sajaxt писал(а):

может не парится, и купить программатор?
вот этот к примеру:

http://www.amazon.de/ISP-Programmer-ATM … B00359ZDBO

Насколько я понял, это очередной клон AVRISP(то есть урезанного варианта STK500). Схему такого же программатора можно посмотреть например здесь — http://radiokot.ru/lab/controller/45/
У такого программатора проблем с несоответствием стандарту USB, как у V-USB с bulk endpoint’ами, нет — он реализуется микросхемой FT232.

O-LED писал(а):

так у меня проблемы нет.

Я это понял.

Murav писал(а):

Может быть это вот эта проблема: viewtopic.php?p=598237#p598237 ?

относилось к проблеме sajaxt


Автор:  sajaxt [ Ср окт 27, 2010 14:06:25 ]
Заголовок сообщения:  Re: Вопрос про avr910

Да программатор видиться системой, но не определяется.

Цитата:

Насколько я понял, это очередной клон AVRISP(то есть урезанного варианта STK500). Схему такого же программатора можно посмотреть например здесь — http://radiokot.ru/lab/controller/45/
У такого программатора проблем с несоответствием стандарту USB, как у V-USB с bulk endpoint’ами, нет — он реализуется микросхемой FT232.

Значит, его можно брать безо всяких зазрений совести.

Цитата:

Может быть это вот эта проблема: viewtopic.php?p=598237#p598237 ?

Впринципе это та проблема, но я там так решения и не нашел, такое ощущение что действительно вокруг него с бубном порыгать надо, как гдето в этой теме и говориться..


Автор:  gazovik [ Сб окт 30, 2010 13:05:08 ]
Заголовок сообщения:  Re: Вопрос про avr910

Цитата:

«AVRProg error entering programming mode.»

у меня была такая ошибка; программируемый микроконтроллер либо не подключен либо он неисправен


Автор:  @nod [ Пн ноя 01, 2010 02:55:13 ]
Заголовок сообщения:  Re: Вопрос про avr910

Собрал и я такой программатор ради спортивного интереса ( 2 уже есть: Пони Прог и STK 200-300).
Запрогал одну АТмегу 8 — нареканий пока нет. ( мало программировал — недавно собрал).
Работал в CodeVisionAVR V2.04.4a.
Кстати не нашел на него печатку ( может плохо искал).
Набросал свою — пользуйтесь :))


Автор:  @nod [ Пн ноя 01, 2010 02:56:39 ]
Заголовок сообщения:  Re: Вопрос про avr910

Да, шнур USB- 2 метра :)


Автор:  rikl [ Пт ноя 12, 2010 12:23:14 ]
Заголовок сообщения:  Re: Вопрос про avr910

Собрал такой со страницы Ptottoss http://prottoss.com/projects/AVR910.usb … rammer.htm
5-тью проводками залил прошивку. ХР нашла AVR910 USB programmer. Установил дрова. Не могу ни «в CodeVisionAVR», ни в «AVRStudio-4» увидеть программатор. CVAVR предлагает только 6 COM портов. А он у меня садится на 7 и выше. А Studio вообще не предлагает токой программатор, а из предложенных ни один не коннектится. Какие проги попробовать?


Автор:  O-LED [ Пт ноя 12, 2010 12:55:01 ]
Заголовок сообщения:  Re: Вопрос про avr910

ну так освободи в диспетчере задач под прогер какой нибудь порт с 3 по 6. скорее всего они у тебя все пусты, просто когда ты раньше чтото подключал, это чтото занимало свободный порт, и так за собой и «держит этот порт».


Автор:  rikl [ Пт ноя 12, 2010 13:01:50 ]
Заголовок сообщения:  Re: Вопрос про avr910

В диспетчере устройств изменил номер порта с 7 на 6. И стало всё работать. Странно как-то, с первого захода всё пошло. АTMega8A (32 ножки) использовал. Кстати, не мог найти кварц на 12 МГц, выковырял из убитой флешки.


Автор:  Antosha079 [ Сб ноя 13, 2010 00:07:23 ]
Заголовок сообщения:  Re: Вопрос про avr910

Если кто сталкивался подскажите пожалуйста Почему AVR910 невидит MEGA8515, MEGA162, а STK200 видит? :shock:

До этого AVR910 шил mega8, tiny2313, tiny13, tiny45, mega8535.

И еще, я гдето читал что можна както «подтолкнуть» МК и AVR910 их увидит, но к сожалению уже найти этого немогу :cry:


Автор:  rikl [ Вт ноя 16, 2010 12:54:51 ]
Заголовок сообщения:  Re: Вопрос про avr910

При работе с программатором возникает проблема по обнаружению программатора в CVAVR и др. на СОМ порте. Меня спасает простое выдергивание-вставка его из USB гнезда. Это напрягает, но дает возможность работать. Создается впечатление, что нужно вывести на корпус принудительный Reset.


Автор:  Antosha079 [ Вт ноя 16, 2010 20:42:26 ]
Заголовок сообщения:  Re: Вопрос про avr910

Уже разобрался. В дорожке на плате царапи :)) на образовалась, вот сигнал и непроходил.


Страница 3 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/

Там всё правильно- и с диодами пашет как надо. :smile: По краине мере у меня уже три программатора собрано. Но должен согласится-со стабилитронами лучще будет. :smile:

Собрал уже штук восемь (для себя любимого в разном исполнении, для знакомых, ну и…), если повторять один в один (с диодами) наиболее стабильный результат, со стабилитронами, как не парадоксально запускаются, не на каждом компе, а вообще как показывает статистика, многое зависит от самого компа, иногда проверенный и полностью рабочий, на отрез отказывается работать и помогает только, как правило, подключение через усб концентратор :smile:

Кстати побывал вместо диодов ставить стабилизатор LM1117на 3,3в, но тут надо еще по шаманить…все таки наиболее стабильно работает при напряжении 3.5-3.7v

PS основная засада при запуске, кварцевый генератор, частенько, достаточно пальцем тыркнуть вывод XTAL1, и о чудо…все пошло, до следующего запуска, помогает замена кварца, хотя он работоспособен на 100%, подбор пары конденсаторов(18-33 пф). Не знаю с чем связано, но иногда спасает замена СМД конденсаторов, в генераторе, на обычные? честно говоря с СМД у меня ни один так стабильно и не заработал

Давно точил зубы на программатор AVR910, поскольку он довольно популярный, и поддерживается многими программами. Я знаю как минимум 3 программы, работающие с ним — avrdude, AVR Studio, CodeVision AVR.

Этот программатор давно разработала сама компания Atmel (кажется аж в 2000 году), и полностью опубликовала всю документацию по нему, включая схему, код firmware программатора и протокол работы. Именно по этой причине AVR910 стал стандартом де-факто и до сих пор популярен. Изначально программатор AVR910 был рассчитан на подключение к компьютеру через последовательный COM-порт, и это со временем стало его серьезным недостатком — COM-порты трудно найти в современных компьютерах. Поэтому стали появляться клоны AVR910 (см. Ссылки), которые можно было подключить через USB. Эти AVR910-программаторы использовали для подключения к USB удачную микросхему FT232 (преобразователь USB <-> COM-порт), либо библиотеку V-USB компании Objective Development. На основе библиотеки V-USB делалось firmware, поддерживающее CDC-класс, к которому не нужен драйвер — нужен только информационный inf-файл. Этот класс организует в компьютере виртуальный COM-порт, через который и ведется обмен данными с AVR910.

Мне попались в руки исходники программатора PROTTOSS на чипе ATmega8 (выражаю большую признательность автору). Этот программатор основан на старой версии библиотеки V-USB (см. ссылки). Я портировал его код на чип ATmega16, что позволило без особого труда сделать из макетной платы AVR-USB-MEGA16 программатор, совместимый AVR910 и подключаемый по USB. Схема программатора видна на рисунке (красным цветом показаны дополнительные детали и соединения, которые надо установить на макетное поле платы). В результате получается программатор, полностью аналогичный функционально программатору PROTTOSS-а.

avr-usb-mega16-for-AVR910-sch.jpg

    На схеме фиолетовым цветом показана доработка макетной платы AVR-USB-MEGA16, чтобы получился программатор AVR910. Кварц необходимо поменять на 12 МГц (на макетной плате AVR-USB-MEGA16 может быть установлен кварц на 16 МГц. У меня в плане доработать исходники, чтобы можно было использовать все кварцы, которые на сегодняшний день поддерживает библиотека V-USB — 12, 15, 16, 16.5 и 20 МГц). На макетное поле установлено 2 ISP-коннектора (6 pin мама и 10 pin папа) для подключения программируемых устройств, а также установлены 2 светодиода — зеленый RD и синий PWR, перемычка LOW SCK и необходимые резисторы. Красный светодиод D1 (он уже был установлен на макетной плате) показывает режим записи программируемого устройства. Зеленый светодиод RD показывает режим чтения. Синий светодиод PWR показывает, что наличие питания на программаторе и показывает активность программатора (его включает и выключает процедура FlashTstLed, вызываемая из главного цикла main). Перемычка LOW SCK переключает скорость чтения и записи программируемого устройства. Когда перемычка снята, то скорость максимальная (используется аппаратный SPI), а когда установлена, то скорость искусственно снижается (при этом протокол SPI реализован программно). Более подробно про алгоритм работы перемычки LOW SCK и всего программатора можно почитать на сайте PROTTOSS (см. ссылки) — он остался без изменений.

avr-usb-mega16-for-AVR910-IMG_0428.JPG

На фото представлен внешний вид получившегося программатора. Цифрами в кружках показано назначение отдельных деталей на плате.   

1 — разъем miniUSB J1, через который программатор подключается к компьютеру.
2 — ISP коннектор U1, который используется для записи firmware в макетную плату AVR-USB-MEGA16. Через него нужно записать в микроконтроллер U2 программу для работы программатора (двоичный файл DebugExeavr910protoss.bin или avr910protoss.hex из архива проекта, см. ссылку 1).
3 — кварц U4, который надо поменять на 12 МГц (на макетной плате AVR-USB-MEGA16 установлен кварц на 16 МГц).
4 — разъем U3 JTAG, который может использоваться для программирования и отладки firmware (если Вы счастливый обладатель JTAGICE mkII).
5 — красный светодиод WR — когда программатор что-то пишет в программируемое устройство, светодиод мигает.
6 — зеленый светодиод RD — когда программатор что-то читает из программируемого устройства, светодиод мигает.
7 — коннектор для подключения внешнего напряжения питания 5 В — этот коннектор устанавливать необязательно. Я его припаял и использовал при отладке. Можно использовать для умощнения питания при программировании устройств, потребляющих более 70 ма. Внимание! Будьте осторожны с полярностью и напряжением (оно должно быть точно 5 В +/- 0.2 вольта) дополнительного источника питания — чтобы не спалить USB-порты и плату программатора.
8 — штырек, на который я отдельно вывел сигнал 1 МГц (нужен для приведения в чувство микроконтроллеров, у которых ошибочно зашиты фьюзы для использования внешнего кварца), который у PROTTOSS почему-то называется LED. Этот сигнал также выведен на 10-pin коннектор, и я его вывел на отдельный штырек для удобства. Устанавливать необязательно.
9 — перемычка LOW SCK.
10 — синий светодиод PWR.
11 — атавизм — перемычка, которую хотел использовать для сигнала RESET. Устанавливать не нужно.
12 — ISP коннектор 6 pin мама, предназначенный для программирования внешних устройств (рабочий коннектор программатора AVR910).
13 — ISP коннектор 10 pin папа, предназначенный для программирования внешних устройств (рабочий коннектор программатора AVR910).

    [Отличия описываемого здесь программатора от программатора PROTTOSS]

1. Я применил на всякий случай 2 ISP-коннектора — один 6-выводный (мама), другой 10-выводный (папа). Оба коннектора имеют ставшие стандартными цоколевки, которые широко используются.
2. Перемычка J1J2, которая использовалась у PROTTOSS для прошивки firmware в сам программатор, убрана из схемы за ненадобностью, так как макетная плата AVR-USB-MEGA16 имеет для целей программирования firmware AVR910 отдельный ISP-коннектор U1 (помимо JTAG-коннектора U3).
3. Схема программатора питается не от 3.3 вольт, а от 5 вольт, и на коннекторы ISP выведено напряжение питания 5 вольт, которое можно использовать для питания программируемой платы (если, конечно, она не потребляет ток больше 70 мА). Для подключения дополнительного источника питания можно использовать коннектор 7 (например, если программируемая плата потребляет ток больше 70 ма).
4. Предохранитель по питанию F1 на 0.1 А отсутствует. В нем нет особой нужды, поскольку в протоколе USB оговорено ограничение тока, потребляемое устройством по шине USB (100 мА по умолчанию, и 500 мА для устройств повышенной мощности), и все современные материнские платы и ноутбуки аппаратно поддерживают ограничение тока.
5. Светодиод «PWR» подключен не к шине питания, а к порту микроконтроллера, что позволяет его использовать также и для отладки.

Больше принципиальных отличий нет. Если необходимо программировать микроконтроллеры не от 5 вольт, а от 3.3 вольт, то я советую Вам установить на макетную плату интегральный стабилизатор на 3.3 вольт (например, дешевый LM1117), и запитать все схему от него. Можно даже предусмотреть переключение напряжения питания перемычкой — либо 5 вольт (прямое питание от USB), либо 3.3 вольт (питание от выхода стабилизатора LM1117). Никаких изменений в схему программатора при этом вносить не нужно.

При первом подключении программатора Windows XP запросит драйвер — скормите ей inf-файл AVR910.Driver2k_xp_32avr910.usb.2000.xp.inf (находится в архиве пакета с документацией и исходниками, см. ссылки).

avr-usb-mega16-for-AVR910-IMG_0397.JPG

[Проблемы прошивки, которые нужно исправить]

1. Программа работает только с кварцем на 12 МГц, хотя библиотека V-USB позволяет также использовать кварцы на 15, 16, 16.5 и 20 МГц.

2. Программа не работает с программатором avrdude. По словам автора, причина в некорректной обработке команд LED_ON и LED_OFF протокола — avrdude посылает команду LED_XX и не посылает состояние светодиодов, а firmware программатора эту ситуацию некорректно обрабатывает.

Если кто-нибудь из читателей поправит код и решит эти проблемы, буду очень рад.

[Работа программатором через консольную программу avrdude]

Программатор avrdude доступен в исходниках и скомпилированном виде для систем Windows и *nix, его легко скачать в Интернет. Эта программа несомненно порадует Линуксоидов, поскольку с помощью неё можно работать с программатором AVR910 из *nix-систем. Но, к сожалению, у меня программатор AVR910 работал с avrdude некорректно — то, что записывалось в чип ATmega16, не проходило верификацию. Кроме того, работает avrdude на запись чипов с описываемым в статье программатором очень медленно — например, микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт 727 секунд (12 минут). Чтение происходит быстро — за 18 секунд. Наверное, это связано с некорректной работой avrdude с AVR910 от PROTTOSS.

Пример комплексной операции — стирание чипа ATmega16, записи в него файла avr910protoss.hex (формат Intel Hex) и сверки содержимого flash с файлом avr910protoss.hex:

avrdude.exe -p m16 -c avr910 -P com4 -U flash:w:»C:asmAVR910-protossDebugExeavr910protoss.hex»:i -U flash:v:»C:asmAVR910-protossDebugExeavr910protoss.hex»:i -e -F

Пример записи перемычек 0xBF (low) и 0x09 (high):

avrdude.exe -p m16 -c avr910 -P com4 -U lfuse:w:0xBF:m -U hfuse:w:0x09:m -F

Пример чтения flash в файл progmemory.hex:

avrdude.exe -p m16 -c avr910 -P com4 -U flash:r:»C:asmAVR910-protossDebugExeprogmemory.hex»:i -F 

[Работа с программатором из CodeVision]

В среде CodeVisionAVR работать с программатором AVR910 довольно просто (я экспериментировал с версией CodeVisionAVR 2.04.4a Advanced). Сначала настраиваете тип программатора — выбираете в меню Settings -> Programmer, выбираете тип программатора Atmel AVRProg (AVR910) и порт Communication Port. Тут надо указать тот COM-порт, который появляется в системе при подсоединении программатора к компьютеру (можно посмотреть через Диспетчер Устройств). Скорость выбираете 115200. Микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт примерно за 42 секунды, проверка записи занимала 23 секунды.

[Работа с программатором из AVR Studio]

Тут тоже все просто. Выбираете в меню Tools -> AVR Prog…, и программа автоматически находит программатор AVR910 (порт указывать не нужно). Выбираете файл для программирования (в формате Intel HEX), выбираете тип программируемого чипа и жмете кнопку Program. Есть также кнопка Advanced…, которая позволяет стереть чип и настроить его перемычки. Микроконтроллер ATmega16 записывается бинарным файлом из 5862 байт примерно за 15 секунд (вместе с проверкой!). Отдельно проверка занимает примерно 3 секунды. Это наилучший результат! Такая высокая скорость, по словам PROTTOSS, получается за счет того, что программа от Atmel использует команды блочного обмена данными.

avr910-avrstudio.jpg

[Проблемы, которые у меня были с программатором AVR910 (PROTTOSS)]

1. Известная проблема несовместимости с avrdude.

2. «AVRProg error entering programming mode». Симптомы такие — светодиоды при попытке программировать/прочитать чип моргают (т. е. программатор система видит, и обмен данными с программатором есть). Проблема была в том, что не контачил сигнал SCK в коннекторе ISP (он не доходил до программируемого чипа).

3. При перетыкании программатора из одного порта USB в другой меняется номер COM-порта, привязанного к программатору. Например, в одном порте он может быть COM3, а в другом COM4. В программаторе CodeVision AVR приходится менять настройку порта программатора, а в программаторе AVR Studio приходится перезапускать программу (AVRprog от AVR Studio находит порт автоматически, если он в пределах COM1..COM4). К сожалению AVR Studio, в отличие от CodeVision, не видит порты COM5..COM8 (при перетыкании они вполне могут привязаться к программатору).

В принципе, это не проблема, а так — фича. Такое поведение легко поправить, если в файле usbconfig.h ввести макроопределение USB_CFG_SERIAL_NUMBER_LENGTH не равное нулю, и usbCfgSerialNumberStringDescriptor со строкой серийного номера. Я попробовал — работает, COM-порт получается всегда один и тот же при включении в разные порты USB. Внимание — если Вы задали серийный номер устройства в usbconfig.h, то в компьютере нельзя одновременно использовать несколько программаторов с одинаковыми серийными номерами (хотя, собственно, зачем это надо?).

avr910-COM-port-num01.JPG

Вот так выглядят в реестре настройки программатора с назначенным серийным номером AVR910-AVR-USB-MEGA16. Теперь номер COM-порта при перетыкании по портам USB остается неизменным (COM3).

Старые ненужные настройки виртуальных USB COM-портов можно удалить. После удаления их настроек при подключении устройства Windows снова запросит драйвер. Удалять надо подпапки внутри папки HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBVid_16c0&Pid_05e1. Обычно эти подпапки именуются загадочно типа 5&160f4e1&0&2 — это и есть серийный номер, который назначается Windows автоматически, если в устройстве серийный номер не задан. Если же серийный номер задан, то подпапка будет иметь имя, совпадающее с серийным номером (например, подпапка AVR910-AVR-USB-MEGA16). Чтобы удалить подпапку, нужно поставить разрешения (Permissions) на её удаление. Это делается просто. В редакторе реестра (в Windows XP это regedit.exe, в W2K это regedt32) кликните правой кнопкой на подпапке с именем, совпадающим с серийным номером, и выберите в контекстном меню «Permissions…». В открывшемся окне для пользователя Everyone (Все по-русски) поставьте галочку на Full Control (полный доступ), нажмите OK. Теперь подпапка даст себя удалить.

Номер назначенного виртуального USB COM-порта программатора можно поменять вручную через Диспетчер Устройств. Это делается просто. Запускаете диспетчер устройств, идете в раздел «Ports (COM & LPT)». Находите там порт, соответствующий Вашему программатору. Например, это «Communications Port (COM15)». Мы хотим поменять COM15 на что-то более удобное, например COM3 (этот номер порта физически должен быть свободен, то есть сейчас в Диспетчере Устройств он должен отсутствовать или быть запрещен). Для этого кликните правой кнопкой на «Communications Port (COM15)», выберите Свойства (Properties). На закладке Port Settings нажмите кнопку «Advanced…», в выпадающем списке «COM Port Number:» выберите COM3. В этом списке может быть написано, что этот порт используется «COM3 (in use)», но не обращайте на это внимания — Windows просто читает данные из реестра, где может быть указано, что такой порт когда-то использовался. После смены номера COM-порта в выпадающем списке жмем OK, еще раз OK. Если теперь обновить список оборудования в Диспетчере Устройств (меню Action -> Scan for hardware changes), то порт программатора теперь поменяется с COM15 на COM3.

4. При подключенном по USB программаторе не получается перетыкать программируемые платки в коннекторе ISP, если эти платки питаются через этот коннектор. Из-за броска напряжения по питанию программатор перестает функционировать, и приходится перетыкать интерфейс USB. Побороть эту беду можно несколькими способами — отключить у чипа ATmega16 Brown-Out детектор напряжения питания (соответствующими фьюзами), поставить фильтр по питанию коннектора ISP, запитать программируемую плату отдельно, либо подать дополнительное мощное питание +5 вольт на программатор (или применить все эти меры в комплексе).

[Настроечные биты микроконтроллера]

Для обеспечения работы микроконтроллера важно правильно выбрать значение его внутренних настроек (фьюзы, fuses). Самое главное, что необходимо обеспечить — правильную работу тактового генератора, за его работу отвечают фьюзы SUT1, SUT0 (start-up time, время запуска) и CKSEL3..0 (выбор источника для тактирования). По умолчанию выбран внутренний тактовый генератор 1 МГц, что не подойдет, так как для библиотеки V-USB надо обеспечить работу кварцевого резонатора. Вполне работоспособны следующие настройки для этих бит:

SUT1SUT0 = 11, CKSEL3..0 = 1111 (высокочастотный резонатор, время запуска 16 тыс. тактов CK + 64 мс)

SUT1SUT0 = 01, CKSEL3..0 = 1111 (высокочастотный резонатор, время запуска 16 тыс. тактов CK)

Остальные фьюзы не так важны, их можно оставить в значениях по умолчанию. Они выбирают включение/выключение различного функционала микроконтроллера (например, разрешение отладки, разрешение работы JTAG, разрешение программирования через SPI, разрешение работы узла детектора пропадания напряжения питания и т. д.). Советую обратить особое внимание только на фьюзы JTAGEN и SPIEN, так как от них зависит работоспособность программирования кристалла.

Для проверки правильности установки фьюзов используйте даташит на микроконтроллер, а также замечательный сайт, посвященный выбору фьюзов для микроконтроллеров AVR — Engbedded Atmel AVR® Fuse Calculator site:engbedded.com (строка для поиска Google).

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

0xBF LOW BYTE, 0x09 HIGH BYTE
0x9F LOW BYTE, 0XC9 HIGH BYTE

Основное отличие этих двух вариантов в том, что у первого разрешена отладка и JTAG, а у второго запрещены.

0xBF LOW BYTE, 0x09 HIGH BYTE
0x9F LOW BYTE, 0XC9 HIGH BYTE

Основное отличие этих двух вариантов в том, что у первого разрешена отладка и JTAG, а у второго запрещены.

Обратите внимание, что здесь рекомендуемые значения фьзов совпадают с предыдущей врезкой для микроконтроллера ATmega16. Ничего удивительного, набор фьюзов у микроконтроллеров ATmega16, ATmega32, ATmega32A одинаковый.

Если Вы используете загрузчик (к примеру USBasp для ATmega32 или BootloadHID для ATmega16) обратите внимание на фьюзы, которые управляют размером секции загрузки: BOOTSZ1 и BOOTSZ0.

[Ссылки]

1. Проект, описанный в статье, с исходниками — 091106AVR910-protoss.rar (для IAR EWB AVR 5.20), с документацией и драйвером для компьютера. Готовая скомпилированная прошивка для ATmega16 лежит в папке DebugExe архива (в форматах bin и hex). Только прошивку и драйвер (без исходников) можно скачать здесь — 091106AVR910-protoss-binaries.zip.
2. AVR910: In-System Programming site:atmel.com.
3Программатор микроконтроллеров AVR / 89S совместимый с AVR910 site:prottoss.com.
4. Программаторы для AVR.
5. V-USB site:obdev.at — библиотека V-USB компании Objective Development, avr-usb-russian.rar — версия V-USB с русскими комментариями. Пошаговое руководство, как начать использовать библиотеку V-USB.
6. Макетная плата AVR-USB-MEGA16.
7. Программы для AVR. Там есть ссылка на закачку CodeVisioAVR, с которым работает программатор AVR910. 
8. AVR-USB-MEGA16: как сделать STK500-совместимый ISP и HVSP программатор (AVR-Doper).

64 / 63 / 7

Регистрация: 19.03.2013

Сообщений: 207

1

18.12.2013, 21:52. Показов 5567. Ответов 7


Прошу помощи.
Имеется чип atmega8515-16pu и программатор avr910. Я хочу зашить простенький алгоритм. Зажигание светодиода. Спаял по схеме на картинке.
ОС: Windows 7 64 bit. hex-файл подготовил в CodeVisionAVR. при компиляции ошибок не было. Но при попытке прошить чип CVAVR выдает ошибку: Error entering programming mode. Fuse bits никакие не ставил. Утилита AvrProg из Avr Studio 4 выдает похожую ошибку: Can’t enter programming mode, хотя после нажатия кнопки verify пишет verifying ok. я так понимаю это значит что программатор в порядке? пробовал еще avr osp II, там есть кнопка автоопределения чипа, жму на нее, выходит ответ:
Checking programmer type …
Found AVR ISP
Entering programming mode…
Entering programming mode failed!
Programmer did not return CR after «p»-command.
может кто сталкивался с такой проблемой, можете помочь?

Миниатюры

Проблема с программатором AVR910 в ОС Win7
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



10229 / 6607 / 498

Регистрация: 28.12.2010

Сообщений: 21,159

Записей в блоге: 1

18.12.2013, 23:07

2

…драйвера на программатор под вашу 64-бит ОС семерку установлены, админ-права на установку драйвера давали? Никаких желтых значков в диспетчере? Программатор самим прошивальщиком видится?



0



64 / 63 / 7

Регистрация: 19.03.2013

Сообщений: 207

19.12.2013, 10:40

 [ТС]

3

Цитата
Сообщение от raxp
Посмотреть сообщение

…драйвера на программатор под вашу 64-бит ОС семерку установлены, админ-права на установку драйвера давали? Никаких желтых значков в диспетчере? Программатор самим прошивальщиком видится?

да вроде как все нормально встало. скрин диспетчера устройств прилагаю.
то что avr-osp пишет «Found AVR ISP» я решил что программатор виден. правильно же? скрин avr-osp прилагаю.
еще пробовал через утилиту AvrProg, которая находится в AvrStuido 4. нажимаю на кнопку Verify, AvrProg отвечает «Verifying Flash…OK» скрин также прилагаю.
пробовал и CodeVisionAVR, но не понял как определить видит ли она программатор.



0



64 / 63 / 7

Регистрация: 19.03.2013

Сообщений: 207

19.12.2013, 10:44

 [ТС]

4

не тот скрин AvrProg’а прилепил. вот правильный

Миниатюры

Проблема с программатором AVR910 в ОС Win7
 



0



10229 / 6607 / 498

Регистрация: 28.12.2010

Сообщений: 21,159

Записей в блоге: 1

19.12.2013, 10:52

5

…питание проверяли?
…хорошо, верификация оки, а просто стереть?
…еще момент, под 64-битную семерку частые жалобы на работу программатора (точнее драйвера), то медленно идет перепрошивка, то не видится …под виртуалОС c XP проверить есть возможность?



0



64 / 63 / 7

Регистрация: 19.03.2013

Сообщений: 207

19.12.2013, 11:20

 [ТС]

6

да, питание в порядке.
стереть не получается, AvrProg пишет «Erase failed»
Avr-OspII пишет:
Checking programmer type …
Found AVR ISP
Entering programming mode…
Entering programming mode failed!
Programmer did not return CR after ‘P’-command.
Erasing chip contents…
Reading HEX input file for flash operations…
Programming Flash contents… 0x0000 TO 0x00BB
Reading Flash contents…0x0000 TO 0x00BB
Comparing Flash data…
Unequal at address 0x0000
Expected 0x11 Read 0xFF
Leaving programming mode…

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



0



10229 / 6607 / 498

Регистрация: 28.12.2010

Сообщений: 21,159

Записей в блоге: 1

19.12.2013, 11:32

7

стереть не получается, AvrProg пишет «Erase failed»

чип новый? Проверьте правильность подключения к программатору.



1



64 / 63 / 7

Регистрация: 19.03.2013

Сообщений: 207

19.12.2013, 11:40

 [ТС]

8

да, чип новый. еще раз проверил, все спаяно согласно схеме из первого поста.



0



Понравилась статья? Поделить с друзьями:
  • Avrdude ошибка 0xc000007b
  • Avrdude verification error first mismatch at byte 0x0000 0x62 0x0c
  • Avrdude verification error content mismatch ошибка на ардуино
  • Avrdude stk500v2 getsync timeout communicating with programmer произошла ошибка при загрузке скетча
  • Avrdude stk500 disable protocol error expect 0x14 resp 0x00