Поиск по сайту: |
|
По базе: |
|
Главная страница > Компоненты > Infineon Technologies AG > C166 |
|
||||||||||||||||
Конфигурирование семейства C166Введение Характерной чертой современных микроконтроллеров является улучшенная программируемость ресурсов и периферии. В специальных внутренних регистрах конфигурации сразу же после сброса должны быть установлены параметры для шины и памяти. Вслед за этим для корректной работы должны бытьзаданы характеристики периферии. В начале процесса разработки у программиста из-за недостатка информации и навыка может возникнуть ряд серьезных проблем, что приводит к потерям времени. Затрачиваются многие часы работы по конфигурированию кристалла прежде, чем будет написана первая строка реального прикладного кода. Целью статьи является помощь на первых шагах конфигурирования микроконтроллеров семейства Infineon C166, используя C- компилятор Keil. Поскольку C-компилятор инициирует специальные регистры конфигурации значениями, действующими по умолчанию, следует изменить эти значений в соответствии с контекстом конкретного проекта. Микроконтроллеры C166 легко настраиваются на любое управляющее приложение. На начальном этапе в качестве отладочного средства для тестирования начальных установок могут быть использованы оценочные платы фирм Keil и Phytec. Хотя в статье речь идет о самом мощном микроконтроллере C167CR, все изложенное в равной степени справедливо для других членов семейства C166. Оценочную версию C-компилятора Keil можно получить в Интернете по адресу www.keil.com. Возможности конфигурирования При конфигурировании микроконтроллеров семейства С166 используется два метода для конфигурации. Первый метод состоит в задании содержимого регистров SYSCON и BUSCON0 путем считывании состояний линий 16-разрядного Порта 0 на момент сброса для задания параметров при считывании первых команд из памяти. Для этой цели на оценочной плате Pull-down резисторы через джамперы подключены к линиям Порта 0. Конфигурация может быть изменена и программным путем после сброса. На конец фазы инициализации указывает выполнение специальной команды EINIT, после чего некоторые параметры уже не могут быть изменены (например, SYSCON и запрет сторожевого таймера). Скажем несколько слов о специальных регистрах конфигурации. SYSCON - 16 разрядный побитно-адресуемый регистр, расположенный по адресу FF12, который не может быть модифицирован после выполнения команды EINIT. SYSCON содержит следующие управляющие биты: разрешение доступа к внутренней Х-шине (XBUS), разрешение и мэппинг встроенного ПЗУ, разрешение линии выходного такта (CLKOUT), разрешение сегментации памяти и размер системного стека. Шина XBUS является внутренним представлением внешней шины и используется для доступа к расширению встроенного ОЗУ и периферии. Адресация кода происходит путем разбиения адресного пространства на сегменты в 64 Кбайт. BUSCON - это пять 16-разрядных регистров, которые управляют временами обращения к памяти, ожидания и задержки, генерацией сигналов выборки кристалла (chip select) при чтении и записи из памяти и задают режим работы системной шины: разрядность шины данных (16 или 8 бит) и мультиплексный/демультиплексный режим. Регистры BUSCON расположены по адресам FF0C-FF1A. Четыре регистра BUSCON1-BUSCON4 задают характеристики четырех областей памяти, которые могут иметь разные режимы работы. Размер и начальный адрес этих окон задается в регистрах ADDRSEL1-ADDRSEL4. Характеристики системной шины для областей памяти, не перекрываемых данными четырьмя адресными диапазонами, задаются в регистре BUSCON0 и устанавливаются аппаратно при считывании линий порта 0 во время сброса. Поскольку содержимое регистров BUSCON1-BUSCON4 может быть изменено и после выполнения команды конца инициализации EINIT, в статье рассматривается только изменение параметров регистра BUSCON0. STKOV - 16-разрядный регистр для фиксации переполнения системного стека. Он расположен по адресу FE14, его состояние по умолчанию - FA00, т.е. старшие 5 разрядов установлены в "1", а младшие 11 разрядов могут быть изменены. Data Page Pointers (указатели на страницу данных) - это четыре 10 разрядных регистра DPP0-DPP3, используемые для доступа к одной из 1024 страниц памяти размером по 16 Кбайт. Регистры DPP расположены по адресам FE00-FE06 и в них после сброса выставляются номера страниц от 0 до 3 соответственно. С помощью указателя на страницу данных 16-разрядному адресу ставится в соответствии 24-разрядный физический адрес. Полный физический адрес формируется следующим образом: 14 младших разрядов адреса повторяются в 14 младших разрядах физического адреса, а 2 старших разряда выбирают один из четырех регистров DPP, содержащий соответствующий номер страницы, который и образует старшие 10 разрядов физического адреса. Context Pointer (CP) - 16 разрядный регистр-указатель (11 разрядов могут быть модифицированы), определяющий расположение активного регистрового банка. Регистровый банк произвольно размещается во встроенном ОЗУ, и для его переключения достаточно изменить содержимое CP. Регистровый банк составляют до 16 регистров общего назначения (general purpose register). Микроконтроллеры семейства Infineon C166 отличаются гибкостью и легко адаптируемы ко многим приложениям. Многие характеристики здесь не обсуждаются, но они подробно описаны в соответствующих руководствах пользователя, которые доступны на сайте Infineon www.infineon.com/products/micro/micro.htm. Эти параметры также легко программируются при использовании C-компилятора Keil. Инструментальные средства Keil Инструментальные средства Keil полностью поддерживают все микроконтроллеры семейства Infineon C166 (С161, С163, С164-CI, С165, 80С166, С167 и 167CR). Пакет инструментальных средств PK166 включает C-компилятор, макроассемблер, компоновщик, интегрированную среду разработки µVision, отладчик/симулятор dScope и отладочный монитор. Отладчик dScope может работать как с виртуальной, так и с реальной отлаживаемой системой (например, оценочными платами фирм Keil и Phytec), используя ядро монитора, которое находится в отладочном ОЗУ или ПЗУ. Ниже приведена простая программа генерации меандра выводами порта 7, для запуска которой следует ввести ее текст в интегрированной среде разработки µVision и указать физический адрес. Заметим, что включенный файл заголовка stdio.h в данном случае не нужен. Указания по компиляции содержатся в руководстве по демо-версии, которое можно найти на сайте Keil по указанному выше адресу или запросить у нас.
После компиляции этого файла и вызова dScope, на экране отображается ассемблерный текст инициирующей программы С_STARTUP. По адресу памяти 0 записана не отображенная на рисунке команда JMPS перехода на адрес 0BC.
Первая отображенная команда DISWDT запрещает сторожевой таймер. В противном случае следует программно активировать таймер каждые несколько миллисекунд или будет сгенерирован сигнал trap. Затем идут команды установки специальных регистров SYSCON, BUSCON0, STKOV, CP, трех регистров DPP, которые заканчиваются командой EINIT. Для установок регистров использованы значения по умолчанию, содержащиеся в библиотеках. Команды BFLDL и BFLDH используются для модификации младшего или старшего байта 16 разрядного регистра. Синтаксис команд следующий: BFLDx регистр назначения, AND-маска, OR -маска. Бит из регистра, на который указывает "1" в AND- маске заменяется соответствующим битом из OR-маски. В зависимости от выбранной команды модифицируется младший или старший байт регистра. В выделенной строке 0C8H обнуляется старший байт регистра SYSCON, а команда в строке 0CCH обнуляет биты на позициях 7 и 2 в младшем байте. Изменение параметров конфигурации Начальная конфигурация микроконтроллера описывается в файле start167.a66, расположенном в директории c:\c166eval\lib. Для изменения параметров конфигурации следует отредактировать содержимое этого файла с помощью любого ASCII редактора, например, интегрированного в mVision. Поскольку start167.a66 является шаблоном для создания собственной процедуры инициализации, его следует скопировать в директорию проекта и изменить уже там. Затем новый файл следует включить в файл проекта вместе с исходным С кодом, чтобы во время компиляции и компоновки mVision использовала не библиотечный, а откорректированный файл.
Размер системного стека, изменяемый в пределах от 32 до 1024 слов, задают 3 старших бита регистра SYSCON. Размер стека по умолчанию после сброса равен 256 слов - старшие 3 бита регистра SYSCON равны 0. Эти биты могут быть изменены командой BFLDH. Чтобы установить стек размером 128 слов, необходимо следующим образом модифицировать файл start167.a66:
Единственным изменением является замена "0" - на "1"! Результат рекомпиляции и загрузки в dScope приведен ниже. OR-маска на строке 0C8H теперь равна 20H, что соответствует установке бита 13 регистра SYSCON в "1". Таким образом при использовании инструментальных средств Keil параметры конфигурации легко модифицировать. Это в равной степени относится и к модификации других регистров.
Следует обратить внимание, что поле AND команды в строке 0CCH изменило значение с 84H на 04H по сравнению с первым экраном. Это вызвано тем, что при генерации кода для бита WRCFG (" write configuration control" - 7-ой бит регистра SYSCON) первоначально было использовано значение по умолчанию "0". Чтобы изменить этот бит на "1" следует лишь внести следующее изменение:
При этом OR-маска в cтроке 0CCH становится нулевой. По умолчанию системная шина C166 сконфигурирована, как 16-разрядная, демультиплексная. При работе с мультиплексной шиной, следует внести изменения в регистр SYSCON. Для этого в строке _BTYP0 EQU 2 "2" заменяется на "3", и после рекомпиляции и загрузки в отладчик dScope тип шины станет мультиплексным. Универсальность C166 достигается большим числом таких настроек. Заключение Программное обеспечение Keil позволяет загружать и выполнять программы, устанавливать контрольные точки, просматривать состояние памяти в режиме симуляции или ведя отладку на реальных аппаратных средствах. В состав пакета входит отладочный монитор, ядро которого может быть сконфигурировано для каждой из плат. Пакет инструментальных средств Keil поддерживает практически все оценочные платы, в том числе фирм Keil и Phytec, информацию о которых можно получить либо на наших страницах, либо по адресам www.phytec.de и www.keil.com. Оценочные платы особенно полезны на начальном этапе разработки для определения требуемого размера памяти и конфигурации шины. При этом тестируются различные варианты конфигурации шины и памяти ипроводится их сравнение для дальнейшего использования в реальных разработках. Инструментальных средство Keil вместе с оценочной платой, подключенной через монитор dScope, представляют мощный и экономичный комплекс разработки, предлагающим простой механизм конфигурирования микроконтроллеров. Семейство Infineon C166 предлагает гибкую настройку и подходит практически для любого приложения. У микроконтроллеров этого семейства есть множество других возможностей, с которыми можно ознакомиться на наших страницах.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|