Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программрование ATmega16
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
maximka
Спаял схемку программатора STK200/300 запрограммирал микросхему из ICC. Все работает. Стал разбираться с CodeVisionAvr, написал прогу и попробовал запрограммировать. В первый раз вообще никакой ошибки не выдал, но микроконтроллер тоже не работал, во второй раз написал что запись не возможна. и т. д. Попробовал опять в ICC не работает. Программатор проверил.
Залез на сайт CodeVisionAvr там в http://www.hpinfotech.ro/html/cvavr_features.htm вообще нет ни слова про поддержку ATmega16.
Вопрос: Мог ли я при программировании как то спалить микросхему (питание 5В)?
Кто нибудь программировал ATMega16 в CVAVR?
Программирование битов защиты вроде не трогал и если я их запрограммировал какую ошибку должен выдавать программатор?
Есть ли у кого описание CVAVR желательно на русском, а то я таким макаром разорюсь на микросхемах.
Спасибо.
defunct
Цитата(maximka @ Jan 21 2006, 10:25) *
Вопрос: Мог ли я при программировании как то спалить микросхему (питание 5В)?
Кто нибудь программировал ATMega16 в CVAVR?
Программирование битов защиты вроде не трогал и если я их запрограммировал какую ошибку должен выдавать программатор?
Есть ли у кого описание CVAVR желательно на русском, а то я таким макаром разорюсь на микросхемах.
Спасибо.


спалить врятли, а вот установить другой clock source - запросто.
теперь пробуйте затактировать вашу мегу от внешнего генератора.
почитайте про fuse bits в даташите.
maximka
Цитата(defunct @ Jan 21 2006, 13:07) *
спалить врятли, а вот установить другой clock source - запросто.
теперь пробуйте затактировать вашу мегу от внешнего генератора.
почитайте про fuse bits в даташите.


А где устанавливается clock source (источник синхросигнала)?

вопрос снимаетя, пока не разобрался как удалить сообщение. Извиняюсь.
maximka
Цитата(defunct @ Jan 21 2006, 13:07) *
спалить врятли, а вот установить другой clock source - запросто.
теперь пробуйте затактировать вашу мегу от внешнего генератора.
почитайте про fuse bits в даташите.


скорее всего вы правы, я поторопился. Спасибо.
При изменении Program Fuse Bit например написано:
СКOT=0, я ставлю галочку, но значение не меняется - и что запишется если стоит галочка напротив этого бита?
defunct
Цитата(maximka @ Jan 21 2006, 13:05) *
При изменении Program Fuse Bit например написано:
СКOT=0, я ставлю галочку, но значение не меняется - и что запишется если стоит галочка напротив этого бита?


CKOPT - фуз включения/отключения усилителя тактового генератора, когда он запрограммирован (=0) - усилитель включен и с XTAL2 можно снимать сигнал для тактирования чего либо еще, когда нет - потребляется меньший ток, но тактировать XTAL2 ничего нельзя.

Выбор clock source определяется четырьмя битами Fuse Low Byte - CKSEL3..0
О них подробно расписано в даташите раздел "System Clock and Clock Options"
Blade000
Скорее всего с контроллером всё в порядке, просто вы сконфигурировали вывод Reset как I/O порт, тепер в режиме ISP он не будет программироваться, надо паралельный программатор искать.

А то как вы сконфигурировали тактовый генератор на программирование не влияет, влияет на дальнейшую работу контроллера после программирования.
maximka
Цитата(Blade000 @ Jan 21 2006, 20:44) *
Скорее всего с контроллером всё в порядке, просто вы сконфигурировали вывод Reset как I/O порт, тепер в режиме ISP он не будет программироваться, надо паралельный программатор искать.

А то как вы сконфигурировали тактовый генератор на программирование не влияет, влияет на дальнейшую работу контроллера после программирования.


