|
|
  |
Вопрос по фьюзам |
|
|
|
Jun 19 2011, 07:51
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Здравствуйте всем. На плате стояла атмега8, посадил атмега168 корпуса у обеих TQFP 32 фюзы у атмега 16 стояли для работы от встроенного RC генератора, но у меня-то на плате кварц на 4 мегагерца. Решил прошить через CodeVisionAVR. Короче запрограммировал я фьюзы как на картинке, и у меня сейчас вообще полный ноль, программатор в режим программирования не входит, ничего не работает. На одном выводе кварцевого резонатора почти всё напряжение питания показывает, а на другом 0 вольт. Вот теперь сижу в догадках то ли фьюзы не так выставил, то ли ещё что... У меня в общем получилось что CKSEL=1101 SUT=11 Байты конфигурации такие: LOW 0x7D High 0xDF Extended 0xF9 Может подскажете? должно ли работать от кварца с такими фьюзами? Спасибо.
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 19 2011, 16:06
|
Частый гость
 
Группа: Участник
Сообщений: 96
Регистрация: 22-04-05
Пользователь №: 4 394

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

|
Цитата(OlegPowerC @ Jun 19 2011, 19:06)  Ну по идее должен работать, кондеры какие от кварца на землю? Да, действительно всё заработало. Проблемой был плохо вымытый флюс после смены мк. Промыл ещё раз получше, высушил... и всё запустилось. Спасибо что откликнулись  Вопрос по длителю тактовой частоты CKDIV8. Написал простейшую программу - мигание светодиода. Независимо от состояния этого бита частота мигания светодиода одинаковая. Или я не правильно понимаю назначение этого делителя? Я думал что стоит например каварц на 4 мегагерца, включив делитель системная частота снизится до 4000000/8=500кГц А она одинаковая что при включенном, что при выключенном бите CKDIV8 Зачем он вообще?
Сообщение отредактировал Павел_Б - Jun 19 2011, 16:54
|
|
|
|
|
Jun 19 2011, 17:31
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Павел_Б @ Jun 19 2011, 20:46)  Вопрос по длителю тактовой частоты CKDIV8. Написал простейшую программу - мигание светодиода. Независимо от состояния этого бита частота мигания светодиода одинаковая. Такого быть не должно. Цитата Или я не правильно понимаю назначение этого делителя? Я думал что стоит например каварц на 4 мегагерца, включив делитель системная частота снизится до 4000000/8=500кГц А она одинаковая что при включенном, что при выключенном бите CKDIV8 Зачем он вообще? Именно для этого, чтобы делить тактовую частоту. Разбирайтесь с программатором и его оболочкой.
|
|
|
|
|
Jun 20 2011, 09:00
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Цитата(V_G @ Jun 20 2011, 01:57)  Этот бит (CKDIV8) меняется при программировании или оперативно? Если оперативно (как в xmege), то смена делителя системной частоты - процесс ответственный. В хмеге это реализуется примерно так: 1) выбрать внутренний генератор как источник системной частоты 2) сменить делитель кварцевого генератора 3) дождаться бита готовности кварцевого генератора 4) сменить источник системной частоты на кварцевый генератор Посмотрите, есть ли особые требования к смене делителя в вашем проце. Контроллер atmega168. Скриншёт в верхнем посте. Там есть галочка CKDIV8. Например галочку ставлю, нажимаю Program All. Смотрю как всё работает. Затем убираю галочку в CKDIV8. Опять программирую... И результат аналогичный.
|
|
|
|
|
Jun 20 2011, 10:41
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(Павел_Б @ Jun 20 2011, 18:00)  Затем убираю галочку в CKDIV8. Опять программирую... И результат аналогичный. Fuse CKDIV8 сам частоту не меняет, он лишь задаёт значение по умолчанию для регистра CLKPR, который и определяет, на сколько делить тактовую частоту. Делители не только 1/1 и 1/8, а любой из 1/(1,2,4,8,16,32,64,128,256), причём их можно менять "на лету", во время исполнения программы. Если у Вас скорость исполнения не меняется, возможно, компилятор инициализирует регистр CLKPR перед выполнением программы.
|
|
|
|
|
Jun 20 2011, 17:35
|

Участник

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204

|
Цитата(V_G @ Jun 20 2011, 15:53)  Если есть разные кварцы, поменяйте: изменится ли частота миганий? Не изменится, собака от встроенного независимого генератора работает. )
|
|
|
|
|
Jun 22 2011, 16:23
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Так-то всё работает, но я не могу выяснить почему при прошивании и при явном указании фьюзов программа работает аналогично хоть с галочкой хоть без. В программе также есть и приём-передача по usart - всё работает... Скриншёт ещё раз прикрепляю. Ватчдог не использую совсем. На картинке видно что фьюз ватчдога не запрогреммирован. (при чтении его значение равно 1 - не запрограммирован). Прошиваю мк и считываю с него фьюзы - чтобы уж точно знать какой из них запрограммирован. На картинке видно что фьюз CKDIV8 принимает значение как 1, так и 0. Но программа работает аналогично. Usart общается на скорости 19200 в обоих случаях. Проблем нет - а вот непонимание - есть
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 22 2011, 17:16
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Цитата(ae_ @ Jun 22 2011, 19:42)  Прочитайте пост #7. Если Вы сами не трогаете CLKPR, то это не значит, что CodeVision не делает этого за Вас. Что там в начальной инициализации? Наверное начну писать глупость... Наверное в codevisionavr я не могу посмотреть CLKPR. Если только попробовать "прогнать" через VMLab например... Но фишка в том, что я компилирую, и вылетает вкладка программировать мк. Я могу запрограммировать мк. А могу скомпилировать, и не программировать мк. Затем нажать CodeVision Chip Programmer и уже там "поиграться" с фьюзами и зашить прошивку уже с вновь выставленными фьюзами. Файл скомпилирован и я переставил фьюзы и так прошиваю МК. Я что-то не ответил на Ваш вопрос, но как выложить тут начальную инициализацию... вернее где её посмотреть Вам интересно знать значение CLKPR?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|