Добрый день. Уважаемые Гуру! Возможно ли ардуино переключить на работу от внутреннего генератора? Как это правильно сделать?
А не подскажете, как это делается, что то я не вижу такой опции в программе от Ардуины. Нужно чтоб ничего не торчало, ограничения по размеру, а голая микросхемма входит идеально. Да, нубский вопрос, но вот как то не нашел про это ничего, калькуляторы-програматры, но куда мышкой тыкать ?
Может быть гуру дадут более дельный совет. Эта проблема решается наличием программатора. Подойдет Arduino UNO (а может и другие типы Arduino). По ссылке рассказывается как из Arduino сделать программатор: https://www.arduino.cc/en/Tutorial/ArduinoISP. Куда мышкой тыкать не знаю, но в комплекте с Arduino IDE идет программа avrdude (см. каталог 'hardware/tools/avr/bin'). Команда типа: Код (Bash): avrdude -p mega328p -P usb -c avrisp -U lfuse:w:0xDE:m прошьет младший fuse байтом 0xDE. Обратите внимание -- это пример команды, не надо этот пример бездумно копировать.
Через среду Ардуино фьюзы выставить нельзя. Для этого можно воспользоваться Atmel Studio или более старой AVR Studio. Нужен SPI-программатор, или специальным образом прошитая плата Ардуино скетчем "SPI-программатор". Но учтите, что внутренний генератор работает на 8 МГц, а не на 16 МГц. Вы в дальнейшем не сможете прошивать плату из среды Ардуино из за разности скоростей последовательного порта.
В конфигах плат прописаны, но очень тяжело разобраться какой бит за что отвечает. Есть специальные программы которые позволяют для AVR конфигурить эти фьюзы. Проще через AVR Studio, там все понятно.
Здесь http://tinyurl.com/qccydnz написано как. А здесь как зашить новый бутлоадер http://tinyurl.com/ovjxh9a и заодно какие фьюзы.
Спасибо, вроде как понятней стало. То есть, можно просто вписать нужные фьюзы в файл нстроек IDE и прошить чип на плате UNO. Перепрошивать не планируется, чип ставиться в схему "навсегда". Но вот после снижения частоты с 16 до 8мгц, "внутреннее время" чипа будет реальным или растянется (о идее не должно, но все таки)?
В коде незримо присутствует константа F_CPU, равная тактовой частоте контроллера. Все задержки и прочее считаются на основе нее. Так что если все правильно сделать, то внутреннее время должно пойти правильно.