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

 
 
> atmega16 fuse CKSEL, что означают CKSEL1 и CKSEL2
acorn
сообщение Feb 11 2007, 01:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495



кто-нибудь может объяснить, на что влияют эти фьюзы ATMEGA16:

CKSEL0 - тут я более-менее уверен
CKSEL1 - ?
CKSEL2 - ?
CKSEL3 - тут я более-менее уверен

Пример - запускаю мега16-16 от кварца 16.000, 5V питание, потребление не волнует:

CKSEL=1111
SUT=11
CKOPT=0
(фьюзы по datasheet, 0 = programmed)

Исходя из чего выбирать два средних разряда CKSEL - из datasheet не очевидно?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx3apf
сообщение Feb 11 2007, 02:04
Сообщение #2


Гуру
******

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



Цитата(acorn @ Feb 11 2007, 01:39) *
Исходя из чего выбирать два средних разряда CKSEL - из datasheet не очевидно?

Значит, читал невнимательно. Смотри таблицу 4 - значения этих битов оптимизируют осциллятор под разную частоту кварца. Для 16 MHz CKSEL3..1 надо поставить в 111, и не забыть выставить CKOPT=0. Все там же, в таблице 4 и в абзаце перед ним...
Go to the top of the page
 
+Quote Post
acorn
сообщение Feb 11 2007, 20:54
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495



Цитата(rx3apf @ Feb 11 2007, 01:04) *
Цитата(acorn @ Feb 11 2007, 01:39) *

Исходя из чего выбирать два средних разряда CKSEL - из datasheet не очевидно?

Значит, читал невнимательно. Смотри таблицу 4 - значения этих битов оптимизируют осциллятор под разную частоту кварца. Для 16 MHz CKSEL3..1 надо поставить в 111, и не забыть выставить CKOPT=0. Все там же, в таблице 4 и в абзаце перед ним...

Спасибо за ответ, но вот это место мне и неочевидно. CKOPT=0 я использую сознательно, но в таблице 4, "Crystal Oscillator Operating Modes", для этого случая есть ровно одна строчка, последняя. Содержит она в колонке CKSEL3..1 следующий текст:

101, 110, 111

Мой вопрос прежний - таки какое из трех и почему?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 11 2007, 21:37
Сообщение #4


Гуру
******

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



Цитата(acorn @ Feb 11 2007, 20:54) *
Спасибо за ответ, но вот это место мне и неочевидно. CKOPT=0 я использую сознательно, но в таблице 4, "Crystal Oscillator Operating Modes", для этого случая есть ровно одна строчка, последняя. Содержит она в колонке CKSEL3..1 следующий текст:

101, 110, 111

Мой вопрос прежний - таки какое из трех и почему?

В общем случае, для частоты больше 1 MHz - любое, о чем и говорит колонка "frequncy range". Для именно 16 MHz - 111 (вот тут да, в таблице строчка 111 указана для диапазона до 8 MHz, и для частот выше - не вполне очевидно. Увы, документация от Atmel далека от совершенства микрочиповской, но по сравнению, скажем, с документацией от TI - почти как школьный букварь wink.gif). Суть четвертой строчки в том, что CKOPT _можно_ включать для любой из перечисленных комбинаций, чтобы получить большой размах на выходе генератора (для тактирования какой-либо внешней периферии). Но для частот больше 8 MHz этот фьюз _нужно_ включать, о чем четко сказано в абзаце перед таблицей...

Впрочем, возможно, что включение CKOPT автоматически переводит осциллятор в режим максимальной частоты, и тогда состояние остальных фьюзов (IMHO, определяющих сопротивление резистора ОС осциллятора) уже не имеет значения. Но для уверенности я ставлю 111.

Сообщение отредактировал rx3apf - Feb 11 2007, 21:58
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2007, 15:31
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(rx3apf @ Feb 11 2007, 20:37) *
Увы, документация от Atmel далека от совершенства микрочиповской,

О каком совершенстве речь?
У микрочипа в документации как раз полная каша.
Как в чипе так и в документации.

Цитата
Впрочем, возможно, что включение CKOPT автоматически переводит осциллятор в режим максимальной частоты.

Читайте даташиты внимательней. CKOPT переключает внутренние усилители и как следствие влияет только на мощность сигнала снимаемого с XTAL2.

2 acorn
Приобретите или спаяйте AVRISP.
Вопросы подобные задаваемым в этой ветке отпадут сами-собой, т.к. все комбинации при программировании фузов CKSEL + SUT из AVR-Studio расписаны.
Go to the top of the page
 
+Quote Post
acorn
сообщение Feb 13 2007, 15:42
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495



Цитата(defunct @ Feb 12 2007, 14:31) *
2 acorn
Приобретите или спаяйте AVRISP.
Вопросы подобные задаваемым в этой ветке отпадут сами-собой, т.к. все комбинации при программировании фузов CKSEL + SUT из AVR-Studio расписаны.

Ну, как мы все понимаем, работа фьюзов от программатора и среды не зависит smile.gif
Менять программатор и начинать использовать AVR-Studio вместо привычных инструментов по такому поводу было-бы опрометчиво, полагаю. Нисколько не принижая общего качества документации Atmel замечу, что в данном случае накладочка у них таки-вышла.

Сходу припомнил еще одну - p. 147, "USART Initialization" - написан правильный текст, даже предупреждение есть про бит URSEL при записи в UCSRC. На следующей странице примеры кода для Asm и C. В Asm все верно, в С этот флаг пропущен и код работать не будет.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:30
Рейтинг@Mail.ru


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