Часто задаваемые вопросы и ответы на
них
Q1. Как ленивый пользователь, я предпочитаю работать с WIN
оболочкой, а не с командной строкой. Будет ли когда-то avreal иметь GUI?
Q2. Для чего нужен сигнал PEN (вывод 1) у процессора
mega103?
Q3. Шил 1200 чудесно пока не поставил между ресетом и землей
конденсатор и резистором подтянул к Vcc. После этого после стирания AvReal
говорит что никто не подключен хотя отдельный запуск с оставшимися ключами
проходит нормально. В чем дело?
Q4. После того, как я начал в своей программе использовать SPI
порт - чип перестал детектироваться :(
Q5. Каково Ваше мнение по поводу Атмеловского программатора,
описанного в Application Note AVR910?
Q6. Я залочил 90s2313 и он перестал распознаваться
программатором.
Q7. У меня в mega103 не записывается EEPROM данных.
Q8. А почему программирование происходит ТАК МЕДЛЕННО?
Q9. У меня почему-то не программируется через байт-бластер (да, кстати,
в схеме на страничке ошибочно показана полярность диода)
Q10. Зачем в схеме байт-бластера диод и почему именно в такой полярности?
- Q1.
- Как ленивый пользователь, я предпочитаю работать с WIN оболочкой, а не с
командной строкой. Будет ли когда-то avreal иметь GUI?
- A.
- Как ленивый пользователь :-), я предпочитаю нажать CtrlF9 в любимом
редакторе для пересборки и зашивки проекта в AVR вместо того, чтобы жать тучу
кнопок в WIN-оболочках компилятора и программатора.
Собственно, мотивом
написания avreal и было то, что не было толкового программатора командной
строки, иначе бы я и не рыпался :-) Большинство (если не все) современных IDE
позволяют включить внешнюю command line программу. Подключите avreal, задайте
командную строку с файлом проекта и жмите кнопки.
Оглавление
- Q2.
- Для чего нужен сигнал PEN (вывод 1) у процессора mega103?
- A.
- From: avr@atmel.com
Date: Wed, 14 Oct 1998
The PEN pin is a Reset pin that is only active on power-up.
Otherwise it is inactive. (The idea is to
make a system with external ISP functionality, like a portable telephone, but
with no risk of resetting the system accidentally. It can only be
reset/programmed when power is switched off and on.)
Оглавление
- Q3.
- Шил 1200 чудесно пока не поставил между ресетом и землей конденсатор и
резистором подтянул к Vcc. После этого после стирания AvReal говорит что никто
не подключен хотя отдельный запуск с оставшимися ключами проходит нормально. В
чем дело?
- A.
- По спецификации программирования после стирания необходимо снять сброс с
кристалла, потом опять подать. При большой задержке сигнала сброса
конденсатором либо супервизором чип просто не успевает пересбросится. Начиная
с версии 1.14rev3 в avreal добавлен ключ времени неактивного Reset после
стирания -ai. Необходимо установить
время заведомо большее, чем задержка снятия сигнала сброса внешними цепями.
Оглавление
- Q4.
- После того, как я начал в своей программе использовать SPI порт - чип
перестал детектироваться :(
- A.
-
Касается версий avreal до 1.22 (начиная с этой версии ключ указания чипа
+name обязателен).
Довольно частая ошибка - применение avreal без указания чипа. Пока SPI не
задействован - вход в программирование сразу, читается DEV ID и дальше все без
проблем. Как только включенный SPI начинает мешать - облом.
Дело в том,
что по умолчанию в старых версиях avreal принимается 90s1200.
Если все нормально, то чип входит в
connect сразу, по dev ID определяется тип и дальше все Ok. Но если зашитая в
чип программа выставляет высокий уровень на SCK, то сразу войти в синхронизм
не удается. Для всех чипов кроме 90s1200 существует процедура
пересинхронизации и в конце концов все нормально. Но для 90s1200 этой
процедуры не просто нет - ее нельзя применять (затирается dev ID, еще
какие-то бяки, вроде бы даже можно загнать чип в позу, из которой его выводит
только параллельный программатор). Итого по умолчанию процедура
пересинхронизации не проводится. Итого Вы имеете "not connected".
Оглавление
- Q5.
- Каково Ваше мнение по поводу Атмеловского программатора, описанного в
Application Note AVR910?
- A.
- '+' Он независим от прихотей DOS/NT/кто_угодно_еще, так как ему надо всего
лишь COM-порт в стандартном режиме доступа. Его легче сделать полностью
гальванически развязанным (всего 2 линии связи). Меньше проблем при работе с
низковольтными AVR (LPT порт-то норовит выдать 5V).
'-' более медленная
работа, чем через LPT, в основном из-за слишком упрощенной системы команд
программатора (следствие выбора 90s1200 как основы). Если бы там был 90s2313,
то можно было бы сделать в ОЗУ буфер, аппаратный UART позволил бы влупить
скорость скажем 57600 и кроме этого запараллелить прием и зашивку блоков
данных (а не побайтно, как в AVR910) - это сильно подняло бы скорость работы.
Оглавление
- Q6.
- Я залочил 90s2313 и он перестал распознаваться программатором
- A.
- Это описанная в errata ситуация. И вообще, errata составляются не
только для пишущих программаторы.
У 90s2313 lock-биты могут не стираться
при напряжении питания 5V. Необходимо стереть кристалл при пониженном
напряжении (причем зачастую достаточно понизить его до 4.8V), затем можно
вернуться к нормальному и запрограммировать.
Оглавление
- Q7.
- У меня в mega103 не записывается EEPROM данных...
- A.
- Вероятне всего не не записывается а не читается. И кварц у
Вас вероятно на почти 6MHz. Тоже есть errata - у меги в режиме
последовательного программирования не читается EEPROM при тактовых частотах,
близких к максимальной (записывается нормально!).
Оглавление
- Q8.
- А почему программирование происходит ТАК МЕДЛЕННО?
- A.
- А не забывайте про ключик -o
частота установленного на кристалл кварца. Исходя из этой частоты
рассчитывается, сколько времени должны присутствовать уровни '0' и '1' на
входе SCK кристалла. По умолчанию 800kHz (чтобы точно заработало на
кристаллах с внутренним RC-генератором на 1MHz) и avreal соответственно
занижает частоту обмена. Начиная с версии 1.23rev2 добавлен поллинг
при записи памяти кода (ключ -wp), это также повышает скорость записи.
Оглавление
- Q9. У меня почему-то не программируется через байт-бластер (да, кстати,
в схеме на страничке ошибочно показана полярность диода)
-
- A.
- Ну раз Вы нашли в схеме ошибку, которую за десятки тысяч посещений сайта никто
не заметил, надеюсь, Вы её исправили, прежде чем паять байт-бластер? Да? Тогда
чему удивляться? Попробуйте впаять диод так, как показано на схеме,
ещё раз прочтите про подключение питания
к адаптеру и плате,
после чего прочтите ниже ответ на правильную форму этого вопроса
(в такой форме его тоже задают, но почему-то гораздо реже, чем в этой).
Оглавление
- Q10. Зачем в схеме байт-бластера диод и почему именно в такой полярности?
-
- A.
- Этот диод исключает паразитную запитку платы с программируемым контроллером
от LPT-порта по цепи [выходы и подтянутые к +5В входы порта]->[входные защитные диоды
шинного формирователя]->[вывод 20 формирователя]->[вывод 4 колодки байт-бластера].
Нагрузнчной способности выходов LPT может оказаться достаточно, чтобы
даже на довольно большой и "прожорливой" плате с 5-вольтовыми микросхемами
при отключении основного питания обеспечить "натекание" напряжения до полутора вольт.
В результате возможны разные неприятности от несрабатывания POR при подаче основного
питания до незапуска импульсного источника, питающего плату. Последнее наблюдалось
на плате с пятью 208-ногими ИС программируемой логики, питаемой от импульсного
блока питания стандарта AT.
Оглавление