Какие микроконтроллеры имеют встроенные часы реального времени. Как работают внутренние генераторы в микроконтроллерах. Преимущества и недостатки использования встроенных и внешних часов в микроконтроллерных системах.
Типы микроконтроллеров со встроенными часами реального времени
Многие современные микроконтроллеры имеют встроенные часы реального времени (RTC) и не требуют подключения внешнего генератора тактовых сигналов. Это позволяет уменьшить количество внешних компонентов и упростить разработку устройств. Рассмотрим наиболее популярные семейства микроконтроллеров со встроенными RTC:
- AVR от Microchip (ранее Atmel) — большинство моделей имеют внутренний RC-генератор
- PIC от Microchip — многие 8-битные и 16-битные модели оснащены встроенными часами
- STM32 от STMicroelectronics — практически все модели имеют RTC
- MSP430 от Texas Instruments — низкопотребляющие микроконтроллеры со встроенными часами
Как работают внутренние генераторы в микроконтроллерах?
Внутренние генераторы в микроконтроллерах обычно построены на основе RC-цепочки (резистор-конденсатор). Принцип их работы следующий:

- При включении питания внутренний конденсатор начинает заряжаться через резистор
- Когда напряжение на конденсаторе достигает определенного уровня, срабатывает компаратор
- Конденсатор разряжается, и цикл повторяется
- Частота этих циклов зарядки-разрядки и является тактовой частотой микроконтроллера
Преимущества использования встроенных часов в микроконтроллерах
Использование встроенных часов реального времени в микроконтроллерах имеет ряд преимуществ:
- Уменьшение количества внешних компонентов и упрощение схемы устройства
- Снижение энергопотребления по сравнению с внешними кварцевыми генераторами
- Экономия места на печатной плате
- Снижение стоимости устройства
- Повышение надежности за счет уменьшения количества паяных соединений
Недостатки внутренних генераторов микроконтроллеров
Однако у встроенных RC-генераторов есть и недостатки по сравнению с внешними кварцевыми генераторами:
- Меньшая точность — погрешность может достигать 1-2%
- Зависимость частоты от температуры и напряжения питания
- Ограниченный диапазон частот
- Недостаточная стабильность для некоторых задач (например, точного отсчета времени)
Когда стоит использовать внешний кварцевый генератор?
Несмотря на удобство встроенных генераторов, в некоторых случаях все же рекомендуется использовать внешний кварцевый генератор:

- Для точного отсчета времени (часы, таймеры)
- При работе с высокоскоростными интерфейсами (USB, Ethernet)
- Для стабильной работы радиочастотных модулей
- При необходимости синхронизации нескольких устройств
- Для достижения максимальной производительности микроконтроллера
Как выбрать оптимальный источник тактирования для микроконтроллера?
- Требуемая точность и стабильность частоты
- Допустимое энергопотребление устройства
- Стоимость и сложность разработки
- Условия эксплуатации (температура, вибрации)
- Требования к электромагнитной совместимости
Популярные микросхемы часов реального времени для микроконтроллеров
Если встроенный генератор микроконтроллера не подходит для решения задачи, можно использовать внешние микросхемы часов реального времени. Наиболее популярные модели:
- DS1307 — недорогой RTC с интерфейсом I2C
- DS3231 — высокоточный RTC с термокомпенсацией
- PCF8563 — низкопотребляющий RTC для портативных устройств
- RV-3028-C7 — сверхминиатюрный RTC с низким током потребления
Программирование микроконтроллеров с внутренними часами
Для программирования микроконтроллеров с внутренними часами обычно используются следующие методы:

