Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по фьюзам
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Павел_Б
Здравствуйте всем.
На плате стояла атмега8, посадил атмега168
корпуса у обеих TQFP 32
фюзы у атмега 16 стояли для работы от встроенного RC генератора, но у меня-то на плате кварц на 4 мегагерца.
Решил прошить через CodeVisionAVR.
Короче запрограммировал я фьюзы как на картинке, и у меня сейчас вообще полный ноль, программатор в режим программирования не входит, ничего не работает.
На одном выводе кварцевого резонатора почти всё напряжение питания показывает, а на другом 0 вольт.
Вот теперь сижу в догадках то ли фьюзы не так выставил, то ли ещё что...
У меня в общем получилось что CKSEL=1101 SUT=11
Байты конфигурации такие:
LOW 0x7D
High 0xDF
Extended 0xF9
Может подскажете? должно ли работать от кварца с такими фьюзами? Спасибо.
OlegPowerC
Цитата(Павел_Б @ Jun 19 2011, 11:51) *
Здравствуйте всем.
На плате стояла атмега8, посадил атмега168
корпуса у обеих TQFP 32
фюзы у атмега 16 стояли для работы от встроенного RC генератора, но у меня-то на плате кварц на 4 мегагерца.
Решил прошить через CodeVisionAVR.
Короче запрограммировал я фьюзы как на картинке, и у меня сейчас вообще полный ноль, программатор в режим программирования не входит, ничего не работает.
На одном выводе кварцевого резонатора почти всё напряжение питания показывает, а на другом 0 вольт.
Вот теперь сижу в догадках то ли фьюзы не так выставил, то ли ещё что...
У меня в общем получилось что CKSEL=1101 SUT=11
Байты конфигурации такие:
LOW 0x7D
High 0xDF
Extended 0xF9
Может подскажете? должно ли работать от кварца с такими фьюзами? Спасибо.

Ну по идее должен работать, кондеры какие от кварца на землю?
Павел_Б
Цитата(OlegPowerC @ Jun 19 2011, 19:06) *
Ну по идее должен работать, кондеры какие от кварца на землю?

Да, действительно всё заработало. Проблемой был плохо вымытый флюс после смены мк.
Промыл ещё раз получше, высушил... и всё запустилось.
Спасибо что откликнулись sm.gif
Вопрос по длителю тактовой частоты CKDIV8.
Написал простейшую программу - мигание светодиода.
Независимо от состояния этого бита частота мигания светодиода одинаковая. Или я не правильно понимаю назначение этого делителя?
Я думал что стоит например каварц на 4 мегагерца, включив делитель системная частота снизится до 4000000/8=500кГц
А она одинаковая что при включенном, что при выключенном бите CKDIV8
Зачем он вообще?
rx3apf
Цитата(Павел_Б @ Jun 19 2011, 20:46) *
Вопрос по длителю тактовой частоты CKDIV8.
Написал простейшую программу - мигание светодиода.
Независимо от состояния этого бита частота мигания светодиода одинаковая.

Такого быть не должно.
Цитата
Или я не правильно понимаю назначение этого делителя?
Я думал что стоит например каварц на 4 мегагерца, включив делитель системная частота снизится до 4000000/8=500кГц
А она одинаковая что при включенном, что при выключенном бите CKDIV8
Зачем он вообще?

Именно для этого, чтобы делить тактовую частоту. Разбирайтесь с программатором и его оболочкой.
V_G
Этот бит (CKDIV8) меняется при программировании или оперативно? Если оперативно (как в xmege), то смена делителя системной частоты - процесс ответственный. В хмеге это реализуется примерно так:
1) выбрать внутренний генератор как источник системной частоты
2) сменить делитель кварцевого генератора
3) дождаться бита готовности кварцевого генератора
4) сменить источник системной частоты на кварцевый генератор
Посмотрите, есть ли особые требования к смене делителя в вашем проце.
Павел_Б
Цитата(V_G @ Jun 20 2011, 01:57) *
Этот бит (CKDIV8) меняется при программировании или оперативно? Если оперативно (как в xmege), то смена делителя системной частоты - процесс ответственный. В хмеге это реализуется примерно так:
1) выбрать внутренний генератор как источник системной частоты
2) сменить делитель кварцевого генератора
3) дождаться бита готовности кварцевого генератора
4) сменить источник системной частоты на кварцевый генератор
Посмотрите, есть ли особые требования к смене делителя в вашем проце.

