Изменить тактовую частоту Digispark, работать при низком напряжении
У меня низковольтное (3,2 В) приложение. Я надеялся использовать Digispark. У меня есть решение с использованием отдельного Tiny85, но я хочу использовать программирование Digispark USB.
Для работы на более низком напряжении, я думаю, нужна более низкая тактовая частота. Я сделал это с помощью отдельного Tiny85. Я мог бы подключить Digispark напрямую к программатору и изменить предохранители частоты, однако...
Я предполагаю, что снижение тактовой частоты путем программирования предохранителей сломает загрузчик Digispark, поскольку он будет иметь неправильную синхронизацию. Верно?
Могу ли я динамически переключать тактовую частоту в своем коде после загрузчика или это управляется только предохранителем?
Доступен ли загрузчик и могу ли я изменить его на более низкую частоту? Много ли работы потребуется, чтобы изменить код на другую частоту? Будет ли он достаточно мощным, чтобы запустить загрузчик USB?
@BillyBag2, 👍2
3 ответа
Лучший ответ:
Вы можете установить предделитель часов во время выполнения. Например:
#include <avr/power.h>
void setup()
{
clock_prescale_set(clock_div_8);
// etc...
}
Более подробную информацию можно найти в документации от avr-libc.
Обратите внимание, что при использовании этого метода ваш Digispark все равно будет разогнан, когда загрузка, так что это может быть не 100% надежно. Но он будет разогнан только на очень короткое время.
Digispark использует загрузчик micronucleus.
Вы можете прошить его напрямую на Tiny85 без необходимости в модуле digispark. Таким образом, ваше существующее решение Tiny85 может получить загрузчик USB, если вы можете выделить 2k места для программы для загрузчика.
Я понимаю, что это не прямой ответ на ваш вопрос, но вы отметили, что у вас есть решение Tiny85, и вы хотели бы поддержку загрузчика USB на нем.
Максимальная безопасная частота при 3,2 В составляет около 12,7 МГц. См. рисунок 20-2 в datasheet.
Это действительно ниже 16 МГц, на которых работает digispark.
- Постоянный выход тактовой частоты Arduino
- Можно ли подключить экран SD-карты к плате Digispark ATtiny85?
- Digispark ATtiny 85 - не распознается как HID устройство
- Заменить предохранители Arduino Uno (может ли Arduino Uno заменить свои собственные предохранители?)
- Клавиатура Digispark ATtiny85
- ATtiny85 (Digispark) с радиочастотным передатчиком 433 МГц не работает
- Digispark Micro (ATTINY85) не работает на Macbook Pro 2016 г.
- Можно ли записать загрузчик на ATTiny85 с USB TTL и avrdude?
Я надеялся, что он сможет пройти загрузчик в разогнанном состоянии, так как мне не нужно подключаться к USB при низком напряжении., @BillyBag2
@BillyBag2: Я думаю, что это сработает. См. ответы на этот вопрос: Arduino 16 МГц с напряжением всего 3,3 В?., @Edgar Bonet
Спасибо, Эдгар. Это было полезно для Digispark ATTiny85 (китайский клон), который общается по I2C с ESP8266 NodseMCU v3 Lolin. Я делил на 4, и всё ещё работает. Потребляемый ток ATTiny снизился с 11,2 мА на частоте 16 МГц до 5,6 мА. ATTiny питается напряжением 3,3 В от выхода 3,3 В стабилизатора NodeMCU, который поступает на его 78L05 (выход). Я отключил оба светодиода, сделав на печатной плате два почти незаметных небольших надреза, которые при необходимости можно было перепаять. Я использую библиотеку TiniwireS от Rambo для I2C. Ещё раз спасибо., @Alvaro Piffaretti