Duino на внутреннем резонаторе


http://www.youtube.com/watch?v=velCp38rqbY

Duino на внутреннем резонаторе
Чем удобна ардуина? Кроме простоты прототипирования основным удобством является язык программировани с кучей библиотек. Но готовить конечное устройство на плате ардуино дорого и не очень удобно. Ради уменьшения цены и размеров можно избавиться от многих деталей, в том числе и от кварцевого резонатора. В конце-концов для работы минимальной обвязкой является сам микроконтроллер и питание. Конечно внутренний резонатор контроллера не особо точен, да и частота всего 8МГц, но для многого хватит и этого.

Первое что понадобится для того чтобы избавитья от кварца – это дописать в ардуино иде файл .\arduino-0022\hardware\arduino\boards.txt
Фьюзы высчирывал вот этим калькулятором: http://www.engbedded.com/fusecalc/
Простым способом, сначала забил в него старые фьюзы контроллера (взять можно из того-же boards.txt), получив набор параметров микроконтроллера просто поменял строку Ext. Crystal Osc. На Int. RC Osc. 8Mhz default value И прочитал там новые фьюзы где вводил старые.
#пример для ATmega168
#Я не стал ничего придумывать, я просто скопировал кусок
#для ардуины про мини, переименовал его и поменял фьюзы.
##############################################################
pro.name=MyName duino int8 MHz ATmega168
pro.upload.protocol=arduino
pro.upload.maximum_size=14336
pro.upload.speed=19200
# Поменял эти 3 строки
pro.bootloader.low_fuses=0xE2
pro.bootloader.high_fuses=0xDD
pro.bootloader.extended_fuses=0xF8
#
pro.bootloader.path=atmega
pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F
pro.build.mcu=atmega168
#И поменял эту строку
pro.build.f_cpu=8000000L
#
pro.build.core=arduino
pro.build.variant=standard

##############################################################

После доработки файла boards.txt, запустил ардуино, выбрал появившуюся в платах MyName duino int8 MHz ATmega168.
Для проверки использовал blink, но стандартный 13 было не интересно, поправил на 0 (это 2й вывод микроконтроллера в пдип корпусе). Скомпилировал с зажатым шифтом чтобы узнать куда ложится хекс файл и прошил вот по этой инструкции: freeduino.ru/arduino/isp.html Но используя новые фьюзы.
Надо учесть что если контроллер уже прошивался раньше, то первую прошивку фьюзов в него надо производить с тем кварцем с которым он раньше был.
Соответствие выводов для разъема ХЗ дуины, микросхемы ft232 и контроллера ATmega168-20PU (ATmega328-20PU)
X3 — ft232 — ATmega168-20PU
1 — CTS(pin11) — MISO (pin18)
2 — DSR(pin9) — SCK (pin19)
3 — DCD(pin10) — MOSI (pin17)
4 — R(pin6) — RESET (pin1)


0 комментариев на «“Duino на внутреннем резонаторе”»

  1. Как я понял для блинка подойдет. Но если приложение требовательно к точности по времени, погрешность получится ±5%. От 8 Мгц это 400КГц. То есть за секунду может (недо/пере)выполнится 400 тыс. тактов. Во временном представлении это ±50 миллисекунд на каждую секунду.

  2. Да, это именно для тех случаев когда от времени мало что зависит, но подойдет не только для блинка, например если ты делаешь часы на внешней микросхеме RTC, к которой устанавливается свой кварц, а атмега всего лишь управляет вводом/выводом, от атмеги точность не требуется. Для реагирования на внешние действия (нажатия кнопок, размыкания/замыкания герконов, изменения на аналоговых входах и т.д.) точность не нужна. Более того, делал я кухонный таймер — за 1ч погрешность примерно 2мин меня устраивает, всетаки это для кухни, за 2минуты еда не сгорит, а у китайских кухонных тайметов +- 5мин.

  3. можно пожертвовать быстродействием в угоду точности, на внутреннем осциляторе при 32КГц погрешности почти нет. Основная необходимость таких подключений — это габариты и энергопотребление, на внутренней RC цепочке атмега не только питается меньшим напряжением, но и ток потребления у нее очень мал.

    • А я думал у них внутренний осциллятор на 1 Мгц?

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение