|
|
  |
atmega16 fuse CKSEL, что означают CKSEL1 и CKSEL2 |
|
|
|
Feb 11 2007, 20:54
|

Участник

Группа: Участник
Сообщений: 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 Мой вопрос прежний - таки какое из трех и почему?
|
|
|
|
|
Feb 11 2007, 21:37
|
Гуру
     
Группа: Участник
Сообщений: 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 - почти как школьный букварь  ). Суть четвертой строчки в том, что CKOPT _можно_ включать для любой из перечисленных комбинаций, чтобы получить большой размах на выходе генератора (для тактирования какой-либо внешней периферии). Но для частот больше 8 MHz этот фьюз _нужно_ включать, о чем четко сказано в абзаце перед таблицей... Впрочем, возможно, что включение CKOPT автоматически переводит осциллятор в режим максимальной частоты, и тогда состояние остальных фьюзов (IMHO, определяющих сопротивление резистора ОС осциллятора) уже не имеет значения. Но для уверенности я ставлю 111.
Сообщение отредактировал rx3apf - Feb 11 2007, 21:58
|
|
|
|
|
Feb 12 2007, 13:20
|

Участник

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

|
Цитата(rx3apf @ Feb 11 2007, 20:37)  Но для уверенности я ставлю 111.  Спасибо за информацию. Оставлю 111.
|
|
|
|
|
Feb 12 2007, 15:31
|

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

|
Цитата(rx3apf @ Feb 11 2007, 20:37)  Увы, документация от Atmel далека от совершенства микрочиповской, О каком совершенстве речь? У микрочипа в документации как раз полная каша. Как в чипе так и в документации. Цитата Впрочем, возможно, что включение CKOPT автоматически переводит осциллятор в режим максимальной частоты. Читайте даташиты внимательней. CKOPT переключает внутренние усилители и как следствие влияет только на мощность сигнала снимаемого с XTAL2. 2 acornПриобретите или спаяйте AVRISP. Вопросы подобные задаваемым в этой ветке отпадут сами-собой, т.к. все комбинации при программировании фузов CKSEL + SUT из AVR-Studio расписаны.
|
|
|
|
|
Feb 12 2007, 16:02
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Feb 12 2007, 15:31)  Цитата(rx3apf @ Feb 11 2007, 20:37)  Увы, документация от Atmel далека от совершенства микрочиповской,
О каком совершенстве речь? У микрочипа в документации как раз полная каша. Как в чипе так и в документации. А может, "каша" не в документации, а где-то еще ?  Во всяком случае, в каждом даташите вся периферия описана исчерпывающим образом, плюс к тому есть сборное описание всей начинки во всех вариантах. Впрочем, последние годы у меня и к атмеловской документации особых претензий нет. А вот лет пять-семь назад информативность оставляла желать лучшего... Цитата(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". О чем гласит последняя фраза ?
|
|
|
|
|
Feb 12 2007, 20:58
|

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

|
Цитата(rx3apf @ Feb 12 2007, 15:02)  А может, "каша" не в документации, а где-то еще ?  Да я же и сказал, у мелкочипа каша и в чипе и в документации. Попробуйте там найти хотя бы как запустить 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.
|
|
|
|
|
Feb 12 2007, 21:26
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Feb 12 2007, 20:58)  Цитата(rx3apf @ Feb 12 2007, 15:02)  А может, "каша" не в документации, а где-то еще ?  Да я же и сказал, у мелкочипа каша и в чипе и в документации. Попробуйте там найти хотя бы как запустить 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 ? А потом, если не затруднит, найти цитату из моего поста, противоречащуюю этим двум выдержкам из даташита ?
|
|
|
|
|
Feb 12 2007, 23:57
|

кекс
     
Группа: Свой
Сообщений: 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 что колеса отвалятся.
|
|
|
|
|
Feb 13 2007, 00:28
|
Гуру
     
Группа: Участник
Сообщений: 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 (иначе "отвалятся колеса"). Не, ну если надо докопаться до собеседника - ну тогда конечно. Однако кому надо (кто задавал вопрос) - тот понял. На этом я дискуссию сворачиваю за полнейшей бесплодностью.
|
|
|
|
|
Feb 13 2007, 15:42
|

Участник

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

|
Цитата(defunct @ Feb 12 2007, 14:31)  2 acorn Приобретите или спаяйте AVRISP. Вопросы подобные задаваемым в этой ветке отпадут сами-собой, т.к. все комбинации при программировании фузов CKSEL + SUT из AVR-Studio расписаны. Ну, как мы все понимаем, работа фьюзов от программатора и среды не зависит Менять программатор и начинать использовать AVR-Studio вместо привычных инструментов по такому поводу было-бы опрометчиво, полагаю. Нисколько не принижая общего качества документации Atmel замечу, что в данном случае накладочка у них таки-вышла. Сходу припомнил еще одну - p. 147, "USART Initialization" - написан правильный текст, даже предупреждение есть про бит URSEL при записи в UCSRC. На следующей странице примеры кода для Asm и C. В Asm все верно, в С этот флаг пропущен и код работать не будет.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|