Ну я возможно ошибаюсь, но частота SCK служит только для синхронизации передачи, а частота нужна для программирования самого микроконтроллера. Тоесть если я поставил в качестве синхронизатора внешний сигнал, то у меня ничего работать не будет без него.
Blade000
Программировал мегу8 и с кварцем и без кварца. Если ты не можешь даже биты конфигурации поменять, значит ты точно Reset неправильно настроил, бало такое у самого, потом через паралельный прагромматор вернул всё на свои места и спокойно программировал через ISP.
Если конечно корпус DIP, то всё просто, а если TQFP то сложновато будет cranky.gif
defunct
Цитата(Blade000 @ Jan 21 2006, 22:06) *
Программировал мегу8 и с кварцем и без кварца. Если ты не можешь даже биты конфигурации поменять, значит ты точно Reset неправильно настроил, бало такое у самого, потом через паралельный прагромматор вернул всё на свои места и спокойно программировал через ISP.
Если конечно корпус DIP, то всё просто, а если TQFP то сложновато будет cranky.gif


У Mega16 нельзя залочить Reset, учите матчасть...
Blade000
Согласен, не посмотрел в описание, а как биты конфигурации были настроенны в первый раз программирования?
maximka
Не знаю, просто запрограммировал в ICC, попробовал в CVAVR. Просто скорее всего там по умолчанию стоит галка Program FUSE BITS, а сами биты не выбраны. Так что получилось что я все FUSE BITS запрограммировал как 1, а под это попадает внешний резонатор, тоесть наверное сигналы синхронизации выходят с XTAL2, но не попадают на XTAL1, тоесть нет сигнала синхронизации. Попробую завтра подать частоту с генератора или может быть подсоединю кварц. Ну вообщем буду разбираться, на всякий пожарный купил еще один микроконтроллер.
ALexx
Цитата(maximka @ Jan 21 2006, 11:25) *
Кто нибудь программировал ATMega16 в CVAVR?


А как КодВижн ругнулся? Какая версия у Вас?

В настоящее время активно программирую оный кристалл.
Работаю от внешнего кварца 8МГц.

Вид окошка перед программированием прилагается.

Сначала выполняю стирание(см. второй рисунок), а потом заливку флеша.
Ни разу проблем не наблюдалось.
maximka
Всем спасибо разобрался. Запитал от внешнего генератора и все заработало. Перепрограммировал Fuses Bits и все стало ок.

Кстати заметил еще проблемы. При программировании прерывыний в файле MEGA16.H все вектора прерываний больше на единицу. Тоесть они меняются от 2 до 21, а в описании от 1 до 20. Соответственно если вы указываете вектор прерывания по книжке то попадаете не на то прерывание.

Цитата(ALexx @ Jan 23 2006, 16:26) *
Вид окошка перед программированием прилагается.

Сначала выполняю стирание(см. второй рисунок), а потом заливку флеша.
Ни разу проблем не наблюдалось.


Если вы в данной ситуации нажмете PROGRAM ALL то все фьюзы будут запрограммированы как 1.
WHALE
Да,с векторами прерываний это хохма Вижина.Но она описана-в хел-
пе открой интерапт,там есть пример с 90s8515,и видно что вектора
надо указывать больше на 1.А проще пользуйся генератором кода.
defunct
Цитата(maximka @ Jan 23 2006, 18:56) *
Тоесть они меняются от 2 до 21, а в описании от 1 до 20. Соответственно если вы указываете вектор прерывания по книжке то попадаете не на то прерывание.


Imho такую книжку можно "фтопку".
см даташит, стр.43: 2 - номер вектора Ext Int0, 21 - номер вектора SPM_RDY... т.е. все верно c MEGA16.H..
maximka
Цитата(defunct @ Jan 23 2006, 21:22) *
Imho такую книжку можно "фтопку".
см даташит, стр.43: 2 - номер вектора Ext Int0, 21 - номер вектора SPM_RDY... т.е. все верно c MEGA16.H..


А у чего тогда первый вектор прерывания?
defunct
Цитата(maximka @ Jan 24 2006, 21:01) *
А у чего тогда первый вектор прерывания?


1-й - вектор сброса (PowerOn/ Reset/ WDT Reset)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.