|
|||||||
| Уголок радиолюбителя Форумы любителей электроники. См. также Железнодорожная связь, Электронная аппаратура ЖАТ |
|
|
#1 (ссылка) |
|
V.I.P.
Регистрация: 14.05.2015
Сообщений: 255
Поблагодарил: 0 раз(а)
Поблагодарили 8 раз(а)
Фотоальбомы:
не добавлял
Репутация: 0
|
Тема: [07-2015] Система синхронизации микроконтроллера ATxmega и её настройка средствами BASCOM AVRСистема синхронизации микроконтроллера ATxmega и её настройка средствами BASCOM AVR А. САВЧЕНКО, пос. Зеленоградский Московской обл. Продолжаем знакомить читателей с основными элементами архитектуры микроконтроллеров семейства ATxmega. Система синхронизации микроконтроллеров этого семейства имеет ряд существенных отличий от аналогичной системы восьмиразрядных микроконтроллеров AVR предыдущих поколений. Основные из них — большое число разновидностей синхрогенераторов, возможность умножения частоты сигналов этих генераторов, встроенный контроль наличия синхросигналов и автозамена неисправного генератора другим, возможность управления системой синхронизации из программы пользователя. Имеются четыре не требующих никаких внешних элементов внутренних RC-генератора на частоты 2 МГц, 32 МГц, 32768 Гц (высокоточный) и 32 кГц (сверхмаломощный). Первые три генератора откалиброваны в процессе производства с точностью ±1 %(при напряжении питания 3 В и температуре окружающей среды +25 °С). Точность установки частоты последнего генератора — +30 %. ![]() Ещё два генератора требуют для своей работы подключения внешних кварцевых или керамических резонаторов, задающих и стабилизирующих частоту. Один из них может работать с резонаторами частотой от 0,4 до 16 МГц, второй — с "часовым" кварцевым резонатором частотой 32768 Гц. Схемы подключения резонаторов показаны на рис. 1 ,а и рис. 1 ,б. Кроме того, микроконтроллер может синхронизироваться от внешнего генератора, сигнал которого подают на вывод XTAL1, как показано на рис. 1,в. В этом случае вывод XTAL2 можно использовать как линию порта ввода—вывода общего назначения. Стабильность и точность установки частоты у RC-генераторов на 2 и 32 МГц невелики, поэтому предусмотрена их цифровая АПЧ (DFLL— Digital Frequency Locked Loop) для стабилизации частоты. Образцовым для DFLL может служить сигнал частотой 32768 Гц либо от внутреннего RC-генератора, либо от генератора, стабилизированного кварцем на эту частоту. Принципиально новый узел системы синхронизации семейства микроконтроллеров ATxmega — блок умножения частоты с ФАПЧ (PLL — Phase Locked Loop), предназначенный для получения частоты системной синхронизации, превышающей частоту используемого генератора (рис. 2). Коэффициент умножения частоты может находиться в пределах 2—31. Однако частота сигнала на выходе блока PLL не может быть менее 10 и более 200 МГц. Управляют работой блока PLL путём записи информации об используемом источнике сигнала и требуемом коэффициенте умножения частоты в регистр PLLCTRL. После того как петля ФАПЧ войдёт в режим захвата, в четвёртый разряд регистра STATUS будет занесён признак готовности блока PLL. С этого момента выходной сигнал блока может использоваться системой синхронизации микроконтроллера. Блок-схема формирования сигналов системной синхронизации показана на рис. 3. С помощью мультиплексора выбирают источник сигнала системной синхронизации CLKSYs- Три предварительных делителя частоты (А, В. С) формируют четыре синхропоследовательности: — , обеспечивающая синхронизацию работы процессора микроконтроллера и энергонезависимой памяти (EEPROM);— , обеспечивающая синхронизацию работы ОЗУ и большинства периферийных устройств. Сигнал CLKPER синхронен с сигналом CLKCPU, однако может оставаться активным при отключении последнего;— — синхропоследовательности с частотой следования импульсов соответственно в два и четыре раза выше, чем в последовательности CLKrer, используемые для синхронизации некоторых узлов микроконтроллера, требующих такой частоты синхронизации (к ним относится, например, блок улучшения разрешающей способности).Управление работой всех узлов блока синхронизации производится программно путём записи кодов в соответствующие регистры. Сигналы двух генераторов (кварцевый частотой 32,768 кГц и RC-генератор на 32 кГц) для формирования сигналов системной синхронизации не используются. Они образуют так называемый асинхронный домен синхронизации, формирующий синхросигналы для узлов микроконтроллера, работа которых не требует привязки к частоте и фазе сигналов системной синхронизации микроконтроллера. Это сторожевой таймер, супервизор питания, счётчик реального времени (RTC — Real Time Counter). Несмотря на наличие нескольких генераторов, сигналы которых могут использоваться для системной синхронизации микроконтроллера, основным всё же следует считать кварцевый генератор частотой 0,4...16 МГц, точность установки которой и её стабильность наиболее полно удовлетворяют требованиям большинства применений микроконтроллера. Однако этот генератор наименее надёжен, так как для его работы необходимы внешние по отношению к микроконтроллеру элементы — резонатор, конденсаторы, печатные проводники платы и паяные соединения. С учётом этого в микроконтроллере предусмотрен узел обнаружения отказа этого генератора. Узел постоянно контролирует наличие импульсов на выходе генератора и при их исчезновении формирует сигнал неисправности. Этот же узел позволяет следить за синхроимпульсами и от внешнего источника сигнала синхронизации. В случае обнаружения отказа генератора микроконтроллер выполняет следующее: — переключает систему синхронизации на работу от RC-генератора частотой 2 МГц независимо от заданных в программе режимов; — запрещает работу всех остальных источников системной синхронизации, занося соответствующий код в регистр управления генераторами; — устанавливает флаг запроса прерывания по обнаружению отказа источника синхронизации; — генерирует немаскируемое прерывание. Дальнейшие действия по восстановлению требуемой частоты системной синхронизации должны выполняться подпрограммой обслуживания этого прерывания, разработанной пользователем. Организация защиты системы синхронизации от несанкционированного вмешательства Как уже отмечалось, одна из особенностей микроконтроллеров семейства ATxmega — настройка системы синхронизации программой пользователя, а не путём программирования разрядов конфигурации. Это обеспечивает большую гибкость использования микроконтроллера, предоставляя возможность смены частоты и источников системной синхронизации "на лету". Однако программный доступ к системе синхронизации порождает опасность несанкционированного вмешательства в её работу, например, при искажениях программного кода в результате сбоев. Это может привести к нарушению функционирования микроконтроллера. Для минимизации вероятности таких нарушений применяется специальная процедура записи информации в регистры системы синхронизации, содержимое которых может радикально влиять на её работу (так называемые защищённые регистры). Суть этой процедуры состоит в том, что перед записью в защищённый регистр следует выполнить запись в соответствующий разряд специального регистра защиты от изменения конфигурации. После этого на короткое время (четыре командных цикла) требуемый защищённый регистр становится доступным центральному процессору для записи. Попытки записи по каналам ПДП игнорируются. После выполнения записи или по истечении четырёх командных циклов возможность записи блокируется. Примеры настройки системы синхронизации в программе пользователя (BASCOM AVR) Прежде чем рассматривать конкретные примеры, сделаем два замечания: 1. Следует иметь в виду, что при включении или перезапуске микроконтроллера принудительно включается RC-генератор частотой 2 МГц, а работа остальных генераторов, блоков DFLL, PLL, узла обнаружения отказа кварцевого генератора запрещается. Поэтому старт микроконтроллера в любом случае происходит при частоте системной синхронизации 2 МГц, после чего программа пользователя должна выбрать нужные ей источник (генератор) и частоту системной синхронизации,а при необходимости разрешить работу блока DFLL и узла обнаружения отказа кварцевого генератора. 2. Известно, что в BASCOM AVR настройку узлов микроконтроллера можно выполнять как с помощью специальных директив конфигурирования, так и путём непосредственной записи требуемых кодов в регистры нужного узла. При этом второй путь считается более целесообразным для частичной перенастройки узла. Однако при настройке системы синхронизации второй путь приемлем далеко не всегда. Дело в том, что основные регистры этой системы относятся к категории защищённых. Для выполнения записи в них требуется соблюдать специальный протокол, описанный выше. С учётом его строгих временных ограничений гарантированное выполнение прямой записи в защищённые регистры средствами BASCOM AVR не представляется возможным. Поэтому при настройке системы синхронизации настоятельно рекомендуется использовать директивы конфигурации. Ниже приведена структура только нескольких регистров системы синхронизации — регистра статуса генераторов, чтение содержимого которого может быть использовано в программе для оценки их состояния, и регистров управления блоками DFLL и PLL, запись информации в которые на уровне директив не предусмотрена. OSC_STATUS -регистр статуса генераторов Разряды 5—7 этого регистра не используются. В разрядах 0—4 находятся флаги готовности генераторов к работе в качестве источников системной синхронизации. Установленный флаг означает, что колебания генератора установились (для блока PLL — произошёл захват частоты системой ФАПЧ). PLLRDY (разряд 4) — готовность блока PLL. XOSCRDY (разряд 3) — готовность внешнего источника сигнала синхронизации. RC32KRDY (разряд 2) — готовность внутреннего генератора частотой 32768 Гц. RC32MRDY (разряд 1) — готовность внутреннего генератора частотой 32 МГц. RC2M (разряд 0) — готовность внутреннего генератора частотой 2 МГц. OSC_PLLCTRL - регистр управления блоком PLL PLLSRC[1:0] (разряды 7, 6) — код в этом поле задаёт источник входного сигнала для блока PLL: 00 — RC-генератор частотой 2 МГц; 01 — резерв; 10 — RC-генератор частотой 32 МГц; 11 — кварцевый генератор частотой 0,4...16 МГц или внешний сигнал синхронизации. Разряд 5 регистра не используется. PLLFAC[4:0] (разряды 4—0) — коэффициент умножения частоты блоком PLL (допустимые значения 1—31). OSC_DFLLCTRL - регистр выбора образцового сигнала для блока цифровой АПЧ Разряды 7—2 не используются, их значения читаются как нулевые. TOSC RC2M (разряд 1) — нулевое значение этого разряда означает, что образцовым сигналом для системы ЦАПЧ RC-генератора 2 МГц будет сигнал прецизионного RC-генератора частотой 32,768 кГц, в противном случае — сигнал кварцевого ("часового") генератора той же частоты. TOSC RC32M (разряд 0) — аналогично предыдущему, но для генератора частотой 32 МГц. По умолчанию в этих разрядах записаны нули. DFLLRC32M_CTRL, DFLLRC2M CTRL -регистры управления работой ЦАПЧ Разряды 7—1 этих регистров не используются. ENABLE (разряд 0) — запись единицы в этот разряд разрешает стабилизацию частоты соответствующего RC-генератора (32 МГц или 2 МГц) с помощью ЦАПЧ. По умолчанию системы ЦАПЧ обоих генераторов выключены. Прежде чем разрешить работу ЦАПЧ, необходимо занести нужное значение в регистр OSC_DFLLCTRL, так как после запуска ЦАПЧ изменять источник образцового сигнала невозможно. В системе программирования BASCOM AVR имеются две директивы, посредством которых осуществляется настройка системной синхронизации микроконтроллера: Config Osc и Config Sysclock. Первая предназначена для управления работой источников системной синхронизации — включения необходимых генераторов (отключения неиспользуемых) и задания некоторых особенностей их работы. Вторая указывает, какой из источников будет использован для формирования сигнала системной синхронизации (CLKsys) и задаёт коэффициенты деления предцелителей А, В и С (см. рис. 3). Полное описание директив приведено в разделе "Помощь" системы разработки программ BASCOM AVR. Необходимо иметь в виду, что прежде чем использовать генератор в качестве источника системной синхронизации, его надо включить, поэтому первой должна быть выполнена директива Config Osc, а за ней Config Sysclock. При старте микроконтроллера в нём принудительно включается RC-генератор частотой 2 МГц, остальные выключены, поэтому в директиве Config Osc нет необходимости перечислять все генераторы, достаточно только включить нужные. Перейдём к конкретным примерам. 1. Работа всех узлов микроконтроллера на частоте 2 МГц от внутреннего RC-генератора реализуется так: ![]() Знак о здесь и далее указывает, что программная строка продолжается в следующей и их следует вводить в компьютер одной строкой без этих знаков. А где же директива Config Osc? Ведь как сказано выше, она должна предшествовать директиве Config Sysclock. Дело в том, что при использовании только RC-генератора частотой 2 МГц эту директиву можно опустить, так как этот генератор запускается автоматически в ходе процедуры старта микроконтроллера. 2. Работа всех элементов микроконтроллера на частоте 32 МГц от внутреннего RC-генератора (типовой режим использования микроконтроллера в программах, не требующих высокой стабильности частоты синхронизации) ![]() Здесь директива Config Osc запрещает работу RC-генератора частотой 2 МГц (поскольку он не используется, с целью снижения энергопотребления его целесообразно отключить) и включает RC-генератор частотой 32 МГц. 3. Работа всех элементов микроконтроллера на частоте 32 МГц от внутреннего RC-генератора с включённой ЦАПЧ. Образцовым для ЦАПЧ будет сигнал RC-генератора частотой 32,768 Гц: ![]() Здесь в теле директивы Config Osc дополнительно включается RC-генератор частотой 32768 Гц, который будет служить источником образцового сигнала для ЦАПЧ. После этого целесообразно дождаться стабилизации сигнала образцового генератора(появления соответствующего флага в регистре OSC_STATUS), а затем включить ЦАПЧ, записав разрешающее значение в регистр DFLLRC32M CTRL. В заключение выполняется директива Config Sysclock. Остаётся добавить, что включать и выключать ЦАПЧ можно в любом месте программы, однако более логичен именно приведённый в рассмотренном примере вариант. 4. Работа всех элементов микроконтроллера на частоте 40 МГц. Источник сигнала системной синхронизации — блок PLL, образцовым для которого служит сигнал кварцевого генератора с резонатором на 4 МГц. Процедура назначения блока PLL источником системной синхронизации состоит из следующих шагов: — разрешение работы генератора, сигнал которого будет использован как образцовый для блока PLL; — разрешение работы блока PLL; — установка в регистре OSC_ PLLCTRL источника образцового сигнала и коэффициента умножения частоты; — ожидание готовности блока PLL; — разрешение использования выходного сигнала блока PLL в качестве сигнала системной синхронизации. Реализация этой процедуры представлена ниже: ![]() В этом примере частота системной синхронизации установлена выше предельно допустимой и работоспособность микроконтроллера не гарантируется. Пример лишь показывает технические возможности блока PLL. Реализация программных часов в программах пользователя Наличие в составе асинхронного домена синхронизации "часового" (32,768 кГц) генератора и счётчика реального времени позволяет вести отсчёт временных интервалов. Средствами BASCOM AVR можно реализовать полноценные часы реального времени, работающие в фоновом режиме. Реализуется это с помощью директивы Config Clock, полное описание которой приведено в разделе "Помощь" BASCOM AVR. Необходимо иметь в виду следующее: — в теле директивы Config Osc следует включить генератор, который будет использован для синхронизации счётчика реального времени; — так как часы используют прерывание низкого уровня, эти прерывания должны быть предварительно разрешены. Программа реализации часов выглядит так: ![]() После выполнения директивы Config Clock часы начинают идти, а пользователю становятся доступны символьная переменная Time$, которая хранит значение текущего времени в формате "ЧЧ:ММ:СС", и числовые переменные _sec, _min, hour, значения которых соответствуют текущему времени. В любом месте программы можно предусмотреть установку времени, с которого будет продолжен отсчёт: Time$ = "00:00:00" или, например, Time$ = "06:00:00". Программа часов может ежесекундно генерировать запрос прерывания, в ходе обработки которого управление передаётся подпрограмме с зарезервированным именем Sectic: (от слов "секунда" и "тик"). Для вызова этой подпрограммы в теле директивы Config Clock следует указать: Gosub=Sectic (квадратные скобки в примере выше — признак необязательного параметра). В программу следует включить саму подпрограмму обработки прерывания, например ![]() Эта подпрограмма должна содержать не более 2—4 коротких команд, в противном случае она будет просто проигнорирована. К сожалению, в технической документации эта особенность никак не оговорена. В заключение следует отметить, что директива Config Clock реализует не только часы, но и календарь, о котором также можно получить информацию из описания этой директивы в разделе "Помощь" BASCOM AVR. Более полное описание системы синхронизации микроконтроллеров ATxmega можно найти в [1] и [2]. ЛИТЕРАТУРА ТАТхтедаАЗ. Datasheet. — URL: http:// http://www.atmel.com/images/atmel-83...roller-atxmega 64a3u-128a3u-192a3u-256a3u_datasheet. pdf (18.03.15). 2. Xmega A. Manual. — URL: http:// www.atmel.com/lmages/doc8077.pdf (18.03.15). |
|
|
Цитировать 0 |
|
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Система событий микроконтроллеров ATxmega | Admin | Микроконтроллеры | 1 | 04.12.2017 11:03 |
| [06-2015] Особенности портов ввода-вывода микроконтроллера ATxmega и их настройка средствами BASCOM AVR | poster333 | Уголок радиолюбителя | 0 | 06.10.2015 03:05 |
| Усовершенствование комбинированного прибора на базе микроконтроллера ATxmega | Admin | Микроконтроллеры | 0 | 06.06.2015 20:54 |
| [03-2015] Инновационная технология плавного управления тормозными средствами | poster334 | xx3 | 1 | 17.05.2015 01:05 |
| ОСТ 32.180-2001 Система оперативно-технологической связи железнодорожного транспорта. Система тактовой сетевой синхронизации: структура сети, нормы качества | Admin | ОСТы | 0 | 03.05.2011 18:43 |
| Ответить в этой теме Перейти в раздел этой темы Translate to English |
| Возможно вас заинтересует информация по следующим меткам (темам): |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|