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

 
 
 
Reply to this topicStart new topic
> 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
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
acorn
сообщение Feb 12 2007, 13:20
Сообщение #5


Участник
*

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



Цитата(rx3apf @ Feb 11 2007, 20:37) *
Но для уверенности я ставлю 111.

smile.gif Спасибо за информацию. Оставлю 111.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2007, 15:31
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 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
rx3apf
сообщение Feb 12 2007, 16:02
Сообщение #7


Гуру
******

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



Цитата(defunct @ Feb 12 2007, 15:31) *
Цитата(rx3apf @ Feb 11 2007, 20:37) *

Увы, документация от Atmel далека от совершенства микрочиповской,

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

А может, "каша" не в документации, а где-то еще ? wink.gif Во всяком случае, в каждом даташите вся периферия описана исчерпывающим образом, плюс к тому есть сборное описание всей начинки во всех вариантах. Впрочем, последние годы у меня и к атмеловской документации особых претензий нет. А вот лет пять-семь назад информативность оставляла желать лучшего...

Цитата(defunct @ Feb 12 2007, 15:31) *
Цитата
Впрочем, возможно, что включение CKOPT автоматически переводит осциллятор в режим максимальной частоты.

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

Читаем даташит внимательно: "When CKOPT is programmed, the Oscillator output
will oscillate a full rail-to-rail swing on the output. This mode is suitable when operating
in a very noisy environment or when the output from XTAL2 drives a second clock
buffer. This mode has a wide frequency range". О чем гласит последняя фраза ?
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2007, 20:58
Сообщение #8


кекс
******

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



Цитата(rx3apf @ Feb 12 2007, 15:02) *
А может, "каша" не в документации, а где-то еще ? wink.gif

Да я же и сказал, у мелкочипа каша и в чипе и в документации.
Попробуйте там найти хотя бы как запустить UART на 115200 с ошибкой 0%.

Цитата
Читаем даташит внимательно: .... "When CKOPT is programmed, the Oscillator output
will oscillate a full rail-to-rail swing on the output. This mode is suitable when operating
in a very noisy environment or when the output from XTAL2 drives a second clock
buffer. This mode has a wide frequency range". О чем гласит последняя фраза ?

о характеристиках усилителя вестимо.

Кусок контекста не вырезайте и все будет всем понятно:

The CKOPT fuse selects between two different Oscillator Amplifier modes. When CKOPT is programmed, the Oscillator output will oscillate will a full rail-to-rail swing on the output. This mode is suitable when operating
in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range. When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it can not be used to drive other clock buffers.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 12 2007, 21:26
Сообщение #9


Гуру
******

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



Цитата(defunct @ Feb 12 2007, 20:58) *
Цитата(rx3apf @ Feb 12 2007, 15:02) *

А может, "каша" не в документации, а где-то еще ? wink.gif

Да я же и сказал, у мелкочипа каша и в чипе и в документации.
Попробуйте там найти хотя бы как запустить UART на 115200 с ошибкой 0%.


Для какого-то конкретного камня или как ? Дана формула для вычисления делителя, и для вычисления ошибки. То, что конкретного номинала нет в таблице примеров - вообще не показатель, тем более что "волшебные цифры" опорников с нулевой ошибкой для стандартного ряда частот UART большинство все ж знают. Ну, если кто не умеет даже на калькуляторе посчитать - тут "каша" точно не в чипе и не документации...

Цитата(defunct @ Feb 12 2007, 20:58) *
о характеристиках усилителя вестимо.

Кусок контекста не вырезайте и все будет всем понятно:

The CKOPT fuse selects between two different Oscillator Amplifier modes. When CKOPT is programmed, the Oscillator output will oscillate will a full rail-to-rail swing on the output. This mode is suitable when operating
in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range. When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it can not be used to drive other clock buffers.

Может быть, тогда не затруднит прочитать и последующий абзац :

"For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and
16 MHz with CKOPT programmed".
И заодно сопоставить его с последней строчкой таблицы 4 ? А потом, если не затруднит, найти цитату из моего поста, противоречащуюю этим двум выдержкам из даташита ?
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2007, 23:57
Сообщение #10


кекс
******

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



Цитата(rx3apf @ Feb 12 2007, 20:26) *
Ну, если кто не умеет даже на калькуляторе посчитать - тут "каша" точно не в чипе и не документации...

Я бы возможно и мог с вами согласиться, если бы парой постов выше вы не упомянули о каком-то совершенстве, которого там нет впомине.

Цитата
Может быть, тогда не затруднит прочитать и последующий абзац :

"For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and
16 MHz with CKOPT programmed".
И заодно сопоставить его с последней строчкой таблицы 4 ? А потом, если не затруднит, найти цитату из моего поста, противоречащуюю этим двум выдержкам из даташита ?

Допустим не затруднит? Но я там в упор не вижу информации, из которой можно было бы построить такой дикий вывод:

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


Если на запорожец поставить колеса от мерса, которые способны выдержать скорость 300 km/h, то это ни в коей мере не означает, что с ними запор будет ганять как мерс. А вот если наоборот, то 50 на 50 что колеса отвалятся.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 13 2007, 00:28
Сообщение #11


Гуру
******

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



Цитата(defunct @ Feb 12 2007, 23:57) *
Допустим не затруднит? Но я там в упор не вижу информации, из которой можно было бы построить такой дикий вывод:

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

Я сам себя поправлю - не "возможно", а "судя по всему". Хотя _однозначный_ ответ из даташита не следует.
Цитата(defunct @ Feb 12 2007, 23:57) *
Если на запорожец поставить колеса от мерса, которые способны выдержать скорость 300 km/h, то это ни в коей мере не означает, что с ними запор будет ганять как мерс. А вот если наоборот, то 50 на 50 что колеса отвалятся.

Вот это и есть - "каша". Только не в даташитах и кристаллах. Ну, может быть, формулировка "максимальной частоты" не вполне удачная. Но если _читать_, а не просматривать по диагонали через абзац (что даташит, что письма оппонента) в попытках "докопаться", то вполне очевидно, что речь шла о установке режима работы осциллятора (более того, я это расшифровывал подробно в самом начале, до вопрошавшего). И фьюз CKOPT вовсе не "только определяет мощность выходного сигнала" (к слову, термин "мощность" тут вообще неприменим, речь идет о _размахе_, а это вовсе не одно и то же), но, что гораздо важнее, определяет рабочий диапазон частот осциллятора. И его _необходимо_ устанавливать (для обсуждаемых кристаллов) при использовании резонаторов выше 8 MHz (иначе "отвалятся колеса"). Не, ну если надо докопаться до собеседника - ну тогда конечно. Однако кому надо (кто задавал вопрос) - тот понял. На этом я дискуссию сворачиваю за полнейшей бесплодностью.
Go to the top of the page
 
+Quote Post
acorn
сообщение Feb 13 2007, 15:42
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 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 Текстовая версия Сейчас: 18th July 2025 - 11:03
Рейтинг@Mail.ru


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