- Настройка битов конфигурации (фьюзов) при прошивке микроконтроллера
- Инициализация регистров управления тактированием в начале программы
- Использование специальных функций библиотек для работы с RTC
- Калибровка внутреннего генератора для повышения точности
Заключение
Встроенные часы реального времени в микроконтроллерах значительно упрощают разработку многих устройств. Однако при выборе между внутренним и внешним источником тактирования необходимо тщательно проанализировать требования проекта. В некоторых случаях оптимальным решением может быть комбинация встроенного генератора для основной работы и внешней микросхемы RTC для точного отсчета времени.
Маломощные ЖК-часы на микроконтроллере AVR128DA48. Схема и описание
Главная » Микроконтроллеры » Маломощные ЖК-часы на микроконтроллере AVR128DA48. Схема и описание
Это достаточно маломощные ЖК-часы построены на микроконтроллере AVR128DA48. Часы способные работать более трех лет от элемента CR2032 или «вечно» от солнечного элемента.
Также эти часы каждую минуту кратко отображают температуру, используя встроенный датчик температуры в AVR128DA48, а так же напряжение батареи, используя АЦП для считывания собственного напряжения питания. В схеме есть и шина I2C, поэтому вы можете добавить внешний датчик, например, датчик влажности.
Вступление
Хотя жидкокристаллические дисплеи (ЖК-дисплеи) являются относительно старой технологией, они по-прежнему обладают рядом преимуществ по сравнению с более новыми типами дисплеев, включая низкое энергопотребление, низкую стоимость и четкость отображения информации.
Недавно я приобрел несколько ЖК-дисплеев Densitron на eBay за несколько долларов. Цель — попробовать построить на них часы с низким энергопотреблением, чтобы посмотреть, насколько будет низким энергопотребление.
Дисплеи стандартного типа, доступны с совместимыми выводами от нескольких производителей. Такие дисплеи называются статическими (в отличие от мультиплексированных), что означает, что каждый сегмент имеет свой контакт. Поэтому для четырехразрядного дисплея получается 28 выводов плюс три десятичных знака, двоеточие и общий контакт, что в сумме дает 33 контакта.
Дисплеи, которые я нашел, имеют два общих контакта, а также обычно имеют дополнительные специальные сегменты, такие как знак минус, в 40-контактном корпусе.
Параметры ЖК-дисплея
Большинство 40-контактных ЖК-дисплеев с интервалом между рядами 33 мм должны быть совместимы с этой платой. Вот некоторые, которые я нашел. Все они имеют 4 разряда и 3 десятичные точки на контактах с 5 по 27, с 29 по 32 и с 34 по 37. Общий вывод на 1 и 40 контакте, а также несколько дополнительных символов:
- Densitron DG-201208-RP: Двоеточие (28), Треугольник (38)
- Varitronix VI-402-DP-RC-S: Двоеточие (28)
- RS PRO 7-Segment LCD: Двоеточие (28)
- Lumex LCD-S401C52TR: Двоеточие (28)
- EDC190: Двоеточие (28)
- EDS805: LB (2), Минус (3)
Ниже приведена принципиальная схема маломощных ЖК-часов
Печатная плата
Схема не так сложна, как кажется. Каждый сегмент дисплея просто подключается к одной линии ввода-вывода процессора. Все сегменты одной цифры подключены одному порту, причем десятичная точка на 7 бите, сегмент A на 6 бите, а сегмент G на 0 бите (с несколькими исключениями, описанными ниже).
Из-за большого количества соединений мне не хотелось создавать прототип этого проекта вручную, я сразу же приступил к разработке печатной платы в Eagle.
Я постарался сделать печатную плату максимально универсальной. Плата подойдет под любой из дисплеев в приведенном выше списке. Чтобы отобразить какой-либо из дополнительных символов, достаточно установить на плату резистор 0 Ом, который будет выступать в качестве связующего звена.
Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…
Подробнее
Дисплей
Дисплей представляет собой четырехзначный семисегментный статический ЖК-дисплей с 40 контактами и расстоянием между рядами 33 мм (см. выше список подходящих альтернатив). ЖК-дисплей установлен на передней панели платы, а компоненты — на задней.
Кварц, который я использовал, представляет собой SMD-кварц с частотой 32,768 кГц (3,2 мм x 1,5 мм) с точностью 20 ppm и емкостью нагрузки 6 пФ.
Для расчета емкости конденсатора я использовал формулу C = 2 (CL — CS ), где CL — емкость нагрузки 6 пФ, а CS — паразитная емкость, которая обычно оценивается как 2,5 пФ на печатной плате. Это дает C = 7 пФ. Я использовал ближайшее доступное значение в 6 пФ.
Микроконтроллер
Это микроконтроллер AVR128DA48 в корпусе TQFP-48, но печатная плата подойдет и с рядом других 48-контактных микроконтроллеров. Подойдет AVR128DB48, так и версии с меньшей памятью этих двух устройств, вплоть до AVR32DA48 и AVR32DB48. Однако вы сэкономите всего несколько центов, выбрав версии с меньшим объемом памяти, поэтому я не вижу в этом смысла.
ATmega4809 и его младшие братья и сестры, вплоть до ATmega809, совместимы по выводам с микросхемами DA и DB в одних и тех же корпусах, и поэтому могут также использоваться на этой плате. Единственное ограничение — контакты, которые я использовал для I2C, PF2 и PF3, поддерживают только ведомый I2C на ATmega4809.
Источник питания
Есть место для 20-миллиметрового держателя, подходящего для батарейки CR2032 или аналогичной ей. Обратите внимание, что у некоторых подобных батареек отрицательная клемма вогнута и не имеет хорошего контакта с контактной площадкой на печатной плате. В этом случае небольшое количество припоя на контакте печатной платы должно обеспечить дополнительную толщину.
В качестве альтернативы, если вы хотите запитать часы от солнечного элемента 3 В, есть отверстия, чтобы вы могли установить суперконденсатор вместо плоского элемента. Я использовал PowerStor 0.47Ф 5В.
На краю платы имеются клеммы для подключения диода Шоттки, последовательно соединенным с солнечным элементом, чтобы предотвратить разряд суперконденсатора, когда нет солнца. Я использовал солнечную батарею 3В 60x48mm от Pimoroni.
I2C интерфейс
На печатной плате также имеется 4-контактный разъем JST PH, обеспечивающий интерфейс I2C, совместимый с системой Adafruit STEMMA или системой Grove. Интерфейс I2C подключен к PF2 (SDA1) и PF3 (SCL1).
Потребляемая мощность
Я приложил немного усилий, чтобы снизить энергопотребление.Процессор проводит большую часть времени в спящем режиме с отключением питания для экономии энергии и пробуждается прерыванием 64 Гц от периферийного устройства часов реального времени. Я измерил среднее энергопотребление при 3,3 В для четырех разных тактовых частот:
Обычно можно ожидать увеличения энергопотребления с увеличением тактовой частоты процессора, поэтому на первый взгляд эти цифры озадачивают. Это объясняется тем, что при более высоких тактовых частотах время, необходимое для выполнения процедуры обслуживания прерывания короче, что позволяет процессору проводить большую часть времени в режиме сна.
Внешний кварцевый генератор 32,768 кГц (ABS07-120-32.768KHZ-T) имеет режим пониженного энергопотребления, и его выбор снизил среднее энергопотребление с тактовой частотой 24 МГц с 9,5 мкА до 7,3 мкА.
Типичная емкость батарейки CR2032 составляет 225 мАч, поэтому при потреблении 7,3 мкА ожидаемое время автономной работы часов составляет 225/ 0,0073/24/365 или около 3,5 лет.
С суперконденсатором 0,47Ф вы можете рассчитывать на ток 0,47А в течение 1 секунды. Это дает ожидаемый срок 0,47/7.3×10-6/60/60 или около 18 часов, что подтверждено тестированием. Этого должно быть достаточно, чтобы часы продолжали работать в течение ночи с подходящим солнечным элементом, обеспечивающим питание в дневное время.
Установка времени
Кнопки MINS и HRS позволяют установить часы и минуты. Удерживая кнопку нажатой, вы переключаете минуты или часы. Кроме того нажатие на кнопку MINS сбрасывает секунды на ноль, это сделано для того, чтобы вы могли установить часы с точностью до секунды.
Компиляция и загрузка программы с помощью Arduino IDE
Скомпилируйте код с помощью Dx Core Spence Konde’s на GitHub. Выберите опцию AVR DA-series (без загрузчика) под заголовком DxCore в меню Плата. Убедитесь, что параметры установлены следующим образом (игнорируйте любые другие параметры):
- Чип: AVR128DA48
- Тактовая частота : 24 MHz internal
- Программатор: jtag2updi (megaTinyCore)
Затем загрузите программу в AVR128DA48 с помощью UPDI программатора. DxCore теперь поддерживает следующие два варианта:
- Создайте программатор UPDI из Arduino Uno или другой платы на базе ATmega328P, как описано в разделе «Создание программатора UPDI» (https://github.com/SpenceKonde/AVR-Guidance/blob/master/UPDI/jtag2updi.md) , и установите для параметра Программатор: jtag2updi.
- Используйте плату USB для последовательного порта. Подключите TX к контакту UPDI через резистор 4,7 кОм, подключите RX напрямую к контакту UPDI и установите для параметра Программатор: Serial port and 4.7k (pyupdi style)
Скачать файлы проекта (18,5 KiB, скачано: 244)
Блок питания 0…30В/3A
Набор для сборки регулируемого блока питания…
Подробнее
Часы с микроконтроллером STC15W404AS и микросхемой реального времени DS1302
Этот обзор для начинающих радиолюбителей (любителей паять), для тех, кому интересен сам процесс. Деталей минимум. Можете оценить своё умение.
Пробежимся по-быстрому, в каком виде всё пришло.
Стандартный пакет с замком, в нём ещё несколько пакетов.
В комплекте были:
— Фигурновырезанные детали для сборки оргстеклянного корпуса.
Детали покрыты бумагой для защиты от царапин.
— Плата.
Изготовлена на высоком уровне. Все отверстия металлизированы.
— Питающий USB кабель.
— Инструкция. Ксерокопия в плохом качестве.
Если кому нужно, можете глянуть скан.
Индикатор четыре в одном.
— Индикатор был с защитной плёнкой.
Самое важное — это микроконтроллер STC15W404AS и микросхема часов реального времени DS1302.
— Мелочёвка россыпью:
бокс для резервной запитки, пищалка, резисторы, конденсаторы, две кнопки, кварц, разъём питания, четыре винта с гайками, термо- и фоторезистор.
Все детали на плате не только подписаны, но и (условно) нарисованы.

Добавил панельки и кварц.
В дело пошли более громоздкие детали.
Впаял бокс под резервное питание. Надо было это сделать чуть раньше. Паять было неудобно.
Вставил микросхемы в панельки.
Впаял терморезистор и фоторезистор.
Протёр плату, проверил пайку, откусил всё сильно выступающее. Откусывать необходимо под самое не хочу. Иначе будут проблемы со сборкой в корпус.
Впаял индикаторы. Как паять, всё обозначено на печатке. Сложно перепутать.
Подключил.
Они работают!
Ошкурил оргстекляшки и собрал всё в корпус.
А вот и размеры 62*35мм.
Размер цифр 10*20мм.
Пора изучать их возможности.
Время корректировал по интернету.
Первым делом необходимо произвести сброс всех настроек. Иначе, их не заставить работать адекватно. Без этой операции мои часы не настраивались.

Нажимаем одновременно обе кнопки и удерживаем. Через 5 секунд часы покажут 11:59, затем (ещё через 5 секунд) 12:00 и запищат будильником. Теперь можно настраивать.
Настройку можно разделить на две условные группы. Все манипуляции начинаем с режима индикации времени, то есть, когда часы показывают время.
Первая группа настроек:
1. Первые два нажатия на верхнюю кнопку активируют настройку часов. Первое нажатие – настройка часов, второе нажатие — настройка минут. Нижней кнопкой выставляем нужное значение.
Небольшое дополнение. При настройке времени мнимые секунды (мы их не видим) обнуляются каждый раз при введении новых параметров времени.
2. Следующие два нажатия (третье и четвёртое) на верхнюю кнопку активируют настройку будильника. Третье нажатие – настройка часов, четвёртое нажатие — настройка минут. Нижней кнопкой выставляем нужное значение.

3. Следующее нажатие на верхнюю кнопку (пятое) активирует сам будильник. Светящаяся точка в правом нижнем углу говорит от том, что будильник включен (включается/отключается нижней кнопкой).
4. Шестое и седьмое нажатие настраивает почасовой сигнал. Шестое нажатие настраивает время (часы), с которого начинается. Седьмое настраивает время (часы), на котором заканчивается. Нижней кнопкой выставляем нужное значение.
Т.е. Если набито значение 8:20, это значит, что почасовой сигнал будет звучать с 8-00 по 20-00.
Вторая группа настроек:
1. Нажимаем на нижнюю кнопку. Часы переходят в режим отображения температуры. Здесь можно откалибровать (скорректировать) температуру по образцовому термометру.
Верхней кнопкой подгоняем под нужное значение.

2. Второе нажатие на нижнюю кнопку переводит в настройку месяца и даты. Верхней кнопкой активируем изменение месяца. Нижней кнопкой выставляем нужное значение.
Следующее нажатие на верхнюю кнопку переводит в настройку даты. Нижней кнопкой выставляем нужное значение.
3. Следующее нажатие на нижнюю кнопку переводит в настройку дня недели.
Немного сложновато. Поэтому, чтобы не проводить подобнее манипуляции каждый раз после отключения света, лучше купить и поставить сразу резервный источник питания (CR1220).
Несколько слов по поводу датчика освещённости. Всего два режима: дневной и ночной.
Контроллер управляет режимом яркости в зависимости от напряжения на 9 ноге. Переключение происходит при напряжении около 4,3V-4,6V с небольшим гистерезисом. При напряжении свыше 4,6В включается экономная подсветка, при снижении за 4,3В включается на всю яркость. Гистерезис необходим, чтобы яркость не переключалась хаотично на границе освещённости при сумеречном освещении.

Измерил ток потребления в различных режимах. Думаю, эта информация будет многим интересна.
В обычном режиме потребляет 26-33мА. Зависит от количества задействованных сегментов индикатора (грубо говоря, 2мА на сегмент). В ночном режиме ток потребления падает до 10-11мА.
По поводу режима индикации.
В обычном режиме (заводские установки) часы показывают 45 секунд время, 5 секунд температуру, 5 секунд месяц/число, 5 секунд день недели.
Его можно поменять, соединяя выводы 6 и 7 микроконтроллера с землей (GND).
Если соединить 6 ногу и GND, часы будут показывать 50 секунд время, 5 секунд месяц/число, 5 секунд день недели. Если соединить 7 ногу и GND, часы будут показывать 55 секунд время и 5 секунд температуру. Если подключить обе ноги (и 6 и 7 ногу) к GND, часы будут показывать только время.
На плате всё предусмотрено. Достаточно повесить «соплю» в нужном месте.

Несколько слов по поводу точности хода. Этот экземпляр за неделю убежал на 6 секунд. Думаю, что неплохо (бывает лучше, бывает хуже). Всё зависит от кварца.
Чтобы повысить контрастность цифр и не было видно пустых сегментов, вставил кусок тонированного пластика.
Вот, в общем-то, и всё.
Пора подводить итоги.
Неплохой DIY комплект для проверки своих навыков начинающим радиолюбителям. Более того, это не просто набор для обучения, но и в итоге получились неплохие часы.
Для правильного вывода того, что написал, должно хватить.
Кому что-то неясно, задавайте вопросы. Надеюсь, хоть кому-то помог.
Удачи!
Товар для написания обзора предоставлен магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
I/SN — микросхема, 8-битный микроконтроллер, часы реального времени/Co
Показать подробностиPIC12F508-I/SN — 8-битный микроконтроллер, часы/счетчик реального времени
Артикул: 100587
8-битный микроконтроллер, часы/счетчик реального времени, 8-контактный SOIC, 512-битная флэш-память, 4 МГц, 2,0 В до 5,5 В,
pack1_ local-shippingСоздано с помощью Sketch.
Доставка по всему миру
обратитесь в нашу дружную службу поддержки
НОВЫЙ! Интеллектуальная система поиска статей.
При вводе искомой серии производителя отображаются альтернативные серии товаров.
Оплата по счету от 75,- EUR стоимость товара
Оплата после получения товара (только для немецких бизнес-клиентов). Требуется активация.
Настройки конфиденциальности данных
Указанные здесь настройки сохраняются в «локальной памяти» вашего устройства. Настройки будут запомнены при следующем посещении нашего интернет-магазина. Вы можете изменить эти настройки в любое время (значок отпечатка пальца в левом нижнем углу).
Для получения дополнительной информации о сроке действия файлов cookie и необходимых основных файлах cookie см. Уведомление о конфиденциальности.
Выбрать/Отменить все
РеКапча
Дополнительная информация Чтобы отправлять формы на этой странице, вам необходимо дать согласие на передачу данных и хранение сторонних файлов cookie компанией Google.
С вашего согласия будет встроена reCAPTCHA, служба Google, позволяющая избежать спам-сообщений через контактные формы.
Эта услуга позволяет нам предоставить нашим клиентам безопасный способ связаться с нами через онлайн-формы. В то же время сервис предотвращает компрометацию наших сервисов спам-ботами.
После того, как вы дали свое разрешение, вас могут попросить ответить на запрос безопасности для отправки формы. Если вы не согласны, к сожалению, вы не можете использовать форму. Пожалуйста, свяжитесь с нами другим способом.
Описание:
Остановка спам-ботов
Процессинговая компания:
Google Inc.
Условия эксплуатации: Ссылка
Google Analytics 4
Дополнительная информацияDies ist ein Webanalysedienst.
Дополнительные данные: анонимный IP-адрес, дата и место работы, информация, клики, приложение, информация о браузере, информация о генерировании, поддержка JavaScript, информация о сайтах, URL-адрес реферера, стандартная информация, информация, взаимодействие с виджетами
Описание:
Анализ
Процессинговая компания:
Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, IE
Условия эксплуатации: Ссылка
Google Analytics (Universal Analytics)
Дополнительная информация Dies ist ein Webanalysedienst.
Добавление Дата: анонимный IP-адрес, данные по учетным записям, информация, клики, приложение, актуальная информация, информация о браузере, генерируемая информация, поддержка JavaScript, дополнительная информация, URL-адрес реферера, стандартная информация, информация, виджет-взаимодействие
Описание:
Анализ
Процессинговая компания:
Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, IE
Условия эксплуатации: Ссылка
Отслеживание конверсий Google Ads
Дополнительная информация Mit dem Google Ads Conversion Tracking können wir unseren Werbeerfolg im Google Werbenetzwerk messen. Wir schalten Werbung im Google Werbenetzwerk, damit unsere Angebote besser gefunden werden. Wir versuchen dabei Werbung so оптимальный wie möglich zu gestalten. Auch um Werbekosten so gering wie möglich zu halten. Dies spiegelt sich in unseren Preisen wieder 😉
Erhobene Daten: zufallsgenerierte USER-ID
Описание:
Маркетинг
Процессинговая компания:
Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, IE
Условия эксплуатации: Ссылка
Выбрать/Отменить все
Настройки конфиденциальности данных
Хотите увидеть это содержимое? Активируйте желаемое содержимое только для одного сеанса или разрешите веб-сайту запомнить эти настройки. После того, как вы дали свое согласие, сторонние данные могут быть загружены. Для этого на вашем устройстве могут храниться сторонние файлы cookie. Вы можете изменить эти настройки в любое время (значок отпечатка пальца в левом нижнем углу). Дополнительные сведения см. в Уведомлении о конфиденциальности.
Voltage — Существуют ли микроконтроллеры, которым не требуется внешний источник тактового сигнала?
\$\начало группы\$
Я видел микроконтроллер (сейчас не помню точный номер детали), у которого нет контактов XTAL.
Это был 8-контактный микроконтроллер — на устройстве не было контактов ввода тактовых импульсов.
Как эти устройства работают без часов и только с питанием. Как устройство начинает работать?
Я понимаю, что есть внутренние генераторы, которые помогли бы, но просто не в состоянии понять, как устройство запустится. Например, как это будет с программированием и другими вещами?
- микроконтроллер
- напряжение
- генератор
- часы
- синхронизация
\$\конечная группа\$
3
\$\начало группы\$
Многие (большинство?) микроконтроллеров имеют внутренний генератор, который можно использовать в качестве часов.
Обычно конфигурация хранится в энергонезависимой памяти для установки режима синхронизации. Фактический метод будет зависеть от конкретного микроконтроллера.
Недостатком использования внутренних часов является то, что они не очень точны, может быть +/- 1-2%, поэтому их нельзя использовать для приложений, требующих высокой точности, таких как время суток. Он может быть даже недостаточно точным для надежного использования в качестве часов для асинхронной связи (обычно называемой RS232).
Линейка микроконтроллеров AVR имеет встроенные часы. Во многих версиях AVR частота внутренних часов выбирается из нескольких вариантов для оптимизации энергопотребления.
\$\конечная группа\$
11
\$\начало группы\$
Линейка микросхем Microchip PIC (или, по крайней мере, некоторые из них) могут использовать собственный внутренний генератор вместо внешнего тактового генератора.
\$\конечная группа\$
5
\$\начало группы\$
Просто найдите внутренний генератор в документации или характеристиках микроконтроллера. Использование внутреннего генератора имеет свои недостатки и преимущества
Скорее всего, ваш любимый MCU имеет внутренний RC-генератор. Там многочисленные семейства микроконтроллеров от всех основных производителей которые включают этот модуль, в том числе от Texas Instruments, STMicroelectronics и Microchip. Есть и сопутствующие заметки по применению онлайн практически от всех производителей о том, как откалибровать внутренний генератор своих микроконтроллеров. https://www.allaboutcircuits.com/technical-articles/the-good-and-the-bad-of-mcu-internal-oscillators/
Я понимаю, что есть внутренние генераторы, которые помогли бы, но просто не в состоянии понять, как устройство будет запускаться. Например как это будет для программирования и других вещей?
Устройство работает так же, источник тактирования берется из внутреннего источника тактирования. Процессор не будет работать без часов. Для выбора часов обычно используется JTAG для программирования MCU и указания ему использовать внутренний или внешний источник. При запуске MCU считывает конфигурацию из ПЗУ и сообщает, какие часы использовать. Иногда используются внутренние часы, а затем они переключаются на внешние часы. Разница в том, что внешние часы могут быть более точными, поэтому, если вам нужна более точная синхронизация, чем
\$\конечная группа\$
2
\$\начало группы\$
Обычно устройство программирования может предоставлять часы, необходимые для настройки источника часов, если часы отсутствуют. Однако это не всегда так.
Многие микроконтроллеры имеют внутренний генератор, технические характеристики которого поясняются в техническом описании. Если требуется большая точность (и часто более высокая тактовая частота), вы должны использовать внешний источник тактовой частоты.
Микроконтроллеры Atmega, такие как Microchip Atmega328p, используемые в Arduino, могут использовать свой внутренний генератор. В случае Atmega328 источник тактового сигнала устанавливается в битах «фьюза» во время программирования с помощью программатора AVR ISP.
\$\конечная группа\$
5
\$\начало группы\$
Большинство микроконтроллеров имеют внутренние часы. Внутренние часы обычно основаны на резисторном конденсаторе (RC-генератор), который не очень точен (всего от 1% до 2%). Внешний генератор основан на кристалле и очень точен. Микроконтроллеры PIC и многие AVR имеют внутренние часы. Вы можете проверить техническое описание MCU для деталей осциллятора.
\$\конечная группа\$
\$\начало группы\$
Да, есть много микроконтроллеров с внутренними генераторами, которые не требуют внешних источников синхронизации.
Большинство микроконтроллеров имеют несколько источников тактовых импульсов, и источник тактовых импульсов должен быть выбран явно, а не по умолчанию. По умолчанию используется один из внутренних генераторов. На самом деле их может быть больше одного.
В некоторых MCU конфигурация часов является постоянной и исходит из специального «конфигурационного слова», записанного в MCU устройством программирования. Это «конфигурационное слово» известно под многими именами, например. «плавкое слово», и оно может находиться в адресном пространстве кода или вне его.
В других микроконтроллерах конфигурация является энергозависимой и программируется в регистрах управления часами микропрограммой при ее запуске. Загрузчик может изменить конфигурацию часов, а затем, после запуска прошивки, он может внести дополнительные изменения по мере необходимости.
MCU со сложным тактированием имеют «сторожевые схемы тактирования», которые используют внутренний генератор для обнаружения наличия внешнего тактового сигнала. Когда внешние часы выходят из строя по какой-либо причине, MCU может автоматически переключиться на внутренние часы в качестве запасного варианта. Встроенное ПО может реагировать на него в обработчике прерываний и предпринимать необходимые действия по восстановлению/отказоустойчивости.
\$\конечная группа\$
\$\начало группы\$
Почти все микроконтроллеры имеют внутренний источник синхронизации. Некоторые микроконтроллеры имеют возможность использовать внешние часы. Если вас не беспокоит какая-либо ошибка синхронизации часов в наносекундном масштабе, вы можете просто использовать внутренние часы. Почти все операционные системы реального времени используют таймер, основанный на внутренних часах микроконтроллера, для синхронизации, планирования и функциональности задач. Внутренние часы обычно имеют точность в миллисекундах.
Все периферийные устройства нуждаются в источнике синхронизации для работы и генерации сигналов с точными интервалами. АЦП, SPI, PWM, таймер общего назначения и другие используют внутренние часы. Они получают свои часы от основного источника часов микроконтроллера, который обычно записывается как XTAL.