Предохранители ATmega для внешних кварцевых генераторов с частотой более 8 МГц

В настоящее время я пытаюсь выяснить, каковы правильные настройки предохранителей для моего ATmega8, когда я хочу использовать внешний кварцевый генератор с частотой более 8 МГц.

Я нашел следующую таблицу в техническом описании Atmel ATmega8 (стр. 27):

введите описание изображения здесь

CKOPT должен быть запрограммирован (установлен на 0). А как же CKSEL3..1?

Для генератора 16 МГц я бы, вероятно, установил их на 111, потому что это максимально возможное значение (по сравнению с 8 МГц, если CKOPT не запрограммирован (установлен на 1)).

Как бы вы выбрали CKSEL3..1, например, генератор на 10 МГц, 12 МГц или 14 МГц?

Простое сравнение с диапазонами, показанными для CKOPT = 1, кажется странным. (мой расчет: например: (0,4/8*16) МГц = 0,8 МГц и т. д.):

  • CKSEL3..1 = 101 для 0,8–1,8 МГц
  • CKSEL3..1 = 110 для 1,8–6 МГц
  • CKSEL3..1 = 111 для 6–16 МГц

Я всегда выбираю 111? Если да, то в каком случае другие подходили бы больше?

Ответы (2)

На основании таблицы - если CKOPT равен 0, в следующем столбце CKSEL3..1 перечисляет все 3 значения (101, 110 и 111), что предполагает их эквивалентность и используется для частот более 1 МГц (и до 16 МГц, как насколько я вижу, это максимально поддерживается).

Согласно DataSheet для CKSEL = 0 генератор имеет больший выходной размах, поэтому поддерживает более высокую частоту. CKSEL = 1 предлагает меньший диапазон частот, но значительно снижает энергопотребление, и, вероятно, поэтому у вас есть поддержка 0,9-3 МГц, чтобы иметь еще меньшее потребление.

Итак, моя интерпретация этого была бы: CKOPT = 1 и CKSEL3..1 = 111 для частот 3-8 МГц, если вы можете помочь (из-за энергопотребления), и CKOPT = 0 и CKSEL3..1 = 111 для частот 8+. МГц - 16 МГц

Спасибо за ваш ответ. Для проектов, которые я делал в прошлом месяце, я выбрал CKSEL3..1 = 111, и у меня не было проблем ни с одной из частот, которые я пробовал (12 и 16 МГц).

Бит CKOPT включает режим повышенной мощности для усилителя генератора. Я думаю, что это в основном полезно, если вы хотите управлять вторым микроконтроллером с того же кристалла.

Этот старый пост от avrfreaks говорит вам, что доступные диапазоны для> 8 МГц, по-видимому, предназначены только для определения характеристик запуска (время, необходимое AVR для выполнения первой инструкции после включения питания) ... Он также говорит вам, где искать в таблице данных в случай, когда я неправильно истолковываю этот ответ.

Кстати: в зависимости от того, какую среду программирования + программатор вы используете, он может выбрать для вас фьюз-биты, просто выбрав тип кристалла, который вы используете. Вы должны изучить это, потому что это намного упрощает работу =)

Время запуска выбирается фьюзами CKSEL0 и SUT1..0 (Таблица 5), так что это не поможет. Сообщение, на которое вы ссылаетесь, гласит: «CKSEL3: 1 может принимать любое из трех эквивалентных значений, а именно« 101 »,« 110 »или« 111 »». Они действительно эквивалентны? В даташите об этом не сказано, поэтому я не уверен.
Я использую AVR Studio 5 с AVRISP mk II. Здесь я должен вручную выбрать предохранитель CKOPT, а CKSEL3..1 CKSEL0 и SUT1..0 — это раскрывающийся список. Здесь говорится о низкой, средней и высокой частоте генератора. Как я писал в своем вопросе, я бы, вероятно, выбрал высокочастотный генератор (CKSEL3: 1 = 111), но я не уверен на 100%.
@PetPaulsen Я бы сказал, что 111 кажется правильным тогда