Atmega 328p при 3,3В : Внутренний и внешний генератор
В настоящее время я работаю над печатной платой, которая использует smd atmega 328p (au). Я буду питать его через липо-батарею и регулятор ldo для входа 3,3 В. Я использую код контроллера полета multiwii. Я знаю, что atmega работает на частоте 8 МГц при 3,3 В и 16 МГц при 5 В без разгона чипа. Вопрос в том, должен ли я использовать внутренний генератор 8 МГц или внешний 8 МГц? Я определенно сделаю чип более точным, как указано на некоторых форумах, но все же влияет ли это на что-нибудь или нет?
@Anmol Kumar, 👍0
Обсуждение1 ответ
Лучший ответ:
Если генератор 8 МГц выключен на несколько процентных пунктов, это повлияет на временные измерения, которые вы делаете с помощью millis() и micros(). Это может повлиять на скорость передачи последовательного или программного кода. Если это не имеет никакого значения, единственное оставшееся различие будет заключаться в том, как быстро ваш код может быть выполнен. Маловероятно, что код толкает чип работает так близко к своей максимальной мощности, что это имело бы значение, даже при ~8 МГц.
Обновление:
... Я просто хочу знать, влияет ли тактовая частота на код и нужно ли мне немного изменить код, как, например, blink sketch работает с разными временными интервалами на 8 МГц и 16 МГц(я тестировал его).
Если вы больше ничего не делаете, то да, millis() будет работать на половине скорости. Вам нужно добавить определение платы в IDE для Arduino Uno, работающего на частоте 8 МГц. Затем millis() и micros будут настроены на более медленные тактовые частоты процессора. Как вы это делаете, зависит от того, выбираете ли вы внутренний и менее точный генератор 8 МГц или внешний кристалл 16 МГц.
Что касается внутреннего генератора, то на Github есть определение платы с инструкциями по его загрузке в вашу IDE.
Для внешнего генератора эта статья описывает, как выбрать тип платы как "Arduino Pro или Pro Mini", а затем иметь возможность дважды выбрать частоту платы, используя меню Инструментов.
Я не знаю, какая точность мне нужна для этой цели, но я знаю, что в проекте будет использоваться протокол i2c для акселерометра mpu6050 и связи через nrf24l01 . Я не очень разбираюсь в кодировании, но я просто хочу знать, влияет ли тактовая частота на код, и если мне нужно немного изменить код, например, скетч мигания выполняется в разные интервалы времени на 8 МГц и 16 МГц(я протестировал его)., @Anmol Kumar
Спасибо Роберту за ответ . Я буду с нетерпением ждать как внутреннего, так и внешнего генератора , @Anmol Kumar
- Arduino 16 МГц только с 3,3 В?
- Путаница с ATmega328P и 3,3 В/8 МГц
- Заменить предохранители Arduino Uno (может ли Arduino Uno заменить свои собственные предохранители?)
- Atmega328p — переход на низкое энергопотребление 1,8 В с использованием генератора 4 МГц — прошивка загрузчика
- Arduino Uno считывние предохранителей
- Как записать загрузчик/программу ATMega 328P с внешним кварцевым генератором 8 МГц?
- Программирование низкобайтового предохранителя для atmega328 в Arduino Uno
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Какая точность вам нужна для вашего проекта и достаточно ли точен внутренний генератор для этой цели?, @StarCat
Я предполагаю, что у вас есть неявная озабоченность. Я сомневаюсь, что это связано с энергопотреблением, так как вы говорите о контроллере полета. Если вы скажете, в чем дело, вы, вероятно, получите более полезные ответы., @timemage