реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос по фьюзам
Павел_Б
сообщение Jun 19 2011, 07:51
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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
Может подскажете? должно ли работать от кварца с такими фьюзами? Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
OlegPowerC
сообщение Jun 19 2011, 16:06
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 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
Может подскажете? должно ли работать от кварца с такими фьюзами? Спасибо.

Ну по идее должен работать, кондеры какие от кварца на землю?
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Jun 19 2011, 16:46
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



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

Да, действительно всё заработало. Проблемой был плохо вымытый флюс после смены мк.
Промыл ещё раз получше, высушил... и всё запустилось.
Спасибо что откликнулись sm.gif
Вопрос по длителю тактовой частоты CKDIV8.
Написал простейшую программу - мигание светодиода.
Независимо от состояния этого бита частота мигания светодиода одинаковая. Или я не правильно понимаю назначение этого делителя?
Я думал что стоит например каварц на 4 мегагерца, включив делитель системная частота снизится до 4000000/8=500кГц
А она одинаковая что при включенном, что при выключенном бите CKDIV8
Зачем он вообще?

Сообщение отредактировал Павел_Б - Jun 19 2011, 16:54
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 19 2011, 17:31
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Павел_Б @ Jun 19 2011, 20:46) *
Вопрос по длителю тактовой частоты CKDIV8.
Написал простейшую программу - мигание светодиода.
Независимо от состояния этого бита частота мигания светодиода одинаковая.

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

Именно для этого, чтобы делить тактовую частоту. Разбирайтесь с программатором и его оболочкой.
Go to the top of the page
 
+Quote Post
V_G
сообщение Jun 19 2011, 22:57
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Этот бит (CKDIV8) меняется при программировании или оперативно? Если оперативно (как в xmege), то смена делителя системной частоты - процесс ответственный. В хмеге это реализуется примерно так:
1) выбрать внутренний генератор как источник системной частоты
2) сменить делитель кварцевого генератора
3) дождаться бита готовности кварцевого генератора
4) сменить источник системной частоты на кварцевый генератор
Посмотрите, есть ли особые требования к смене делителя в вашем проце.

Сообщение отредактировал V_G - Jun 19 2011, 22:59
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Jun 20 2011, 09:00
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



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

Контроллер atmega168.
Скриншёт в верхнем посте. Там есть галочка CKDIV8.
Например галочку ставлю, нажимаю Program All.
Смотрю как всё работает.
Затем убираю галочку в CKDIV8.
Опять программирую...
И результат аналогичный.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jun 20 2011, 10:41
Сообщение #7


Участник
***

Группа: Свой
Сообщений: 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 перед выполнением программы.
Go to the top of the page
 
+Quote Post
V_G
сообщение Jun 20 2011, 12:53
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Кстати, мигание светодиода - не лучшая тестовая программа.
Мигать может и от срабатывания вочдога - абсолютно независимо от тактовой частоты процессора. Если есть разные кварцы, поменяйте: изменится ли частота миганий?
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 20 2011, 17:35
Сообщение #9


Участник
*

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



Цитата(V_G @ Jun 20 2011, 15:53) *
Если есть разные кварцы, поменяйте: изменится ли частота миганий?


Не изменится, собака от встроенного независимого генератора работает. )
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Jun 22 2011, 16:23
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



Так-то всё работает, но я не могу выяснить почему при прошивании и при явном указании фьюзов программа работает аналогично хоть с галочкой хоть без. В программе также есть и приём-передача по usart - всё работает...
Скриншёт ещё раз прикрепляю. Ватчдог не использую совсем. На картинке видно что фьюз ватчдога не запрогреммирован. (при чтении его значение равно 1 - не запрограммирован).
Прошиваю мк и считываю с него фьюзы - чтобы уж точно знать какой из них запрограммирован.
На картинке видно что фьюз CKDIV8 принимает значение как 1, так и 0. Но программа работает аналогично. Usart общается на скорости 19200 в обоих случаях. Проблем нет - а вот непонимание - есть sad.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ae_
сообщение Jun 22 2011, 16:42
Сообщение #11


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Прочитайте пост #7.
Если Вы сами не трогаете CLKPR, то это не значит, что CodeVision не делает этого за Вас.
Что там в начальной инициализации?
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Jun 22 2011, 17:16
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



Цитата(ae_ @ Jun 22 2011, 19:42) *
Прочитайте пост #7.
Если Вы сами не трогаете CLKPR, то это не значит, что CodeVision не делает этого за Вас.
Что там в начальной инициализации?

Наверное начну писать глупость...
Наверное в codevisionavr я не могу посмотреть CLKPR. Если только попробовать "прогнать" через VMLab например...
Но фишка в том, что я компилирую, и вылетает вкладка программировать мк. Я могу запрограммировать мк. А могу скомпилировать, и не программировать мк. Затем нажать CodeVision Chip Programmer и уже там "поиграться" с фьюзами и зашить прошивку уже с вновь выставленными фьюзами. Файл скомпилирован и я переставил фьюзы и так прошиваю МК.
Я что-то не ответил на Ваш вопрос, но как выложить тут начальную инициализацию... вернее где её посмотреть laughing.gif
Вам интересно знать значение CLKPR?
Go to the top of the page
 
+Quote Post
V_G
сообщение Jun 22 2011, 22:36
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



1. Регистр CLKPR можно прочитать, запустив симулятор, необязательно иметь аппаратуру.
2. Вочдог фьюзом можно только насильно включить. Если галочки там нет, он включается и выключается программно. Тоже легко выяснить на симуляторе

Сообщение отредактировал V_G - Jun 22 2011, 22:37
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 08:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016