Контроллер atmega168.
Скриншёт в верхнем посте. Там есть галочка CKDIV8.
Например галочку ставлю, нажимаю Program All.
Смотрю как всё работает.
Затем убираю галочку в CKDIV8.
Опять программирую...
И результат аналогичный.
ae_
Цитата(Павел_Б @ Jun 20 2011, 18:00) *
Затем убираю галочку в CKDIV8. Опять программирую... И результат аналогичный.

Fuse CKDIV8 сам частоту не меняет, он лишь задаёт значение по умолчанию для регистра CLKPR, который и определяет, на сколько делить тактовую частоту.
Делители не только 1/1 и 1/8, а любой из 1/(1,2,4,8,16,32,64,128,256), причём их можно менять "на лету", во время исполнения программы.
Если у Вас скорость исполнения не меняется, возможно, компилятор инициализирует регистр CLKPR перед выполнением программы.
V_G
Кстати, мигание светодиода - не лучшая тестовая программа.
Мигать может и от срабатывания вочдога - абсолютно независимо от тактовой частоты процессора. Если есть разные кварцы, поменяйте: изменится ли частота миганий?
Vlad219i
Цитата(V_G @ Jun 20 2011, 15:53) *
Если есть разные кварцы, поменяйте: изменится ли частота миганий?


Не изменится, собака от встроенного независимого генератора работает. )
Павел_Б
Так-то всё работает, но я не могу выяснить почему при прошивании и при явном указании фьюзов программа работает аналогично хоть с галочкой хоть без. В программе также есть и приём-передача по usart - всё работает...
Скриншёт ещё раз прикрепляю. Ватчдог не использую совсем. На картинке видно что фьюз ватчдога не запрогреммирован. (при чтении его значение равно 1 - не запрограммирован).
Прошиваю мк и считываю с него фьюзы - чтобы уж точно знать какой из них запрограммирован.
На картинке видно что фьюз CKDIV8 принимает значение как 1, так и 0. Но программа работает аналогично. Usart общается на скорости 19200 в обоих случаях. Проблем нет - а вот непонимание - есть sad.gif
ae_
Прочитайте пост #7.
Если Вы сами не трогаете CLKPR, то это не значит, что CodeVision не делает этого за Вас.
Что там в начальной инициализации?
Павел_Б
Цитата(ae_ @ Jun 22 2011, 19:42) *
Прочитайте пост #7.
Если Вы сами не трогаете CLKPR, то это не значит, что CodeVision не делает этого за Вас.
Что там в начальной инициализации?

Наверное начну писать глупость...
Наверное в codevisionavr я не могу посмотреть CLKPR. Если только попробовать "прогнать" через VMLab например...
Но фишка в том, что я компилирую, и вылетает вкладка программировать мк. Я могу запрограммировать мк. А могу скомпилировать, и не программировать мк. Затем нажать CodeVision Chip Programmer и уже там "поиграться" с фьюзами и зашить прошивку уже с вновь выставленными фьюзами. Файл скомпилирован и я переставил фьюзы и так прошиваю МК.
Я что-то не ответил на Ваш вопрос, но как выложить тут начальную инициализацию... вернее где её посмотреть laughing.gif
Вам интересно знать значение CLKPR?
V_G
1. Регистр CLKPR можно прочитать, запустив симулятор, необязательно иметь аппаратуру.
2. Вочдог фьюзом можно только насильно включить. Если галочки там нет, он включается и выключается программно. Тоже легко выяснить на симуляторе
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.