Для нового проекта был выбран микроконтроллер AT32UC3L064 до этого приходилось работать с 8-иразрядными AVR. Для начала решил попробывать подергать ножкой, однако, уже на этом этапе появились сложности.
Код пока приводить не буду - возможно найдутся люди, которые помогут советом и без него.
Последовательность действий в программе такова:
1) инициализация регистра SKIF OSCCTRL для работы от внешнего кварца частотой 11,059200 МГц
2) ожидание готовности осцилятора, т.е. мониторинг регистра SCIF PCLKSR. Когда выставится флаг OSC0RDY, переходим к следующему шагу.
3) выбираем внешний осцилятор в регистре MCCTRL Power Manager'а.
4) инициализируем одну ножку порта как выход, т.е инициализируем регистры gper и oder модуля GPIO.
5) ну и собственно бесконечный цикл по дерганию ножкой.
Программа прекрасно работает в режиме отладки по jtag: работоспособность контролируется с помощью осциллографа, луч которого подсоединен к нашей бедной ножке. После выхода из режима отладки контроллер тоже живет - ножка дергается. После снятия питания работоспособность сохраняется. Выше описанные действия выполнялись в avrstudio 5.
Теперь собственно проблема. Контроллер отказывается дергать ножкой после прямого программирования flash - памяти. Если зашивать файл, скомпилированный в avrstudio 5.0, то работоспособность не восстанавливается даже после повторной подачи питания. Если же зашивать файл скомпилированный в avr32studio, то контроллер не работает после момента прошивки, а после снятия и повторной подачи питания работает. После любых манипуляций из avr32studio: чтения фьюзов, сброс, чтения регистров и так далее - ножка перестает дергаться, хотя результат выполнения операций положителен.
Проблема наврядли вызвана использованием внешнего кварца, так как те же самые проблемы возникают и при использовании встроенного.
Жду Вашей помощи! Заранее спасибо!