Atmega 328p при 3,3В : Внутренний и внешний генератор

В настоящее время я работаю над печатной платой, которая использует smd atmega 328p (au). Я буду питать его через липо-батарею и регулятор ldo для входа 3,3 В. Я использую код контроллера полета multiwii. Я знаю, что atmega работает на частоте 8 МГц при 3,3 В и 16 МГц при 5 В без разгона чипа. Вопрос в том, должен ли я использовать внутренний генератор 8 МГц или внешний 8 МГц? Я определенно сделаю чип более точным, как указано на некоторых форумах, но все же влияет ли это на что-нибудь или нет?

, 👍0

Обсуждение

Какая точность вам нужна для вашего проекта и достаточно ли точен внутренний генератор для этой цели?, @StarCat

Я предполагаю, что у вас есть неявная озабоченность. Я сомневаюсь, что это связано с энергопотреблением, так как вы говорите о контроллере полета. Если вы скажете, в чем дело, вы, вероятно, получите более полезные ответы., @timemage


1 ответ


Лучший ответ:

0

Если генератор 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