Try   HackMD

13. Архитектура системного генератора тактовых частот

Глава в даташите System Clock and Clock Options

Обнова за 2 часа до экзамена

Clock Distribution показывает как идет распределение частоты
Внизу источники частоты, вверху потребители. AVR Clock control unit берет потребляемую чатоту и дополнительно делит её на количество, необходимое для каждого потребителя. С помощью clock multiplexor выбирается источник.

AVR Clock Control Unit - модуль управления тактовыми сигналами (часами).
ADC - аналого-цифровой преобразователь.
General I/O Modules - общие модули ввода-вывода.
CPU Core - ядро процессора.
RAM - оперативная память.
Flash and EEPROM - Flash-память и память данных.
Reset Logic - логика управления сбросом.
Watchdog Timer - “сторожевой” таймер.
Clock Multiplexer - мультиплескор тактовых сигналов.
Watchdog Oscillator - генератор “сторожевого” таймера.
External Clock - внешний тактовый сигнал.
Calibrated RC Oscillator - генератор калибровки цепи сброса

Потребители
CPU Clock – The CPU clock is routed to parts of the system concerned with operation of the AVR core. Examples of such modules are the General Purpose Register File, the Status Register and the data memory holding the Stack Pointer. Halting the CPU clock inhibits the core from performing general operations and calculations. (Остановка тактовой частоты процессора запрещает ядру выполнять общие операции и вычисления.)
I/O Clock – The I/O clock is used by the majority of the I/O modules, like Timer/Counters, SPI, and USART. - The I/O clock is also used by the External Interrupt module, but note that some external interrupts are detected by asynchronous logic, allowing such interrupts to be detected even if the I/O clock is halted. Also note that address recognition in the TWI module is carried out asynchronously when clkI/O is halted, enabling TWI address reception in all sleep modes.
Flash Clock – The Flash clock controls operation of the Flash interface. The Flash clock is usually active simultaneously with the CPU clock.
ADC Clock – The ADC is provided with a dedicated clock domain. This allows halting the CPU and I/O clocks in order to reduce noise generated by digital circuitry. This gives more accurate ADC conversion
results.

Генераторы:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Старые записи

Тактовый генератор вырабатывает синхронизирующие импульсы для
всех устройств микроконтроллера. Каждый отдельный периферийный блок
(АЦП, таймер, шины передачи и т. д.) работает на своей частоте, но кратной
основной частоте ядра в четное число раз (2, 4, 8…). Имеется встроенный тактовый генератор, часто используемый, если от микроконтроллера не требуется
высокого быстродействия.
Внутренний тактовый генератор AVR может запускаться от нескольких
источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Минимальная допустимая частота
ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках у нас 1 мГц.
Имеются два внешних вывода (XTAL на главной схеме), отвечающих за подключение внешнего генератора. Они могут не использоваться, если микроконтроллер работает от внутреннего генератора.

Схема выбора источника опорной частоты:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Выжимка из датшита по этой схеме:

  • для снижения энергопотребления неиспользуемые осцилляторы можно отправиль в спящий режим
  • каждое устройство работает на своей частоте, про них ничего конкретного не сказано
  • есть асинхронная частота, которая работает независимо от того, работает ли микроконтроллер, что позволяет сделать часы реального времени
  • когда процессор просыпается после отключения питания или энергосбережения или сброса, возникает задержка перед выполнением команд, которая требуется для начала стабильной работы. Величина задержки зависит от выбранного устройства.
  • по умолчанию используется RC-генератор с цастотой 1 мГц с самым длительным временем запуска.
  • можно подключить кварцевый генератор (8 или 16 мГц):
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • или RC-генератор (максимум 12 мГц)
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • или еще какой-нибудь генератор
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Cхема, которая была тут изначально

Это схема преобразования тактовой частоты для обмена данных через USART.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Не думаю, что она особо нужна, но пояснения на вский случай:
Что есть на схеме:

  • UCPOL бит, отвечающий за полярность тактового сигнала. Значение этого разряда определяет момент выдачи и считывания данных на выводах модуля. Используется только в синхронном режиме. В асинхронном режиме разряд сброшен в 0
  • UBRR регистр, отвечающий за скорость передачи данных
  • DDR_XCL бит направления пина порта C, к которому подключен внешний генератор тактовой частоты.
    Как это работает:
    в зависимости от режима master/slave мы выбираем, на какой частоте передавать данные: на внутренней или на внешней. Этот режим определяет бит DDR_XCL.
    Если мы master и сами выбираем частоту, то мы можем также выбрать, на что её делить, если нужно.