Часто задаваемые вопросы и ответы на них
Q1. Как ленивый пользователь, я предпочитаю работать с WIN оболочкой, а
не с командной строкой. Будет ли когда-то avreal иметь GUI?
Q2. Для чего нужен сигнал PEN (вывод 1) у процессора mega103?
Q3. Шил 1200 чудесно пока не поставил между ресетом и землей конденсатор
и резистором подтянул к Vcc. После этого после стирания AvReal
говорит что никто не подключен хотя отдельный запуск с оставшимися
ключами проходит нормально. В чем дело?
Q4. После того, как я начал в своей программе использовать SPI порт -
чип перестал детектироваться :(
Q5. Каково Ваше мнение по поводу Атмеловского программатора, описанного в
Application Note AVR910?
Q6. Я залочил 90s2313 и он перестал распознаваться программатором.
Q7. У меня в mega103 не записывается EEPROM данных.
Q8. А почему программирование происходит ТАК МЕДЛЕННО?
- 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 без указания чипа. Пока
SPI не задействован - вход в программирование сразу, читается DEV ID и
дальше все без проблем. Как только включенный SPI начинает мешать -
облом.
Дело в том, что по умолчанию принимается 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).
Оглавление