Справка по изменению источника часов ATMega328 на внешние часы

Я хочу изменить биты предохранителей ATMega328, чтобы они работали с внешними часами (генератором функций/сигналов) вместо кристалла. Тактовая частота составит 8 МГц. Я пытался в течение нескольких месяцев, и все мои попытки потерпели неудачу, поскольку я заблокировал чипы из-за неправильных соединений или непонимания битов.

Я понимаю ту часть, где нам нужно установить CKSEL на 0000 (внешние часы)

Я также понимаю, как мы используем avrdude и подключаем вход часов (генератор функций) к XTAL1

Моя команда будет примерно такой:

avrdude -c avrispmk2 -p atmega328p -P COM6 -U lfuse:w:0xe0:m -U hfuse:w:0xde:m -U efuse:w:0xff:m

Я купил интернет-провайдера avrispmk2 и думаю, что на данный момент у меня есть соответствующие соединения на макетной плате.

У меня такой вопрос, после сжигания предохранителя чипов, какие модификации мне нужно сделать в файле boards.txt?

Нужно ли включать биты предохранителей или что-то еще в boards.txt?

atmega328p.name=Mynewarduino
atmega328p.upload.protocol=avrispmkII
atmega328p.upload.maximum_size=32256
atmega328p.build.mcu= atmega328p
atmega328p.build.f_cpu=8000000L // clock speed is 8mhz now
atmega328p.build.core=arduino
atmega328p.build.variant=standard

Что еще должно быть в кастомном файле boards.txt?

Я пытался в течение нескольких месяцев, и я был бы очень признателен за любой ответ или комментарии. Не могли бы вы объяснить мне шаги, которым я могу следовать, не разрушая еще один чип?

Если я правильно понимаю процедуру, это шаги?

  1. Установите соответствующие соединения с платой ATmega328 и бесчиповой платой Arduino, подключитесь к интернет-провайдеру (mkii)

  2. Сжечь фьюзы с avrdude в соответствии с битами фьюза, пока генератор сигналов подключен к XTAL1 как 8MHz

  3. В boards.txt измените F_CPU на 8000000L (или нужно создать новую запись boards.txt?)

  4. Затем загрузите скетч мигания с помощью Arduino IDE (нужно ли загружать с помощью программатора?)

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

Ответы (1)

Скопируйте существующую запись, изменив используемый префикс; каждая запись должна иметь уникальный идентификатор, и меню показывает различные <identifier>.nameзначения для каждой записи. Измените только те переменные, которые имеют значение для нового чипа, в данном случае значение f_cpu.

Если не используете загрузчик, то измените maximum_sizeпараметр на полный размер флэш-памяти на чипе, т.е. 32768, и не забудьте перепрограммировать фьюз BOOTRST. В противном случае установите значение, соответствующее фьюзам BOOTSZ и размеру скомпилированного загрузчика.

Здравствуйте, Игнасио, извините за плохое понимание, но не могли бы вы уточнить, что «каждая запись должна иметь уникальный идентификатор» и часть «префикс»? Могу ли я после смены фьюз-битов использовать Arduino IDE для загрузки скетчей? (загрузчик)
Если уже существует запись, в которой используется «atmega328p», вам нужно изменить свою запись, чтобы использовать что-то другое.
Извините, Игнасио, как я могу изменить свою запись, чтобы использовать что-то еще в качестве «действительного» префикса? Я думал, что atmega328p - это официальное название части, которое невозможно изменить. Я был бы признателен, если бы вы привели мне пример в этом случае
Идентификатор не имеет ничего общего с частью. Это просто дескриптор для IDE.
Параметры фьюз-бита имеют значение только при записи загрузчика на чип (через провайдера). В противном случае они не имеют никакой пользы или эффекта.