Blackfin ADSP-BF538 Печать
Добавил(а) microsin   

Основные возможности ADSP-BF538:

• Ядро Blackfin (семейство Stirling), работающее на частотах до 533 МГц.
• 2 шт. 16-битных MAC, 2 шт. 40-битных ALU, 8 шт. 8-битных ALU (для обработки видео), 40-битный шифтер.
• Система команд наподобие RISC, заточенная под упрощение программирования и поддержку компиляторов [3].
• Продвинутая система отладки, сбора отладочной информации, отслеживания эффективности программы.
• Широкий диапазон рабочих напряжений (привязанных к частоте, см. раздел Условия работоспособности).
• Программируемый, встроенный в чип регулятор напряжения.
• Корпус Pb-free CSP_BGA, 316 шариковых выводов.

Память:

• До 148 кбайт встроенной памяти (см. таблицу 1).
• Кристалл с буквой F (F8) имеет встроенную память FLASH, откуда может загрузиться программа.
• Управление памятью с возможностью защиты блоков.
• Контроллер внешней памяти, поддерживающий прозрачное подключение SDRAM, SRAM, flash, ROM.
• Гибкое управление загрузкой - программа может быть также загружена через SPI из внешней памяти [4].

Периферийные устройства:

• Параллельный периферийный интерфейс PPI с поддержкой форматов видео ITU-R 656.
• 4 двойных канала, полнодуплексные синхронные последовательные порты, дающие поддержку 16 стереоканалов через I2S.
• 2 контроллера DMA, поддерживающих 26 каналов обмена с периферией.
• 4 канала DMA типа память-память.
• Контроллер CAN 2.0B.
• 3 SPI-совместимых порта.
• 2 контроллера TWI, совместимых с индустриальным стандартом I2C.
• До 54 портов GPIO.
• RTC с внешним отдельным кристаллом и backup-батареей.
• Сторожевой таймер (watchdog), 32-битный таймер ядра.
• Встроенный в чип синтезатор тактовой частоты ядра и шины на основе PLL.
• Интерфейс JTAG для отладки и аппаратного тестирования.

BF538 block diagram

Рис. 1. Функциональная блок-диаграмма внутреннего устройства ADSP-BF538.

К сожалению (или к счастью?) ядро Blackfin довольно сложное, так что в одном даташите Вы не найдете полную информацию по аппаратуре чипа, указания по программированию и т. д. Все это компания Analog Devices разбросала по отдельным даташитам (см. врезку). В этой статье приведено только краткое, общее описание процессора.

Примечание: незнакомые термины и аббревиатуры см. в разделе Словарик.

Blackfin Embedded Processor ADSP-BF538/ADSP-BF538F site:analog.com. Здесь в статье приведен перевод этого даташита. Некоторые справочные таблицы в перевод не вошли (электрические параметры, параметры времени, временные диаграммы, цоколевка чипа и т. п.) - все это см. в оригинальном даташите.

ADSP-BF538/ADSP-BF538F Blackfin® Processor Hardware Reference site:analog.com. Даташит с подробным описанием аппаратного устройства BF538.

Blackfin® Processor Programming Reference site:analog.com. Руководство по программированию.

Kernel (VDK) User’s Guide site:analog.com. Информация по библиотеке поддержки многозадачности (RTOS).

Также обратите внимания на сообщения о найденных ошибках и способах их обхода (anomalies, errata). В некоторых ревизиях кристалла могут быть не исправленные баги.

ADSP-BF538 Blackfin Processor Anomaly List site:analog.com.

ADSP-BF538 является функциональным расширением популярного процессора ADSP-BF533, и идеально подходит для приложений с использованием нескольких соединений с устройством. ADSP-BF538 предоставляет эквивалент встроенной памяти, и хорошо подходит для таких приложений, как видеосистемы безопасности, индустриальные системы автоматизации и контроля, медицинская техника, где требуется смесь задач управления и обработки сигналов. Процессор ADSP-BF538 разработан как интегрированная система, где имеется множество аппаратных устройств: интерфейс CAN, три SPI-совместимых последовательных порта, три последовательных порта UART, четыре порта SPORT, три многофункциональных таймера, 54 порта GPIO, два интерфейса TWI (I2C), часы реального времени с возможностью подключения отдельного кварца и батареи, сторожевой таймер, контроллер событий, интерфейс JTAG (для тестирования и отладки). Гибкий интерфейс Parallel Peripheral Interface (PPI) предоставляет прямое соединение с различными видео кодерами и декодерами, драйверами дисплея, сенсорами изображения.

Процессоры Blackfin имеют эффективный набор инструкций в стиле RISC, оптимизированный для работы с видео и звуком. ADSP-BF538 полностью совместимы с предыдущими моделями процессоров семейства Blackfin, и отличаются только по быстродействию, количеству встроенных периферийных устройств, типом корпуса и конфигурацией памяти.

Таблица 1. Основные функциональные возможности ADSP-BF538.

Функция ADSP-BF538 ADSP-BF538F8
Порты SPORT 4
Порты UART 3
Порты SPI 3
Порты TWI 2
CAN 1
PPI 1
Внутренняя память FLASH 1 мегабайт - есть
SRAM инструкций / кэш 16 кбайт
SRAM инструкций 64 кбайт
SRAM данных / кэш 32 кбайт
SRAM данных 32 кбайт
Scratchpad 4 кбайт
Max частота ядра, быстродействие 533 МГц, 1066 миллионов циклов MAC в секунду
Корпус BC-316

Архитектура, рассчитанная на экономию энергии. Конечно, довольно смешно говорить об экономичности процессора DSP, который предназначен в основном для тяжелых вычислений. Однако кое-что для управления энергопотреблением в ADSP-BF538 имеется. Процессоры Blackfin разработаны с учетом пониженного потребления энергии, с технологией низковольтного напряжения питания. Имеется функция динамического управления питанием (dynamic power management), которая дает возможность управлять напряжением питания и тактовой частотой процессора, что позволяет достичь значительного снижения общего потребления мощности - больше, чем простое управление тактовой частотой процессора. В результате получается увеличенная длительность работы от батареи и уменьшение тепловых потерь.

Встроенные периферийные устройства. Здесь довольно кратко сделан обзор основного функционала периферийных устройств, встроенных в кристалл ADSP-BF538 (см. рис. 1). Ядро содержит довольно богатый набор периферийных устройств, распределенным по внутренним шинам. Для устройств предусмотрено гибкое конфигурирование, обеспечивающее высокую общую эффективность всей системы.

В дополнение к периферийным устройствам с высокоскоростной последовательной передачей данных имеется также быстродействующие параллельные порты, через которые можно подключить различные устройства с функциями модема, обработки звука и видео.

Контроллер прерываний позволяет управлять приоритетами прерываний, назначенными на каждое периферийное устройство.

Все периферийные устройства, кроме портов GPIO, CAN, TWI, RTC, таймеров, поддерживаются пересылками DMA. Есть также 4 отдельных канала DMA для пересылок данных между разными областями памяти процессора, включая внешнюю SDRAM и асинхронную память. Несколько внутренних шин могут работать на частотах до 133 МГц, обеспечивая достаточную полосу пропускания для обмена с внутренними и внешними периферийными устройствами.

[Ядро Blackfin]

Как показано ниже на рис. 2, ядро содержит 2 шт. 16-битных умножителя, 2 шт. 40-битных аккумулятора, 2 шт. 40-битных ALU, 4 шт. 8-битных video-ALU, и 40-битный регистр сдвига. Блок вычислений может обрабатывать 8, 16 или 32 разрядные числа, расположенные в регистровом файле.

Blackfin Processor Core

Рис. 2. Процессорное ядро Blackfin.

Регистровый файл содержит 8 шт. 32-битных регистров. Когда происходят вычисления над 16-битными числами, регистровый файл работает как 16 независимых 16-битных регистра. Все нужные данные для вычисления поступают от многопортового регистрового файла и полей констант инструкции.

Каждая операция MAC может выполнять умножение 16 на 16 бит за 1 цикл ядра, с накоплением результата в 40-разрядных аккумуляторах. Поддерживаются форматы со знаком и без знака, округление, насыщение.

Блок ALU выполняет традиционный набор арифметических и логических операций над 16 и 32 разрядными данными. Дополнительно есть множество специальных инструкций для ускорения обработки сигналов. Это битовые операции для распаковки полей из данных, population count, умножение modulo 232, примитивы деления, насыщение (saturation) и округление, детектирование знака/экспоненты. Набор инструкций обработки видео включает операции байтового выравнивания и упаковки, 16- и 8-разрядное сложение с обрезкой, операции 8-битного усреднения, 8-битные операции SAA. Также есть инструкции сравнения/выбора и поиска вектора.

Для основных инструкций могут быть одновременно выполнены сразу две 16-битные операции ALU на паре регистров (на старшей 16-разрядной половине и младшей 16-разрядной половине регистра вычисления). Можно выполнять счетверенные 16-битные операции с задействованием 2-го ALU.

40-битный шифтер может выполнять сдвиги и циклические сдвиги, и это используется для поддержки нормализации, извлечения битового поля и инструкций типа field deposit (накопление поля).

Программный секвенсор (sequencer) управляет потоком выполнения инструкций, включая выравнивание инструкции и её декодирование. Для управления потоком вычисления секвенсор поддерживает условные относительные и косвенные переходы от счетчика PC (relative and indirect conditional jumps), со статическим предсказанием ветвления (static branch prediction), и вызовы подпрограмм. Аппаратура поддерживает циклы с нулевыми потерями (zero overhead looping). Архитектура полностью взаимно блокируемая (interlocked), это означает что программисту не нужно управлять конвейером, когда выполняются инструкции с зависимостям по данным.

Блок адресной арифметики предоставляет 2 адреса для одновременного двойного захвата из памяти. Он содержит многопортовый регистровый файл, состоящий из 4 наборов 32-битных регистров индекс, модификации, длины и базы (для кольцевой буферизации), и 8 дополнительных 32-битных регистров указателя (для манипуляций индексированным стеком в стиле языка C).

Процессоры Blackfin поддерживают модифицированную Гарвардскую архитектуру в комбинации с иерархической структурой памяти. Области памяти Level 1 (L1) обычно используются для работы на полной скорости, которую поддерживает процессор, т. е. без задержек (тактов ожидания), либо с минимальными задержками . На уровне L1 память инструкций хранит в себе только инструкции. Две области данных хранят данные и есть выделенная область данных для хранения стека и временных локальных переменных (scratchpad data memory).

Дополнительно предоставлено несколько блоков памяти L1, что позволяет организовать конфигурируемую смесь SRAM и кэша. Блок управления памятью (MMU) предоставляет защиту памяти для индивидуальных задач, которые могут работать в ядре, и может защитить системные регистры от нежелательного доступа.

Архитектура предоставляет 3 режима работы: user mode (режим пользователя), supervisor mode (режим супервизора) и emulation mode (режим эмуляции, отладки). Пользовательский режим имеет ограниченный доступ к основным системным ресурсам, что предоставляет защищенное программное окружение, в то время как режим супервизора имеет неограниченный доступ к системе и ресурсам ядра.

Набор инструкций процессора Blackfin был оптимизирован так, что 16-разрядные коды операции представляли наиболее часто используемые инструкции, что дает в результате отличную плотность скомпилированного кода. Сложные инструкции DSP кодируются в 32-разрядные коды операций, предоставляя полные, многофункциональные инструкции. Процессоры Blackfin предоставляют ограниченную поддержку множественного выполнения, где 32-разрядная инструкция может быть выдана параллельно с двумя 16-разрядными инструкциями, что позволяет программисту использовать многие ресурсы ядра в одном цикле инструкции.

Язык ассемблера Blackfin использует алгебраический синтаксис, что упрощает кодирование и читаемость программы. Архитектура была оптимизирована для использования совместно с компилятором C/C++, что позволяет быстро и эффективно писать программы.

[Архитектура памяти]

Процессоры ADSP-BF538/ADSP-BF538F видят память как одно унифицированное адресное пространство в 4 гигабайта, с использованием 32-разрядной адресации (см. рис. 3). Все ресурсы, включая внутреннюю память, внешнюю память, и даже регистры управления ввода/вывода, занимают отдельные секции из общего адресного пространства. Куски памяти этого адресного пространства выровнены в иерархическую структуру, предоставляя хороший баланс в соотношение цена/эффективность. В системе уже есть очень быстрая, встроенная в чип память (работающая с минимальными задержками) - для кэша или SRAM, а также может быть недорогая внешняя память довольно большой емкости с меньшим быстродействием.

Системная память типа L1 - это самая быстрая память, которая есть у процессора Blackfin. Системы памяти вне чипа подключаются через блок EBIU, что дает расширение памяти с использованием памяти SRAM, SDRAM, FLASH - можно опционально получить доступ к 132 мегабайтам физической памяти.

ADSP BF538 internal external memory map

Рис. 3. Карта памяти BF538.

Примечание 1: ASYNC означает асинхронная память, которая может быть либо только подключенной к чипу снаружи (для BF538), либо (для BF538F) как подключенной снаружи, так и изнутри. Расположение блока памяти в адресном пространстве зависит от того, к какому из выводов ~AMSx подключен сигнал выборки памяти (если BF538F подключает встроенную память FLASH, то это сигнал ~FCE).

Контроллеры DMA предоставляют широкополосные перемещения блоков данных. Этим способом можно быстро, не нагружая ядро, перемещать данные между внутренней памятью и внешней памятью.

Внутренняя память (встроенная в кристалл). Процессоры ADSP-BF538/ADSP-BF538F имеют 3 блока встроенной памяти, предоставляющие широкую полосу доступа со стороны ядра.

Первый блок это память инструкций L1 состоящий из 80 килобайт SRAM, из которых 16 килобайт можно сконфигурировать четырехсторонний ассоциативный кэш с множественным доступом (four way set-associative cache). К этой памяти процессор осуществляет доступ на полной, максимально возможной скорости.

Второй блок это память данных L1, состоящая из 2 банков по 32 килобайта каждый. Каждый банк конфигурируется, предоставляя как функционал two-way set-associative cache, так и функционал SRAM. Этот блок памяти доступен на полной скорости процессора.

Третий блок это временные данные размером 4 килобайта (scratchpad SRAM), работающая так же быстро, как и другие блоки L1. Однако этот третий блок L1 не может быть сконфигурирован как кэш, он работает только как SRAM данных (применяется для стека и локальных переменных).

Внешняя память (расположенная вне кристалла). К внешней памяти ядро получает доступ через блок EBIU. Это 16-битный интерфейс, предоставляющий прозрачное соединение как к банку синхронной динамической памяти (SDRAM), так и к 4 банкам устройств асинхронной памяти включая flash, EPROM, ROM, SRAM, и устройства ввода/вывода, встраиваемые в адресное пространство (memory mapped I/O devices).

PC133-совместимый контроллер SDRAM может быть запрограммирован для подключения до 128 мегабайт SDRAM. Контроллер SDRAM позволяет одной строке быть открытой для каждого внутреннего банка SDRAM, максимум для 4 внутренних банков SDRAM, улучшая общую производительность системы.

Контроллер асинхронной памяти может быть запрограммирован для управления до 4 банков устройств с очень гибко настраиваемыми параметрами времени, что позволяет работать с широком спектром устройств. Каждый банк занимает сегмент размером в 1 мегабайт, независимо от размера адресного пространства используемого устройства, так что эта память может дать сплошную область памяти только в том случае, если каждое устройство предоставляет полноразмерный банк памяти в 1 мегабайт.

Память FLASH (только в ADSP-BF538F8). Процессор ADSP-BF538F8 содержит в своем корпусе отдельную матрицу flash, подключенную через шину EBIU. На рис. 4 показано, как эта память соединяется с ядром Blackfin.

BF538F internal connection FLASH

Рис. 4. Подключение встроенной в корпус памяти FLASH (ADSP-BF538F8).

ADSP-BF538F8 содержит 8-мегабитный (512K x 16-бит, или 1 мегабайт) нижний загрузочный сектор памяти S29AL008J компании Spansion, известной как хорошая память flash. Для дополнительной информации посетите сайт www.spansion.com. Имеются следующие возможности:

• Время доступа составляет 70 нс (должны быть соответствующим образом настроены регистры EBIU).
• Защита сектора.
• Один миллион циклов записи на сектор.
• 20 лет сохранности данных.

Процессор Blackfin соединяется с матрицей памяти flash через сигналы адреса, данных, и сигналы управления chip enable, write enable и output enable, как если бы это было обычное устройство внешней памяти. Обратите внимание, что вывод входа защиты от записи для flash не подключен и недоступен, что отключает функцию защиты от записи.

Вывод flash chip enable (~FCE) должен быть подключен к сигналу AMS0 (обычно так и делают), или к AMS3..AMS1 через проводник на печатной плате. Когда подключен сигнал AMS0, процессор Blackfin может загрузиться из этой памяти flash. Когда подключен один из сигналов AMS3..AMS1, то память flash работает как просто энергонезависимая память, встроенная в карту памяти процессора, как это показано на рис. 3.

Программирование памяти Flash. Память flash кристалла ADSP-BF538F8 может быть запрограммирована либо до, либо после монтажа чипа на печатную плату.

Чтобы запрограммировать flash до монтажа, используйте специальное оборудование, которое может предоставить все необходимые сигналы (адрес, данные, управление) и питание через внешние выводы корпуса. Во время программирования должно быть предоставлено напряжение питания на шинах VDDEXT и GND, и Blackfin должен удерживаться в состоянии сброса при выставленном сигнале запроса шины (~BR), и должны быть предоставлены такты на выводе CLKIN.

После установки чипа на печатную плату для программирования может использоваться инструментарий VisualDSP++ (через интерфейс JTAG и адаптер наподобие ICE-100B JTAG Emulator и т. п.).

Защита сектора памяти Flash. Чтобы задействовать такую возможность, требуется подача высокого напряжения (номинал +12V) на вывод FRESET. За подробностями обратитесь к руководству (даташиту) памяти FLASH.

Пространство памяти для ввода/вывода. Процессоры Blackfin не используют раздельную адресацию для пространства I/O. Все ресурсы: и блоки памяти, и регистры управления отображены на одно общее 32-битное пространство адресов (4 гигабайта). Встроенные в чип устройства ввода/вывода (периферия) имеют регистры управления, привязанные к памяти (mapped registers, MMR) по адресам, находящимся в верхней области адресного пространства 4 гигабайта. Это пространство разделено на два блока меньшего размера, один из которых содержит MMR управления для всех функций ядра, и другой содержит регистры для настройки и управления встроенными к кристалл периферийными устройствами, не входящими в ядро. MMR доступны только в режиме супервизора, и видны как зарезервированное пространство для периферийных устройств, встроенных в чип.

Загрузка (booting). Процессоры ADSP-BF538/ADSP-BF538F содержат в себе маленькое загрузочное ядро (boot kernel), которое конфигурирует для загрузки подходящую периферию. Если процессор сконфигурирован для загрузки из области boot ROM, то процессор начнет выполнять программу из встроенной в кристалл ПЗУ загрузки (on-chip boot ROM). Подробнее см. врезку "Режимы загрузки".

[Обработка событий (Event Handling)]

Контроллер событий процессоров ADSP-BF538/ADSP-BF538F обрабатывает все асинхронные и синхронные события. Процессор предоставляет обработку событий с поддержкой приоритетов и вложенности. Вложенность обработки позволяет одновременно быть активными сразу нескольким обработчикам прерывания (event service routines). Приоритезация гарантирует, что обработка события с более высоким приоритетом будет иметь преимущество перед обработкой события с более низким приоритетом. Контроллер предоставляет поддержку 5 разных типов событий:

• Emulation – событие эмуляции переводит процессор в режим эмуляции, что позволяет управлять процессором через интерфейс JTAG.

• Reset – это событие сбрасывает процессор.

• Немаскируемое прерывание (NMI) – событие NMI может быть сгенерировано программно сторожевым таймером (watchdog) или входным сигналом NMI, поданным на процессор. Часто событие NMI используется как сигнал выключения, чтобы начать процедуру выключения системы.

• Exception – исключение. Эти события возникают синхронно с потоком выполнения программы (исключение произойдет до разрешения выполнения инструкции с ошибкой). Условиями возникновения исключения могут быть события наподобие нарушения выравнивания данных, неопределенный код инструкции.

• Interrupt – прерывание. Эти события возникают асинхронно по отношению к потоку выполнения программы. Они могут быть вызваны изменением уровня на входе порта, таймерами, блоком DMA и другими периферийными устройствами, а также явно выполненной инструкцией программного прерывания.

Каждый тип события имеет связанный регистр, в котором хранится адрес возврата и связанную инструкцию возврата из события (return-from-event instruction). Когда сработало событие, состояние процессора сохраняется в стек супервизора.

Контроллеры событий процессоров ADSP-BF538/ADSP-BF538F состоят из двух ступеней, core event controller (CEC) и system interrupt controller (SIC). CEC работает вместе с SIC для приоритезации всех системных событий и управления ими. Концептуально прерывания от периферийных устройств поступают в SIC, и затем маршрутизируются прямо в прерывания общего назначения контроллера CEC.

Core Event Controller (CEC). CEC поддерживает 9 прерываний общего назначения (general-purpose interrupts IVG15–7) в дополнение к специальным прерываниям и событиям исключения. Из прерываний общего назначения 2 с самым низким приоритетом (IVG15, IVG14) рекомендуется резервировать для обработчиков программных прерываний. Остальные 7 более приоритетных прерываний при необходимости распределяются между периферийными устройствами процессора, чтобы обрабатывать их события. Таблица 2 показывает входы CEC, идентифицирует их имена в таблице векторов событий (event vector table, EVT), и перечисляет их приоритеты.

Таблица 2. Группы прерываний CEC и их приоритеты (чем меньше цифра в столбце Приоритет, тем эта группа прерываний приоритетнее).

Приоритет Класс событий Вектор EVT
0 (max приоритет) Эмуляция / управление тестированием EMU
1 Сброс RST
2 Немаскируемое прерывание NMI
3 Exception (исключение, программная ошибка) EVX
4 Зарезервировано  
5 Hardware Error (аппаратная ошибка) IVHW
6 Таймер ядра IVTMR
7 Прерывание 7 IVG7
8 Прерывание 8 IVG8
9 Прерывание 9 IVG9
10 Прерывание 10 IVG10
11 Прерывание 11 IVG11
12 Прерывание 12 IVG12
13 Прерывание 13 IVG13
14 Прерывание 14 IVG14
15 Прерывание 15 IVG15

System Interrupt Controller (SIC). Контроллер SIC предоставляет привязку и маршрутизацию событий от множества источников прерываний периферии к группам входов прерываний контроллера CEC, распределенных по приоритетам. Это позволяет гибко настраивать приоритеты прерываний различных периферийных устройств. Хотя процессоры ADSP-BF538/ADSP-BF538F предоставляют привязку по умолчанию (которая автоматически настраивается после сброса), программа пользователя может изменить привязку и приоритеты прерываний событий путем записи соответствующих значений в регистры назначения прерываний (interrupt assignment registers, SIC_IARx).

Таблица 3 описывает входы в SIC и привязку по умолчанию к группам прерываний CEC.

Таблица 3. Привязка событий периферии к группам приоритетов.

Источник события Вектор EVT
PLL Wake-Up Interrupt IVG7
DMA Controller 0 Error
DMA Controller 1 Error
PPI Error Interrupt
SPORT0 Error Interrupt
SPORT1 Error Interrupt
SPORT2 Error Interrupt
SPORT3 Error Interrupt
SPI0 Error Interrupt
SPI1 Error Interrupt
SPI2 Error Interrupt
UART0 Error Interrupt
UART1 Error Interrupt
UART2 Error Interrupt
CAN Error Interrupt
Прерывания Real-Time Clock IVG8
DMA0 Interrupt (PPI)
DMA1 Interrupt (SPORT0 Rx) IVG9
DMA2 Interrupt (SPORT0 Tx)
DMA3 Interrupt (SPORT1 Rx)
DMA4 Interrupt (SPORT1 Tx)
DMA8 Interrupt (SPORT2 Rx)
DMA9 Interrupt (SPORT2 Tx)
DMA10 Interrupt (SPORT3 Rx)
DMA11 Interrupt (SPORT3 Tx)
DMA5 Interrupt (SPI0) IVG10
DMA14 Interrupt (SPI1)
DMA15 Interrupt (SPI2)
DMA6 Interrupt (UART0 Rx)
DMA7 Interrupt (UART0 Tx)
DMA16 Interrupt (UART1 Rx)
DMA17 Interrupt (UART1 Tx)
DMA18 Interrupt (UART2 Rx)
DMA19 Interrupt (UART2 Tx)
Прерывания Timer0, Timer1, Timer2 IVG11
Прерывания TWI0, TWI1
CAN Receive Interrupt
CAN Transmit Interrupt
Прерывания A и B порта F GPIO IVG12
MDMA0 Stream 0 Interrupt IVG13
MDMA0 Stream 1 Interrupt
MDMA1 Stream 0 Interrupt
MDMA1 Stream 1 Interrupt
Software Watchdog Timer

Event Control (управление событиями). Процессоры ADSP-BF538/ADSP-BF538F предоставляют пользователю (программисту) очень гибкий механизм управления обработкой событий. В CEC используются 3 регистра для координирования событий. Каждый регистр шириной 32 бита:

• CEC interrupt latch register (ILAT). Регистр ILAT показывает, когда событие захвачено. Будет установлен соответствующий бит, когда процессор захватил (детектировал) событие, и очищен когда событие было принято системой. Этот регистр обновляется контроллером CEC автоматически, однако он может быть программно записан для очистки (отмены) захваченных событий. Этот регистр может быть прочитан в режиме супервизора, и в тоже время может быть записан в режиме супервизора только в том случае, когда очищен соответствующий бит IMASK.

• CEC interrupt mask register (IMASK). Регистр IMASK управляет маскированием и демаскированием (запретом и разрешением) отдельных событий. Когда бит установлен в регистре IMASK, то соответствующее событие будет обработано CEC, когда произойдет. Очистка бита IMASK маскирует событие, что предотвращает обработку процессором этого события, даже при том, что событие может быть захвачено в регистре ILAT. Этот регистр может быть прочитан или записан в режиме супервизора. Кроме индивидуального маскирования, прерывания общего назначения могут быть глобально разрешены или запрещены инструкциями STI и CLI соответственно.

• CEC interrupt pending register (IPEND). Регистр IPEND отслеживает все вложенные события. Установленный бит в регистре IPEND показывает, что событие в настоящий момент активно, ли вложено на некоторый уровень. Этот регистр обновляется контроллером автоматически, однако его можно прочитать в режиме супервизора.

Примечание: номер бита регистров ILAT, IMASK, IPEND соответствует номерам идентификаторов аппаратуры.

Контроллер SIC расширят обработку событий предоставлением трех 32-битных регистра управления и состояния (interrupt control and status registers). Каждый регистр содержит биты, соответствующие настройке каждого из событий периферии (настройка по умолчанию показана в таблице 3).

• SIC interrupt mask registers (SIC_IMASKx). Эти регистры управляют маскированием и демаскированием каждого события прерывания аппаратуры. Когда в этом регистре установлен соответствующий бит, событие периферийного устройства будет демаскировано и обработано системой при возникновении. Очищенный бит в этих регистрах маскирует событие периферийного устройства, что предотвращает обработку события процессором.

• SIC interrupt status registers (SIC_ISRx). Поскольку несколько периферийных устройств могут быть привязаны к одному событию, эти регистры дают программному обеспечению возможность определить, какое событие периферии послужило источником срабатывания прерывания. Установленный бит показывает периферийное устройство, вызвавшее прерывание, а очищенный бит говорит о том, что периферийное устройство не выставляло событие.

• SIC interrupt wake-up enable registers (SIC_IWRx). Путем разрешения соответствующего бита в этих регистрах периферийное устройство может быть сконфигурировано для пробуждения процессора, если ядро находится в режиме ожидания (idle) или в режиме сна (sleep mode), когда было сгенерировано событие. Дополнительную информацию см. в разделе Динамическое управлением питанием.

Поскольку несколько источников прерывания может быть привязано к одной группе прерываний (IVGx), то может одновременно произойти несколько событий до обработки прерывания или во время его обработки - для прерывания, которое уже было детектировано на этом входе прерывания. Содержимое регистра IPEND отслеживается SIC как подтверждение прерывания.

Соответствующий бит регистра ILAT устанавливается, когда детектируется начало события прерывания (детектирование требует двух тактов ядра). Бит очищается, когда установлен соответствующий бит регистра IPEND. Бит IPEND показывает, что событие вошло в конвейер процессора. В этот момент CEC распознает событие и поставит в очередь следующее наступление события на соответствующем входе прерывания. Минимальная задержка (latency) от начала (фронта) события прерывания до вывода в IPEND составляет 3 такта ядра; однако задержка может быть намного больше, в зависимости от активности и состояния процессора.

Peripheral Interrupt ID. Идентификаторы периферийных устройств для прерываний (Peripheral Interrupt ID) используются в регистрах назначения прерываний SIC_IARx. Ниже в таблице для процессора BF538 показаны эти идентификаторы (столбец PID) вместе с идентификаторами прерываний ядра (Core Interrupt ID, столбец CID). В столбце IVG показано привязка по умолчанию (после сброса) к группам прерываний, которые жестко привязаны к приоритетам.

Таблица 4-7. Состояние после сброса системы обработки прерываний от периферийных устройств.

Источник прерывания от периферийного устройства PID IVG CID
Прерывание пробуждения PLL 0 IVG7 0
Ошибка контроллера DMA 0 (обычная) 1
Ошибка PPI 2
Ошибка SPORT0 3
Ошибка SPORT1 4
Ошибка SPI0 5
Ошибка UART0 6
RTC (будильник, секунда, минута, час, обратный отсчет секунд) 7 IVG8 1
DMA0 (PPI) 8
DMA1 (прием SPORT0) 9 IVG9 2
DMA2 (передача SPORT0) 10
DMA3 (прием SPORT1) 11
DMA4 (передача SPORT1) 12
DMA5 (SPI0) 13 IVG10 3
DMA6 (прием UART0) 14
DMA7 (передача UART0) 15
Timer0 16 IVG11 4
Timer1 17
Timer2 18
Прерывание от GPIO A 19 IVG12 5
Прерывание от GPIO B 20
DMA8/9 (поток 0 пересылок DMA в памяти) 21 IVG13 6
DMA10/11 (поток 1 пересылок DMA в памяти) 22
Прерывание от сторожевого таймера программы 23
Ошибка контроллера DMA 1 (обычная) 24 IVG7 0
Ошибка SPORT2 25
Ошибка SPORT3 26
Ошибка SPI1 28
Ошибка SPI2 29
Ошибка UART1 30
Ошибка UART2 31
Ошибка CAN 32
DMA8 (прием SPORT2) 33 IVG9 2
DMA9 (передача SPORT2) 34
DMA10 (прием SPORT3) 35
DMA11 (передача SPORT3) 36
DMA12 37
DMA13 38
DMA14 (SPI1) 39 IVG10 3
DMA15 (SPI2) 40
DMA16 (прием UART1) 41
DMA17 (передача UART1) 42
DMA18 (прием UART2) 43
DMA19 (передача UART2) 44
TWI0 45 IVG11 4
TWI1 46
Прием CAN 47
Передача CAN 48
MDMA1 поток 0 (DMA в памяти) 49 IVG13 6
MDMA1 поток 0 (DMA в памяти) 50
Зарезервировано 51-63 - -

Core Interrupt ID. Идентификаторы прерываний ядра (Core Interrupt ID) используются в регистрах назначения прерываний (SIC_IARx).

[Контроллеры DMA]

В процессорах ADSP-BF538/ADSP-BF538F есть два независимых друг от друга контроллера прямого доступа к памяти (DMA1 и DMA0), которые поддерживают автоматические передачи данных с минимальным вмешательством ядра процессора. Передачи DMA могут происходить между внутренними областями памяти процессора и любым периферийным устройством, которое поддерживает DMA. Дополнительно передачи DMA могут происходить между любым периферийным устройством с поддержкой DMA и внешними устройствами, подключенными к внешним интерфейсам памяти, включая контроллер SDRAM и контроллер асинхронной памяти. DMA поддерживают порты SPORT, SPI, UART и PPI. Каждое такое периферийное устройство, поддерживающее DMA, имеет как минимум один выделенный канал DMA.

Контроллеры DMA поддерживают как одномерные (1-D), так и двухмерные (2-D) передачи DMA. Инициализация передачи DMA может быть реализована из регистров или из набора параметров, называемых блоками дескриптора.

2-D DMA поддерживает произвольные размеры строк и столбцов до 64K элементов на 64K элементов, и произвольные шаги строк и колонок до ±32K элементов. Кроме того, размер шага столбца может быть меньше, чем размер шага строки, что позволяет реализовать потоки данных с чередованием (interleaved data streams). Эта возможность особенно полезна в видеоприложениях, где на лету может удаляться чередование видеоданных (deinterleave).

Примеры типов поддерживаемых передач контроллером DMA включают:

• Одиночная передача линейного буфера с остановкой после завершения.
• Кольцевая передача с автообновлением буфера, с прерыванием по полному или частичному наполнению буфера.
• Передачи 1-D или 2-D с использованием привязанного списка дескрипторов.
• Передача 2-D с использованием массива дескрипторов, где указан только базовый адрес DMA внутри общей страницы.

В дополнение к выделенным каналам DMA для периферии есть также 4 канала DMA, предназначенные для передач между различными областями памяти систем на процессорах ADSP-BF538/ADSP-BF538F. Это позволяет передавать блоки данных между любыми видами памяти, включая внешнюю SDRAM, ROM, SRAM и память flash - с минимальным вмешательством ядра процессора. Передачи DMA в памяти могут управляться очень гибкой методологией, основанной на дескрипторах, или стандартным механизмом автобуферирования на базе регистров.

[Часы реального времени (RTC)]

Часы реального времени BF538 предоставляют удобный набор функций цифровых часов, включая получение текущего времени, секундомер и будильник. RTC тактируются от отдельного внешнего кварцевого резонатора на 32.768 кГц ("часовой" кварц). Аппаратура RTC имеет отдельный вывод для питания, так что часы могут получать питание и работать даже тогда, когда остальная часть процессора находится в режиме пониженного энергопотребления. RTC предоставляют несколько опций программируемых прерываний, включая прерывание каждую секунду, минуту, час или день, прерывание от считающего вниз секундомера (stopwatch) или прерывание от запрограммированного времени будильника.

Входная частота 32768 Гц делится прескалером вниз до 1 Гц. Часы состоят из 4 счетчиков: 60-секундный счетчик, 60-минутный счетчик, 24-часовой счетчик и счетчик дней, который может считать до 32768.

Когда разрешена функция будильника, то генерируется прерывание, когда выход таймера совпадет с запрограммированным значением в регистре управления будильником. Может быть два вида срабатывания будильника: первый по времени суток, второй по дню и времени суток.

Функция stopwatch-секундомера запускает считающий вниз счетчик начиная от запрограммированной величины, с разрешением в 1 секунду. Когда stopwatch разрешен и счетчик перевалит через 0, будет сгенерировано прерывание.

Как и другое периферийное устройство, RTC может разбудить процессор из режима сна (sleep mode) при генерации любого события пробуждения часов (RTC wake-up event). Дополнительно RTC может вывести процессор из режима глубокого сна (deep sleep mode), и разбудить встроенный в чип внутренний регулятор напряжения, когда он выключен и переведен в состояние гибернации (powered down hibernate state).

Подключение выводов RTXI и RTXO аппаратуры RTC к внешним компонентам показано на рис. 5.

BF538 RTC external components

Рис. 5. Подключение кварцевого резонатора к RTC.

Рекомендуемые компоненты: кварцевый резонатор ECLIPTEK EC38J (выводы для пайки в отверстия), конденсаторы C1=C2=22 пФ, R1=10 МОм.

Примечание: номиналы конденсаторов зависят от характеристик кварцевого резонатора X1 (см. даташит производителя кварца). Рекомендации даны с учетом паразитных емкостей платы 3 пФ.

[Сторожевой таймер (Wathdog)]

В процессорах ADSP-BF538/ADSP-BF538F есть 32-разрядный таймер, который можно использовать для реализации сторожевого таймера, следящего за выполнением программы (software watchdog). Эта стандартная функция может повысить рабочую доступность системы путем принудительного перевода процессора в заранее известное состояние генерацией аппаратного сброса, немаскируемого прерывания (NMI), или обычного прерывания, если таймаут таймера истек до того, как таймаут был сброшен программно. Программист инициализирует значение счетчика таймера, разрешает соответствующее прерывание, и разрешает работу сторожевого таймера. После этого таймер начнет аппаратный счет вниз, программное обеспечение должно заново загрузить значение в счетчик до того, как счетчик таймера обнулится. Обычно процедура установки встраивается в главный цикл функции main программы. Это защитит систему от попадание в неизвестное состояние из-за сбоя или зависания (по причине программной ошибки или импульса помехи). Если счетчик не будет переустановлен программой, то при истечении таймаута (когда обнулится счетчик сторожевого таймера) произойдет аппаратный сброс системы.

Сторожевой таймер тактируется от системной тактовой частоты (SCLK) на максимальной частоте fSCLK.

[Таймеры]

Имеется 4 программируемых таймера общего назначения. Три из этих таймеров имеют внешний вывод, который может быть сконфигурирован либо как широтно-импульсный модулятор (pulse-width modulator, PWM), либо как выход таймера, как тактовый вход таймера, или как механизм измерения длительности импульса и периодов внешних событий. Эти таймеры могут быть синхронизированы внешней тактовой частотой, поданной на ножку порта PF1 (TACLK), внешним тактовым входом PPI_CLK (TMRCLK), или от внутреннего тактового сигнала SCLK.

Узлы таймера могут использоваться совместно с UART0 для измерения длительности импульсов в потоке данных, что позволяет ввести функцию автоопределения скорости передачи последовательного канала связи.

Таймеры могут генерировать прерывания ядра процессора, предоставляя периодические события для синхронизации, либо тактирования внутри системы, либо для подсчета внешних сигналов.

В дополнение к этим 3 таймерам четвертый таймер тактируется от внутренней частоты процессора и обычно используется как системные тики для генерирования периодических прерываний в операционной системе (например, с целью поддержки переключения задач).

[SPORT]

Это универсальный последовательный порт, который может работать как интерфейс I2S. Имеет следующие возможности:

• Два независимых набора выводов для приема и передачи, позволяющих передавать 16 каналов стереофонического аудио I2S.
• Буферизированные (глубиной до 8) порты приема и передачи - каждый порт имеет регистр данных для передачи слов данных в другие процессоры и приема слов из других процессоров, и регистры сдвига для выдачи/приема данных через регистры данных.
• Тактирование - каждый порт приема и передачи может либо использовать внешние такты, либо генерировать свои, в диапазоне частот от fSCLK / 131070 Гц до fSCLK / 2 Гц.
• Длина слова - каждый SPORT компандирование A-law или μ-law в соответствии с ITU-рекомендацией G.711. Компандирование может быть выбрано на канале передачи и/или приема SPORT без внесения дополнительных задержек.
• Операции DMA с задержкой в 1 цикл - каждый SPORT может автоматически принимать или передавать несколько буферов памяти данных. Процессор может организовать цепочки передач между SPORT и памятью.
• Прерывания - каждый порт приема и передачи может генерировать прерывание по завершении передачи слова данных или после завершения передачи всего блока данных или буферов через DMA.
• Многоканальность - каждый SPORT поддерживает 128 выходных каналов из 1024 окон каналов и совместим со стандартами H.100, H.110, MVIP-90 и HMVIP.

[SPI]

В процессорах ADSP-BF538/ADSP-BF538F имеется 3 SPI-совместимых порта, позволяющих подключить различные устройства.

Интерфейс SPI использует 3 вывода для передачи данных: 2 для данных (master output-slave input, MOSIx, и master input-slave output, MISOx) и вывод тактов (serial clock, SCKx). Входной сигнал SPI chip select input (~SPIxSS) позволяет другим устройствам SPI выбрать процессор. Для SPI0 есть 7 выходов SPI chip select output (~SPI0SEL7..1), которые позволяют процессору выбирать другие устройства SPI. Каждый из портов SPI1 и SPI2 имеют по одному выходу SPI chip select output (~SPI1SEL1 и ~SPI2SEL1) для обмена точка-точка через SPI. Каждый из выводов выборки SPI реконфигурируются как порты GPIO. С использованием всех этих выводов порты SPI предоставляют полнодуплексный синхронный обмен данными, с поддержкой режимов master/slave, а также режима multimaster.

Скорость портов SPI и полярность/фаза тактов программируются, и у каждого SPI есть интегрированный контроллер DMA, конфигурируемый для поддержки потоков данных на передачу или прием. Каждый из контроллеров DMA SPI может обслуживать в каждый момент времени перемещение данных только в одном направлении (только передача или только прием).

Скорость бит SPI (частота тактов SCKx) вычисляется по формуле:

                      fSCLK
SPI Clock Rate = ---------------
                  2 * SPIx_BAUD

где 16-битный регистр SPIx_BAUD содержит значение от 2 до 65535.

[TWI]

Процессоры ADSP-BF538/ADSP-BF538F имеют 2 интерфейса TWI (сокращение от Two-Wire Interface, т. е. 2-проводный интерфейс), совместимых со стандартной шиной I2C компании Philips. Модули TWI предоставляют возможность одновременной работы как master и slave operation, поддерживают 7-битную адресацию на шине и арбитраж данных мультимедиа. Имеется также синхронизация тактов мастера и поддержка расширения пониженной тактовой частоты.

Для TWI используется 2 вывода: один для передачи тактов (SCLx), и другой для данных (SDAx). Поддерживаются протокол шины на скоростях до 400 kbps.

Выводы TWI совместимы с логическими уровнями 5V.

[UART]

В процессоры ADSP-BF538/ADSP-BF538F встроены 3 порта полнодуплексных универсальных приемо-передатчика (universal asynchronous receiver/transmitter, UART), которые по формату фрейма полностью совместимы со стандартным PC-совместимым UART (RS-232). Порты UART предоставляют упрощенный доступ к другим периферийным устройствам или хостам, с поддержкой полного дуплекса, DMA, через асинхронную передачу последовательных данных. Порты UART поддерживают фреймы с форматом от 5 до 8 бит данных, 1 или 2 стоп-бита, без бита четности или выбор четного или нечетного бита контроля данных (тип контроля четности none, even, или odd). Порты UART поддерживают 2 режима работы:

• PIO (программируемый I/O) – процессор посылает или принимает данные путем записи или чтения регистров UART, привязанных к пространству ввода/вывода (I/O mapped UART registers). Данные имеют двойную буферизацию на передачу и прием.

• DMA – контроллер DMA управляет пересылками как для передачи, так и для приема данных. Это уменьшает требуемое количество прерываний для пересылок данных между портом UART и памятью. Каждый UART имеет 2 выделенных канала DMA, один для передачи, другой для приема. Эти каналы DMA имеют по умолчанию приоритет меньше, чем большинство остальных каналов DMA, потому что здесь обычно используются относительно невысокие скорости обслуживания сервиса.

Для каждого порта UART программируются скорость данных (baud rate), формат фрейма, генерация кода ошибки и статуса, прерывания:

• Поддерживаются скорости в диапазоне от (fSCLK/1048576) до (fSCLK/16) бит в секунду.
• Поддерживаются форматы данных от 7 до 12 бит на фрейм (с учетом дополнительных служебных бит - стартовый и стоповый бит, биты четности).
• Операции и передачи, и приема можно сконфигурировать для генерации маскируемых прерываний.

Частота тактов каждого порта UART (что определяет скорость передачи данных) вычисляется по формуле:

                         fSCLK
UART Clock Rate = -------------------
                   16 * UART_Divisor

где 16-битный регистр UART_Divisor состоит из регистра UARTx_DLH (старшие 8 бит) и регистра UARTx_DLL (младшие 8 бит).

Вместе с общим функционалом таймеров для UART0 поддерживается автодетектирование скорости передачи. Возможности портов UART расширяются поддержкой протокола Infrared Data Association (IrDA®) стандарта Serial Infrared Physical Layer Link Specification (SIR).

[GPIO]

Порты ввода / вывода общего назначения GPIO процессоров ADSP-BF538/ADSP-BF538F распределены по 54 выводам корпуса. Большинство выводов GPIO мультиплексируются с периферийными устройствами (выводы периферийных устройств имеют альтернативную функцию как порты GPIO). Порты разделены на группы портов C, D, E и F, как это показано в таблице 4.

Таблица 4. Порты GPIO.

Периферийное устройство Альтернативная функция GPIO
PPI GPIO Port F15–3
SPORT2 GPIO Port E7–0
SPORT3 GPIO Port E15–8
SPI0 GPIO Port F7–0
SPI1 GPIO Port D4–0
SPI2 GPIO Port D9–5
UART1 GPIO Port D11–10
UART2 GPIO Port D13–12
CAN GPIO Port C1–0
GPIO GPIO Port C9–4(1)

Примечание (1): эти выводы работают только как GPIO, и их нельзя переконфигурировать программно. PC1 и PC4 имеют открытый сток, когда они сконфигурированы как порты-выходы GPIO.

[PPI]

С помощью параллельного периферийного интерфейса PPI можно напрямую подключать к процессору параллельные ADC и DAC, видео кодеры и декодеры и другие внешние периферийные устройства. PPI состоит из выделенного входа тактовой частоты, до 3 выводов синхронизации фрейма и до 16 выводов данных. Вход тактов поддерживает скорости передачи данных до fSCLK/2 МГц, и сигналы синхронизации могут быть сконфигурированы либо как входы, либо как выходы.

PPI поддерживает разные режимы работы общего назначения и режимы ITU-R 656. В режиме общего назначения PPI предоставляет полнодуплексные, двунаправленные передачи шириной до 16 бит данных. Предоставляется до 3 сигналов синхронизации Up. В режиме ITU-R 656 поддерживается полнодуплексные, двунаправленные передачи шириной 8 или 10 бит видеоданных. Дополнительно поддерживаются в чип декодирование встроенных в пакет преамбул начала строки (start-of-line (SOL) и начала кадра (start-of-field, SOF).

Режимы общего назначения PPI предназначены для широкого спектра приложений в области захвата и передачи данных. Доступно 3 подрежима:

• Режим ввода – синхронизация фрейма и данные являются входами PPI.
• Режим захвата фрейма – у PPI синхронизация фрейма выходы, но данные это входы.
• Режим вывода – и синхронизация фрейма, и данные являются выходами PPI.

Режим ввода (Input Mode). Режим ввода предназначен как для приложений ADC, так и для обмена видео с аппаратной сигнализацией. В упрощенной форме PPI_FS1 работает как вход внешней синхронизации фрейма, который управляет моментом чтения данных. PPI_DELAY MMR позволяет задать задержку (в циклах PPI_CLK) между приемом этой синхронизации фрейма и началом чтения данных. Количество входных выборок данных программируется пользователем, и задается содержимым регистра PPI_COUNT. PPI поддерживает форматы данных 8 и 10 бит через 16-битную шину данных, что программируется через регистр PPI_CONTROL.

Режим захвата фрейма (Frame Capture Mode). Frame capture mode позволяет источнику (источникам) видео работать как подчиненное устройство (например для захвата кадра). Процессоры ADSP-BF538/ADSP-BF538F управляют моментом, когда читать из видеоисточника (или источников). PPI_FS1 является выходным сигналом HSYNC, и PPI_FS2 является выходным сигналом VSYNC.

Режим вывода (Output Mode). Режим вывода используется для передачи видео или других данных с поддержкой до 3 выходных сигналов синхронизации фрейма. Обычно 1 сигнал синхронизации фрейма подходит для приложений преобразования данных, в то время как 2 или 3 сигнала синхронизации фрейма могут использоваться для передачи видео с аппаратной синхронизацией.

Режимы ITU-R 656 интерфейса PPI предназначены для широкого спектра приложений захвата видео, обработки и передачи.

Поддерживаются 3 разных подрежима:

• Active Video Only (только активное видео).
• Vertical Blanking Interval.
• Entire Field (режим полного кадра).

Active Video Only Mode. Режим только активного видео используется, когда интересует только поле активного видео, но не интервалы гашения. PPI не будет читать любые данные между символами преамбулы окончания активного видео (EAV) и начала активного видео (SAV), или любые данные, имеющиеся в интервале импульса вертикального гашения. В этом режиме управляющая последовательность байт не сохраняется в памяти, она отфильтровывается модулем PPI. После синхронизации для старта Кадра 1, модуль PPI игнорирует приходящие выборки, пока не увидит код SAV. Пользователь указывает количество строк активного видео на кадр (в регистре PPI_COUNT).

Vertical Blanking Interval Mode. В этом режиме PPI передает только данные интервала вертикального гашения (VBI).

Entire Field Mode. В этом режиме PPI читает весь приходящий поток бит. Это включает активное видео, последовательности управляющей преамбулы и вспомогательные данные, которые могут быть встроены в интервалы горизонтального и вертикального гашения (к примеру, это могут быть данные телетекста). Передача данных запустится немедленно после синхронизации Кадра 1.

[CAN]

Процессоры ADSP-BF538/ADSP-BF538F предоставляют контроллер CAN, который работает с протоколом шины Controller Area Network (CAN) V2.0B. Этот протокол асинхронного обмена, используемый в автомобилях и разных индустриальных и мобильных приложениях управления. CAN хорошо подходит для управления, потому что позволяет надежно обмениваться данными через сеть - в протокол встроена проверка CRC, отслеживание сообщений об ошибках и определение ошибочного узла.

Контроллер CAN базируется на RAM для 32 почтовых ящиках (mailbox, это термин шины CAN), и поддерживает формат сообщения как стандартных, так и расширенных идентификаторов (standard, extended identifier) ID, предусмотренных стандартом протокола CAN ревизии 2.0 часть B.

Каждый mailbox состоит из восьми 16-битных слов данных. Данные разделены на поля, которые включают идентификатор сообщения, метку времени, счетчик байт, до 8 байт данных и несколько битов управления. Каждый узел сети отслеживает сообщения, проходящие по сети. Если идентификатор в переданном сообщении совпадает с идентификатором одного из mailbox, то модуль знает, что сообщение предназначено для него, помещает данные в подходящий mailbox и прерыванием сигнализирует процессору о приходе сообщения.

Контроллер CAN может вывести процессор из режима сна генерацией события пробуждения (wake-up event), так что процессор может находиться в режиме низкого потребления энергии при ожидании сообщения. Дополнительно событие CAN wake-up может разбудить внутренний регулятор напряжения, встроенный в кристалл процессора, и этим вывести процессор из глубокого режима выключения (powered-down hibernate state).

Электрические характеристик каждого подключения к сети очень строгие, так что физическая реализация интерфейса CAN обычно делится на 2 части: контроллер и трансивер. Это дает возможность одному контроллеру поддерживать разные драйверы для разных сетей CAN. Модуль CAN процессоров ADSP-BF538/ADSP-BF538F предоставляет как раз часть контроллера. Наружу из модуля поступают сигналы I/O из одного выхода для передачи и одного входа для приема, которые подключаются к микросхеме трансивера шины CAN.

Такты CAN получаются от системной тактовой частоты процессора (SCLK) через программируемый делитель, так что дополнительный кварц не требуется.

[Динамическое управление питанием]

Процессоры ADSP-BF538/ADSP-BF538F предоставляют 4 рабочих режима, каждый со своим профилем, отличающимся по соотношению быстродействие/потребление энергии. Дополнительно предоставляется функция динамического управления питанием (dynamic power management), дающая возможность динамически менять напряжение питания ядра, чем можно еще больше снизить рассеиваемую мощность. Управление тактированием каждого периферийного устройства процессора также может дать экономию энергии. В таблице 5 см. общие данные по настройкам потребления мощности от источника питания.

Таблица 5. Настройки режима питания.

Режим PLL Пропуск PLL CCLK SCLK VDDINT
Полное включение Разрешена Нет Разрешена Разрешена Вкл
Активный Разрешена/запрещена Да Разрешена Разрешена Вкл
Сон Разрешена - Запрещена Разрешена Вкл
Глубокий сон Запрещена - Запрещена Запрещена Вкл
Hibernate Запрещена - Запрещена Запрещена Выкл

Примечание: в таблице PLL означает блок генерации тактовой частоты с помощью умножения и деления частоты кварца, CCLK означает Core Clock (частота ядра процессора), SCLK означает System Clock (частота системной шины процессора, применяется для тактирования периферии).

Режим полного включения (Full-On) - максимальное быстродействие. В этом режиме PLL разрешена, и не пропускается в обход, что дает возможность применить максимальную рабочую частоту тактов. Это рабочее состояние по умолчанию для включения, когда может быть достигнуто максимальное быстродействие. Ядро и все разрешенные периферийные устройства работают на полной скорости.

Активный режим (Active Operating Mode) - режим относительной экономии. В активном режиме PLL разрешена, но не задействована (пропускается). По этой причине частота CCLK и SCLK работают на частоте входных тактов (CLKIN). Доступ DMA работает для соответствующим образом сконфигурированной памяти L1.

В активном режиме можно запретить PLL через регистр управления PLL (PLL Control register, PLL_CTL). Если PLL запрещена, то она должна быть заново разрешена перед переходом в режим полного включения или в режим сна.

Режим сна (Sleep Operating Mode) - большое снижение динамического энергопотребления. Режим сна динамически снижает потребление путем запрета тактовой частоты ядра (CCLK). Однако PLL и системная частота (SCLK) остаются в этом режиме работающими. В таком режиме процессор выводится из режима сна обычно по внешнему событию или от RTC. В режиме сна событие пробуждения (wake-up event) разрешается в регистре SIC_IWRx, при этом процессор реагирует на значение бита BYPASS в регистре управления PLL (PLL_CTL). Если BYPASS запрещен, то процессор переходит в режим полного включения. Если BYPASS разрешен, то процессор перейдет в активный режим. В режиме сна не поддерживается системный доступ DMA к памяти L1.

Глубокий режим сна (Deep Sleep Operating Mode) - максимум снижения динамического энергопотребления. Режим глубокого сна максимально снижает динамическое потребления блокировкой тактов ядра (CCLK) и полностью тактов всей периферии (SCLK). Асинхронные периферийные устройства (т. е. тактируемые от отдельного источника), такие как RTC, все еще могут работать, но нельзя получить доступ к внутренним ресурсам или к внешней памяти. Из режима выключения можно выйти только по прерыванию сброса (reset interrupt, RESET), или от асинхронного прерывания, генерируемого RTC. В режиме глубокого сна асинхронное прерывание RTC приведет переход процессора в активный режим. Выставленный RESET в режиме глубокого сна переведет процессор в режим полного включения.

Состояние Hibernate - минимальное статическое потребление энергии. Состояние hibernate достигается запретом напряжения питания ядра, тактов ядра (CCLK) и тактов всех синхронных периферийных устройств (SCLK). Внутренний генератор напряжения для процессора может быть выключен записью b#00 в биты FREQ регистра VR_CTL. Это сразу запретит и CCLK, и SCLK. Также с запретом этих тактов устанавливается внутреннее напряжение питания (VDDINT) в 0V, что дает самую хорошую экономию энергии. Чтобы сохранить состояние процессора, любая критическая информация, хранящаяся внутри (содержимое памяти, регистров и другие данные), должна быть сохранена в энергонезависимой памяти до отключения питания.

Поскольку VDDEXT все еще поддерживается в состоянии отключенных тактов, все внешние выводы находятся в третьем состоянии, если не настроены как-то иначе. Это состояние позволяет другим устройствам, подключенным к процессору, все еще получать питание без утечки нежелательного тока.

Есть несколько методов пробуждения процессора. Модуль CAN может разбудить внутренний регулятор напряжения. Дополнительно вывод ~GPW может быть переведен в низкий лог. уровень любым внешним устройством. И наконец, регулятор можно также разбудить событием от RTC, или от подачи сигнала на вывод ~RESET. Все события пробуждения из состояния hibernate инициируют последовательность аппаратного сброса процессора. Отдельные источники разрешаются через регистр VR_CTL.

За исключением регистров VR_CTL и RTC, все внутренние регистры и области памяти теряют свое содержимое, когда процессор переходит в состояние hibernate. Переменные состояния системы могут храниться во внешнем SRAM или SDRAM. Бит SCKELOW в регистре VR_CTL означает, что было пробуждение из состояния hibernate без разрушения самостоятельно обновляющегося SDRAM, если здесь также есть внешний резистор pulldown на выводе SCKE.

Экономия потребления энергии. Как показано в таблице 6, процессоры ADSP-BF538/ADSP-BF538F поддерживают три различных домена питания. Использование нескольких доменов питания повышает гибкость, позволяя обеспечить совместимость с различными индустриальными стандартами и соглашениями. Домен питания 3.3V VDDRTC питает RTC I/O и логику RTC, что позволяет RTC остаться в работе, когда остальная часть чипа выключена и не получает питание. Домен питания 1.25V VDDINT поставляет мощность на всю внутреннюю логику, за исключением логики RTC. Домен питания 3.3V VDDEXT дает питание на все узлы I/O, за исключением генератора кварца RTC. Для различных доменов питания нет специальных требований по последовательности включения.

Таблица 6. Домены питания.

Домен питания Цепь
Логика RTC, генератор RTC VDDRTC
Вся внешняя логика, за исключением RTC VDDINT
Весь I/O, за исключением RTC VDDEXT

VDDRTC должно быть либо подключено к внешней батарее (если RTC работает, когда остальная часть чипа выключена) или должно быть подключено к шине питания VDDEXT платы системы. VDDRTC должно получать питание в состоянии hibernate процессора, и также все равно должно получать питание, даже если RTC не используется в приложении.

Рассеиваемая процессором мощность - большая функция от тактовой частоты процессора и квадрата рабочего напряжения. Например, уменьшение тактовой частоты на 25% снизит на 25% динамическое энергопотребление, в то время как снижение напряжения на 25% снизит динамическое энергопотребление больше чем на 40%. Кроме того, снижение потребление складывается, так что если снизить вместе тактовую частоту и напряжение питания, то динамическое энергопотребление может упасть драматически.

Функция динамического управления питанием процессора позволяет динамически управлять и входным напряжением (VDDINT), и тактовой частотой (fCCLK).

Экономию рассеиваемой мощности можно смоделировать с использованием фактора экономии энергии (power savings factor).

Фактор экономии энергии вычисляется по формуле:

Power Savings Factor = (fCCLKRED/fCCLKNOM) * (VDDINTRED/VDDINTNOM)2 * (tRED/tNOM),

где:

fCCLKNOM номинальная частота тактов ядра.
fCCLKRED уменьшенная частота тактов ядра.
VDDINTNOM номинальное внутреннее напряжение питания.
VDDINTRED сниженное внутреннее напряжение питания.
tNOM длительность работы на частоте fCCLKNOM.
tRED длительность работы на частоте fCCLKRED.

Экономия в процентах составит:

% Power Savings = (1 – Power Savings Factor) * 100%

[Регулирование напряжения]

Процессоры BF538 имеют встроенный в кристалл регулятор напряжения, позволяющий динамически (программно) управлять энергопотреблением. Напряжение питания ядра может меняться в определенном диапазоне, и отличаться от напряжения питания внешних шин VDDEXT (см. раздел Условия работоспособности для допусков регулировки и допустимых диапазонах VDDEXT для разных моделей). При необходимости встроенный регулятор напряжения может не использоваться (тогда требуется внешний регулятор напряжения).

BF538 voltage regulator circuit

Рис. 6. Схема регулятора напряжения.

Регулятор управляет уровнями напряжения питания внутренней логики, и программируется через регистр управления регулятора напряжения (voltage regulator control register, VR_CTL) с инкрементом в 50 mV. Для уменьшения потребления в режиме приостановки (standby) внутренний регулятор может быть запрограммирован для снятия мощности с ядра процессора при сохранении питания на узлах I/O (VDDRTC, VDDEXT). Во время состояния hibernate питание для I/O все еще подключено, что избавляет от необходимости дополнительной внешней буферизации. Регулятор напряжения можно активировать (выведя его из выключенного состояния) либо через RTC wake-up, либо CAN wake-up, либо general-purpose wake-up, либо выставлением сигнала ~RESET - все это приведет к началу последовательности загрузки (boot sequence). Регулятор может быть также запрещен и отключен, в этом случае нужен какой-то внешний источник питания.

Размещение внешних компонентов регулятора, развязывающих конденсаторов, разводка платы - это все играет решающее значение для снижения распространения шума в аналоговые цепи чипа. Проводники VROUT1–0 и внешние компоненты регулятора напряжения при разводке платы должны считаться источниками помех (импульсных токов), так что они не должны быть разведены или размещены близко к чувствительным схемам или компонентам на печатной плате. Все внутренние и источники питания и источник питания I/O должны иметь надежную фильтрацию развязывающими конденсаторами, размещенными максимально близко к корпусу процессоров ADSPBF538/ADSP-BF538F.

Дополнительную информацию по встроенному регулятору напряжения и связанными с этим замечаниями по разводке платы см. в руководстве Switching Regulator Design Considerations for ADSP-BF533 Blackfin Processor (EE-228) site:analog.com (можно использовать поиск строки EE-228 на сайте analog.com).

[Сигналы тактирования]

Процессоры ADSP-BF538/ADSP-BF538F могут получать тактирования от внешнего кварцевого резонатора, входа синусоидального сигнала или от буферизированного прямоугольного сигнала от внешнего тактового генератора.

Если используются внешние такты, то этот сигнал должен иметь TTL-совместимые уровни, не должен приостанавливаться, менять свою частоту и фазу при нормальной работе. Этот внешний тактовый сигнал подключается к выводу процессора CLKIN. Когда используется внешний тактовый сигнал, вывод XTAL должен оставаться не подключенным.

Альтернативно, поскольку процессоры ADSP-BF538/ADSP-BF538F содержат встроенную схему генератора, может использоваться внешний кварцевый резонатор (пример основной схемы включения см. на рис. 7). Кварц с нужной основной частотой параллельного резонанса (предназначенный для работы с микроконтроллерами) подключается между выводами CLKIN и XTAL. Внутреннее сопротивление между выводами CLKIN и XTAL примерно 500 кОм. Добавление дополнительных параллельных резисторов обычно не рекомендуется. Два конденсатора и последовательно подключенный резистор, показанные на рис. 7, хороши для настройки фазы и амплитуды синусоидального сигнала. На рис. 7 даны только типичные номиналы конденсаторов и резисторов. Значение емкости конденсаторов зависит от нагрузочных рекомендаций производителя кварцевого резонатора и физической разводки печатной платы системы. Значение резистора зависит от уровня выходного сигнала, указанного производителем кварца. Разработчики систем должны тщательно подстроить значения, базируясь на исследовании нескольких устройств в нужном диапазоне температур.

Кристаллы с третьей гармоникой могут использоваться на частотах выше 25 МГц. Схема, модифицированная под третью гармонику кварца, показана в правой части рис. 7 (дополнительные индуктивность и конденсатор).

BF538 external crystal connections

Рис. 7. Подключение внешнего кварцевого резонатора.

Примечание: номиналы, помеченные *, должны быть подстроены в зависимости от применяемого кристалла и разводки печатной платы. Однако на практике многие на это обычно забивают.

Как показано на рис. 8, тактовая частота ядра (CCLK) и системная тактовая частота периферии (SCLK) получается из входной частоты (CLKIN). Встроенная в кристалл система PLL может умножать сигнал CLKIN на программируемый пользователем коэффициент от 0.5 до 64 (ограничено минимальной и максимальной частотой VCO). Множитель по умолчанию 10, однако это можно поменять программно. На лету частота меняется простой записью регистра PLL_DIV.

BF538 clock frequency modification methods

Рис. 8. Методы модификации частоты.

Примечание: условия для CCLK и SCLK: SCLK = CCLK и SCLK = 133 МГц.

Все встроенные в чип процессора периферийные устройства тактируются от системной частоты (SCLK). Системная тактовая частота программируется значениями битов SSEL3–0 регистра PLL_DIV. Значение, программируемое в поле SSEL, задает соотношение между выходом PLL (VCO) и системной тактовой частотой. Значения делителя SCLK от 1 до 15. В таблице 7 показаны типичные соотношения системной тактовой частоты.

Таблица 7. Пример соотношения системной тактовой частоты.

SSEL3-0
VCO/SCLK
Пример соотношений частот (МГц)
VCO SCLK
0001 1:1 100 100
0110 6:1 300 50
1010 10:1 500 50

Обратите внимание, что коэффициент делителя должен быть выбран так, чтобы ограничить системную тактовую частоту максимальным значением, допустимым для fSCLK. Значение SSEL можно поменять динамически без какой-либо задержки захвата PLL путем записи соответствующих значений в регистр делителя PLL (PLL_DIV).

Имейте в виду, что когда изменено значение SSEL, это повлияет на все периферийные устройства, которые получают свои тактовые сигналы из сигнала SCLK.

Тактовая частота ядра (CCLK) может быть также динамически изменена значениями бит CSEL1–0 регистра PLL_DIV. Поддерживаемые коэффициенты деления 1, 2, 4 и 8, как это показано в таблице 8. Эта программируемая возможность полезна для быстрых модификаций частоты ядра.

Таблица 8. Соотношения частоты тактов.

CSEL1-0
VCO/SCLK
Пример соотношений частот (МГц)
VCO CCLK
00 1:1 300 300
01 2:1 300 150
10 4:1 500 125
11 8:1 200 25

У процессоров ADSP-BF538/ADSP-BF538F есть 3 механизма (перечисленные в таблице 9) для автоматической загрузки внутренней памяти инструкций L1 после сброса. Четвертый метод предназначен для выполнения из внешней памяти, пропуская при этом последовательность загрузки.

Таблица 9. Режимы загрузки.

BMODE1-0
Описание
00 Выполнение из внешней 16-битной памяти (пропуск Boot ROM).
01 Загрузка из внешней 8-битной или 16-битной FLASH (ADSP-BF538 или ADSP-BF538F), либо загрузка из встроенную в корпус FLASH (только у ADSP-BF538F).
10 Загрузка от мастера SPI (другого микроконтроллера), подключенного к SPI0.
11 Загрузка из подчиненного устройства SPI, подключенного к SPI0. Это микросхемы EEPROM/FLASH с 8-, 16- или 24-битным диапазоном адреса, или Atmel Serial Flash AT45DB041, AT45DB081, или AT45DB161.

Выводы BMODE регистра конфигурации сброса считываются в момент сброса при включении питания и при сбросе, инициированном программно. При этом могут быть выбраны следующие режимы загрузки:

• Выполнение кода из внешней 16-разрядной памяти - выполнение начинается с адреса 0x2000 0000 с 16-битной упаковкой. В этом режиме boot ROM не активно (пропускается). Все настройки конфигурации устанавливаются для самого медленного устройства, которое возможно (3 цикла время удержания; 15 циклов время доступа на чтение/запись; 4 цикла предустановка).

• Загрузка из 8- или 16-разрядной внешней памяти flash - 8-битная подпрограмма загрузки flash, размещенная в пространстве boot ROM устанавливает использование асинхронного банка памяти 0. Для процессоров ADSP-BF538F при этом будет использоваться встроенная в корпус память, если вход ~FCE подключен к выходу ~AMS0. Все конфигурационные настройки устанавливаются в расчете на самое медленное устройство памяти (3 цикла время удержания; 15 циклов время доступа на чтение/запись; 4 цикла предустановка).

• Загрузка под управлением внешнего хоста SPI, подключенного к SPI0 - процессор Blackfin работает в подчиненном режиме SPI, и сконфигурирован для приема байт файла LDR от хоста SPI (мастера шины). Чтобы удержать устройство хоста от передачи, когда boot ROM занято, процессор Blackfin выставляет вывод GPIO, который называется сигнал ожидания хоста (host wait, HWAIT), чтобы подать сигнал хосту, что пока не нужно больше посылать байты, пока флаг занятости не будет снят. Флаг выбирается пользователем, и эта информация задается для процессора Blackfin через биты 10:5 заголовка FLAG образа LDR.

• Загрузка из внешней SPI EEPROM/flash (с 8-, 16- или 24-битовым адресом, или микросхемы Atmel AT45DB041, AT45DB081 или AT45DB161), подключенной к SPI0. SPI0 использует вывод PF2 для выбора одного устройства SPI EEPROM/flash, предоставляет команду чтения и последующие байты адреса (0x00), пока не будет определено допустимое допустимое 8-, 16- или 24-битное адресуемое устройство или устройство Atmel, и начинает тактировать данные для загрузки их в процессор, начиная с памяти инструкций L1.

Для каждого режима загрузки из внешней памяти сначала читается 10-байтный заголовок. Заголовок указывает количество байт, которое нужно передать, и адрес назначения в памяти. При загрузке в любой последовательности может быть загружено несколько блоков памяти. Как только все блоки загружены, выполнение программы начинается с первой инструкции памяти L1 SRAM.

Дополнительно бит 4 регистра конфигурации сброса может быть установлен кодом приложения, чтобы пропустить обычную процедуру загрузки при инициировании программного сброса. В этом случае процессор перескочит прямо в начало памяти инструкций L1.

Чтобы увеличить возможные режимы загрузки, предоставляется дополнительный загрузчик программы, который добавляет механизмы загрузки. Этот вторичный загрузчик предоставляет возможность загрузиться из 16-битной памяти FLASH, быстрой FLASH, с переменной скоростью передачи данных, и из других источников. Во всех режимах загрузки, за исключением пропуска (boot ROM), выполнение программы начинается со встроенной в кристалл памяти L1 по адресу 0xFFA0 0000.

[Обзор набора команд]

Язык ассемблера семейства процессоров Blackfin имеет набор инструкций с алгебраическим синтаксисом. Это реализовано для упрощения кодирования и улучшения читаемости. Инструкции специально подстроены для предоставления гибкого, плотного кодирования, которое дает в результате компиляции очень малый размер кода. Набор инструкций также предоставляет многофункциональный набор команд, позволяющий программисту использовать множество ресурсов процессора в одной инструкции. В соединении с многими функциями, которые часто встречаются в системе команд микроконтроллеров, этот набор инструкций очень эффективен при компиляции с исходного кода на языке C и C++. Дополнительно архитектура поддерживает как режим пользователя (код приложения, определяющий общий алгоритм), так и режим супервизора (ядро операционной системы, драйверы устройств, отладчики, обработка прерываний), что распределяет доступ к ресурсам процессора по различным уровням кода.

Язык ассемблера дает доступ к уникальным особенностям процессора, предоставляя следующие возможности:

• Эффективно интегрированные друг с другом особенности DSP/CPU, оптимизированные для 8- и 16-разрядных операций.
• Модифицированная Гарвардская архитектура с поддержкой двух 16-битных MAC или четырех 8-битных ALU плюс два действия по загрузке/сохранению плюс два обновления указателя - все это за один цикл ядра.
• Все регистры, I/O, память сведены в унифицированное пространство адресов размером 4 гигабайта, предоставляя упрощенную модель программирования.
• Функции микроконтроллера, такие как манипуляция произвольными битами и битовыми полями, вставка, распаковка; целочисленные операции с 8-, 16- и 32-битными типами данных; разделение указателей стека режима пользователя и режима супервизора.
• Улучшение плотности кода, которое включает смесь 16- и 32-битных инструкций (без переключения режима, без разделения кода). Часто используемые инструкции закодированы 16 битами.

[Средства разработки]

Компания Analog Devices поставляет свои процессоры с полной линейкой аппаратного и программного обеспечения (дико дорогого). Средства разработки включают CrossCore® Embedded Studio и/или VisualDSP++®, оценочные версии программного обеспечения, эмуляторы и широкий спектр дополнительных программных утилит.

Интегрированные среды для разработки (IDE). Для кодирования на языке C/C++, генерации кода и поддержки отладки компания Analog Devices предоставляет 2 системы IDE.

CrossCore Embedded Studio. Это самая новая среда разработки, основанная на фреймворке EclipseTM. Поддерживается большинство семейств процессоров Analog Devices, и это IDE будет выбрана для процессоров, которые появятся в будущем, включая многоядерные процессоры. В среде CrossCore Embedded Studio эффективно интегрируется друг с другом все доступное программное обеспечение, включая поддержку операционных систем реального времени, файловые системы, стеки TCP/IP, стеки USB, алгоритмические программные модули, пакеты поддержки оценочных плат разработчика. Процессоры серии Blackfin поддерживаются набором инструментария Analog Devices CROSSCORE®, который является лидером среди индустриальных систем разработки. В CROSSCORE входит IDE VisualDSP++®, отладочные наборы EZ-KIT Lite®, дочерние платы EZ-Extender™ и эмуляторы на основе плат PCI или подключения через USB.

Компания Analog Devices предоставляет программные дополнения, которые эффективно интегрированы в CrossCore Embedded Studio для расширения возможностей среды IDE и уменьшения времени разработки. Дополнения включают пакеты поддержки плат (board support packages, BSP) для оценочных плат разработчика, различные пакеты кода от сторонних разработчиков и алгоритмические модули. Документация, система помощи, диалоги конфигурации и примеры кода - все это есть в дополнениях, что можно просмотреть в среде CrossCore Embedded Studio IDE, как только соответствующее дополнение установлено.

VisualDSP++. Эту среду разработки компания Analog Devices забросила, по крайней мере новые процессоры в ней больше поддерживаться не будут. Поддерживаются семейства процессоров, которые были представлены до появления CrossCore Embedded Studio. В среду разработки VisualDSP++ добавлена библиотека VDK разработки Analog Devices, где реализована операционная система реального времени и стек TCP/IP с открытым исходным кодом.

За дополнительной информацией по средам разработки CrossCore Embedded Studio и VisualDSP++ обращайтесь на сайт analog.com.

Green Hills® Software.

EZ-KIT Lite Evaluation Board. Для оценки возможностей процессоров компанией Analog Devices предоставляет широкий диапазон плат разработчика EZ-KIT Lite®. Включая процессор и ключевую периферию, оценочная плата также поддерживают встроенные в чип возможности эмуляции и другие функции для разработки. Также доступны различные расширители (EZ-Extenders®), которые дают дополнительный специализированный функционал, включая обработку аудио и видео. Для дополнительной информации обратитесь на сайт www.analog.com и ищите по ключевым словам "ezkit" или "ezextender".

Киты EZ-KIT Lite Evaluation. Эффективный по цене способ изучить разработку на процессорах Analog Devices, компания Analog Devices предоставляет различные киты разработчика EZKIT Lite. Каждый кит включает оценочную плату EZ-KIT Lite, инструкции для загрузки оценочный версии доступных IDE, кабель USB и источник питания. Контроллер USB на плате EZ-KIT подключается к порту USB компьютера пользователя, позволяя выбранной среде IDE эмулировать установленный на плате процессор прямо в готовом устройстве. Это дает пользователю возможность загрузить, запустить и отладить программы для систем на ките EZ-KIT Lite. Это также поддерживает внутрисхемное программирование установленной на плате памяти FLASH, куда можно сохранить пользовательский загрузочный код, и позволить создать автономно работающую систему. Вместе с установленной полной версией Cross-Core Embedded Studio или VisualDSP++ (продаются отдельно) инженеры могут разработать программное обеспечение для поддерживаемых EZKIT-ов или любой системы, где применены процессоры компании Analog Devices.

Пакеты поддержки оценочных плат. Программная поддержка оценочных плат EZ-KIT Lite и дочерних карт EZExtender встроена в программные добавления, так называемые пакеты поддержки плат (Board Support Packages, BSP). Пакеты BSP содержат требуемые драйверы, указания к релизу, выбранный пример кода для имеющегося оценочной аппаратуры. Ссылка для загрузки определенного пакета BSP находится на web-странице поддержки для связанного EZ-KIT или EZExtender. Ссылка находится в области Product Download на странице продуктов компании.

Программные библиотеки сторонних разработчиков. Analog Devices отдельно предоставляет рекомендуемые дополнения из других источников, такие как операционные системы реального времени, файловые системы, стеки USB и TCP/IP. Дополнительную информацию ищите на следующих web-страницах:

• www.analog.com/ucos3
• www.analog.com/ucfs
• www.analog.com/ucusbd
• www.analog.com/lwip

Алгоритмические модули. Для ускорения разработки Analog Devices предоставляет дополнения, выполняющие популярные алгоритмы обработки аудио и видео. Они доступны и для CrossCore Embedded Studio, и для VisualDSP++. Дополнительную информацию ищите на сайте analog.com (строки для поиска Blackfin software modules site:analog.com или SHARC software modules site:analog.com).

Разработка совместимых с эмулятором плат DSP Board (Target). Для тестирования и отладки встраиваемых систем компания Analog Devices предоставляет семейство эмуляторов. На каждом JTAG DSP имеется совместимый со стандартом IEEE 1149.1 порт отладки JTAG Test Access Port (TAP). Эмуляция в системе упрощается с использованием этого интерфейса JTAG. Эмулятор получает доступ к внутренним функциям процессора через TAP процессора, что позволяет разработчику загрузить код, установить точки останова (breakpoint), просмотреть значение переменных, областей памяти, содержимое регистров. Процессор должен быть приостановлен, чтобы послать данные и команды, однако как только эмулятор завершил свою операцию, система DSP устанавливается для запуска на полной скорости, без влияния на время выполнения кода в системе (т. е. эмулятор никак не влияет на выполнение кода в реальном времени). Эмуляторы требуют наличия на целевой плате коннектора, который поддерживает соединение эмулятора с портом JTAG процессора DSP.

Подробные указания по разработке платы для отладки (включая рекомендации по механическому размещению коннектора, соединений с одним процессором, буферизацию и терминирование сигналов, логику работы эмулятора) и обсуждение связанные с этим проблем см. в даташите Engineer-to-Engineer Note "Analog Devices JTAG Emulation Technical Reference" (EE-68) на сайте Analog Devices (используйте поиск по ключевому слову EE-68). Этот документ регулярно обновляется для поддержки улучшений работы с эмулятором.

Все аппаратные средства отладки подключаются через интерфейс JTAG, и позволяют производить полнофункциональную отладку.

ADZS-ICE-100B. Удешевленная версия эмулятора, поддерживающая только процессоры Blackfin. Может работать совместно с IDE VisualDSP.

ADZS ICE 100B

ADZS-ICE-1000. Выглядит почти так же, как и ICE-100. Недорогой (по меркам Analog Devices) отладчик JTAG, подключаемый через USB. На сайте Analog Devices предлагаемая цена этого отладчика $150 (строка для поиска ADZS-ICE-1000 Low Cost USB-based JTAG Emulator site:analog.com).

ADZS 1000 IMG 2652 ADZS 1000 IMG 2659
ADZS 1000 IMG 2660 ADZS 1000 IMG 2668

ADZS-ICE-2000. Дорогой, высокоскоростной отладчик также подключаемый к отлаживаемому устройству через JTAG, а к компьютеру через USB. Стоит на сайте Analog Devices $1495 (строка для поиска ADZS-ICE-2000 High Performance USB-based JTAG Emulator site:analog.com).

ADZS ICE 2000

ADZS-HPUSB-ICE. Насколько я понял, это устаревшая версия отладчика, по крайней мере цену на сайте Analog Devices не нашел (строка для поиска HPUSB-ICE USB-Based Emulator site:analog.com).

ADZS HPUSB ICE

gnICE. Построен на основе чипа FT2232D, не работает с VisualDSP.

gnICE

gnICE+. Построен на основе чипа FT2232H, отличается повышенной скоростью работы. Не совместим с VisualDSP.

gnICE plus v11 top gnICE plus v11 bottom

gnICE site:blackfin.uclinux.org

[Описание внешних выводов]

Все выводы после сброса находятся в третьем состоянии (высокое сопротивление, отключено), за исключением выводов интерфейса памяти, управления асинхронной памятью, управления синхронной памятью. Все эти выводы переводятся в состояние лог. 1, за исключением CLKOUT, который переключается с частотой системной шины. Если сигнал ~BR активен (вне зависимости, установлен или нет сигнал ~RESET), то выводы управления памятью также находятся в третьем состоянии. У всех не используемых выводов I/O входные буферы запрещены, за исключением выводов, которые требуют pull-up или pull-down, как это отражено в таблице 10. В состоянии hibernate все выводы находятся в третьем состоянии за исключением тех, о которых говорится в таблице 10.

Чтобы сохранить максимальный функционал и уменьшить размер корпуса и количество выводов, некоторые выводы имеют двойное, мультиплицируемое назначение. В случаях, когда назначение выводов переконфигурируется, состояние по умолчанию показано в таблице обычным текстом, а альтернативная функциональность показана наклонным шрифтом.

Таблица 10. Описание выводов процессора BF538.

Имя вывода I/O Функция DRV(1)
Интерфейс памяти
ADDR19-1

O

Шина адреса для асинхронного/синхронного доступа.
 
A
DATA15-0 I/O Шина данных для асинхронного/синхронного доступа. A
~ABE1-0/SDQM1-0 O Сигналы разрешения байта/маски данных для асинхронного/синхронного доступа. A
~BR I Bus Request (запрос шины). Этот вывод должен быть притянут к лог. 1, когда не используется.  
~BG O Bus Grant (допуск к шине). A
~BGH O Bus Grant Hang (предоставление доступа к шине подвешено). A
Упр. асинхр. памятью
~AMS3-0


O


Bank Select (выбор банка). Требуются pull-up если используется hibernate.

A

ARDY I Hardware Ready Control (управление аппаратной готовностью).  
~AOE O Output Enable (разрешить выход). A
~ARE O Read Enable (разрешение чтения). A
~AWE O Write Enable (разрешение записи). A
Упр. памятью FLASH
~FCE

I

Flash Enable (в BF538 внутри замкнут на GND).
 
~FRESET I Flash Reset (в BF538 внутри замкнут на GND).  
Упр. синхр. памятью
~SRAS

O

Строб адреса строки.

A
~SCAS O Строб адреса столбца. A
~SWE O Write Enable (разрешение записи). A
SCKE O Разрешить тактирование. Этот вывод должен быть подтянут к GND через pull-down резистор 10 кОм, если используется состояние hibernate, и содержимое SDRAM должно быть сохранено в состоянии hibernate. A
CLKOUT O Вывод тактов. B
SA10 O Разряд адреса A10. A
~SMS O Выбор банка. A
Таймеры
TMR0

I/O

Timer 0.

C
TMR1/PPI_FS1 I/O Timer 1/PPI Frame Sync1. C
TMR2/PPI_FS2 I/O Timer 2/PPI Frame Sync2. C
TWI (I2C)
SDA0


I/O 5V
Последовательные данные TWI0. E
SCL0 I/O 5V Такты TWI0. E
SDA1 I/O 5V Последовательные данные TWI1. E
SCL1 I/O 5V Такты TWI1. E
Serial Port0 (SPORT0)
RSCLK0

I/O

Такты приема.

D
RFS0 I/O Синхронизация фрейма приема. C
DR0PRI I Primary-канал приема данных.  
DR0SEC I Secondary-канал приема данных.  
TSCLK0 I/O Такты передачи. D
TFS0 I/O Синхронизация фрейма передачи. C
DT0PRI O Primary-канал передачи данных. C
DT0SEC O Secondary-канал передачи данных. C
Serial Port1 (SPORT1)
RSCLK1

I/O

Такты приема.

D
RFS1 I/O Синхронизация фрейма приема. C
DR1PRI I Primary-канал приема данных.  
DR1SEC I Secondary-канал приема данных.  
TSCLK1 I/O Такты передачи. D
TFS1 I/O Синхронизация фрейма передачи. C
DT1PRI O Primary-канал передачи данных. C
DT1SEC O Secondary-канал передачи данных. C
SPI0
MOSI0

I/O

Выход мастера, вход подчиненного устройства.

C
MISO0 I/O Вход мастера, выход подчиненного устройства. C
SCK0 I/O Такты. D
UART0
RX0

I

Прием данных.
 
TX0 O Передача данных. C
PPI
PPI3-0

I/O

PPI3-0 (данные).

C
PPI_CLK/TMRCLK I Такты PPI/внешняя опорная частота для таймера.  
Порт C: CAN, GPIO
CANTX/PC0


I/O 5V
Передача CAN/GPIO. C
CANRX/PC1 I/O 5V Прием CAN/GPIO. C2
PC[9-5] I/O GPIO C
PC4 I/O 5V GPIO C2
Порт D: SPI1-2, UART1-2, GPIO
MOSI1/PD0


I/O


Выход мастера, вход подчиненного устройства SPI1/GPIO.


C
MISO1/PD1 I/O Вход мастера, выход подчиненного устройства SPI1/GPIO. C
SCK1/PD2 I/O Такты SPI1/GPIO. D
~SPI1SS/PD3 I/O Вход выборки подчиненного устройства SPI1/GPIO. D
~SPI1SEL/PD4 I/O Разрешение выборки подчиненного устройства SPI1/GPIO. D
MOSI2/PD5 I/O Выход мастера, вход подчиненного устройства SPI2/GPIO. C
MISO2/PD6 I/O Вход мастера, выход подчиненного устройства SPI2/GPIO. C
SCK2/PD7 I/O Такты SPI2/GPIO. D
~SPI2SS/PD8 I/O Вход выборки подчиненного устройства SPI2/GPIO. D
~SPI2SEL1/PD9 I/O Разрешение выборки подчиненного устройства SPI2/GPIO. D
RX1/PD10 I/O Прием UART1/GPIO. D
TX1/PD11 I/O Передача UART1/GPIO. D
RX2/PD12 I/O Прием UART2/GPIO. D
TX2/PD13 I/O Передача UART2/GPIO. D
Порт E: SPORT2-3, GPIO
RSCLK2/PE0


I/O


Такты приема SPORT2/GPIO.


D
RFS2/PE1 I/O Синхронизация фрейма приема SPORT2/GPIO. C
DR2PRI/PE2 I/O Primary-канал приема данных SPORT2/GPIO. C
DR2SEC/PE3 I/O Secondary-канал приема данных SPORT2/GPIO. C
TSCLK2/PE4 I/O Такты передачи SPORT2/GPIO. D
TFS2/PE5 I/O Синхронизация фрейма передачи SPORT2/GPIO. C
DT2PRI/PE6 I/O Primary-канал передачи данных SPORT2/GPIO. C
DT2SEC/PE7 I/O Secondary-канал передачи данных SPORT2/GPIO. C
RSCLK3/PE8 I/O Такты приема SPORT3/GPIO. D
RFS3/PE9 I/O Синхронизация фрейма приема SPORT3/GPIO. C
DR3PRI/PE10 I/O Primary-канал приема данных SPORT3/GPIO. C
DR3SEC/PE11 I/O Secondary-канал приема данных SPORT3/GPIO. C
TSCLK3/PE12 I/O Такты передачи SPORT3/GPIO. D
TFS3/PE13 I/O Синхронизация фрейма передачи SPORT3/GPIO. C
DT3PRI/PE14 I/O Primary-канал передачи данных SPORT3/GPIO. C
DT3SEC/PE15 I/O Secondary-канал передачи данных SPORT3/GPIO. C
Порт F: GPIO, PPI, SPI0, таймеры
PF0/~SPI0SS


I/O


GPIO/вход выборки подчиненного устройства SPI0.


C
PF1/~SPI0SEL1/TACLK I/O GPIO/разрешение выборки 1 подчиненного устройства SPI0/альтернативный вход тактов таймера. C
PF2/~SPI0SEL2 I/O GPIO/разрешение выборки 2 починенного устройства. C
PF3/PPI_FS3/~SPI0SEL3 I/O GPIO/PPI синхронизация фрейма 3/разрешение выборки 3 подчиненного устройства SPI0. C
PF4/PPI15/~SPI0SEL4 I/O GPIO/PPI15/разрешение выборки 4 подчиненного устройства SPI0. C
PF5/PPI14/~SPI0SEL5 I/O GPIO/PPI14/разрешение выборки 5 подчиненного устройства SPI0. C
PF6/PPI13/~SPI0SEL6 I/O GPIO/PPI13/разрешение выборки 6 подчиненного устройства SPI0. C
PF7/PPI12/~SPI0SEL7 I/O GPIO/PPI12/разрешение выборки 7 подчиненного устройства SPI0. C
PF8/PPI11 I/O GPIO/PPI11 C
PF9/PPI10 I/O GPIO/PPI10 C
PF10/PPI9 I/O GPIO/PPI9 C
PF11/PPI8 I/O GPIO/PPI8 C
PF12/PPI7 I/O GPIO/PPI7 C
PF13/PPI6 I/O GPIO/PPI6 C
PF14/PPI5 I/O GPIO/PPI5 C
PF15/PPI4 I/O GPIO/PPI4 C
RTC
RTXI


I


Кварц, вход тактового генератора (этот вывод должен быть притянут к GND, если не используется).
 
RTXO O Кварц, выход тактового генератора (в режиме hibernate не переходит в третье состояние).  
JTAG
TCK

I

Такты.
 
TDO O Выход данных. С
TDI I Вход данных.  
TMS I Выбор режима JTAG.  
~TRST I Сброс JTAG (этот вывод должен быть притянут к GND, если не используется).  
~EMU O Выход эмуляции. C
Тактирование
CLKIN

I

Кварц, вход тактового генератора.
 
XTAL O Кварц, выход тактового генератора.  
Управление режимом
~RESET


I


Сброс.
 
~NMI I Немаскируемое прерывание (этот вывод должен быть притянут к +3.3V, если не используется).  
BMODE1-0 I Управление режимом загрузки (см. таблицу 9).  
Регулятор напряжения
VROUT1-0




O




Управление внешним транзистором FET (эти выводы должны оставаться неподключенными, если не используются. При переходе в режим hibernate они переводятся в состояние лог. 1).
 
~GPW I 5V General-Purpose Regulator Wake-Up (сигнал пробуждения регулятора напряжения. Этот вывод должен быть подтянут к +3.3V, когда не используется).  
Питание
VDDEXT

P

Напряжение питания для ввода/вывода (обычно +3.3V).
 
VDDINT P Внутреннее напряжение питания (обычно +1.25V, сюда подается напряжение с выхода регулятора).  
VDDRTC P Питание RTC (когда не используется, этот вывод должен быть подключен к VDDEXT. Если используется, то на нем всегда должно присутствовать напряжение питания, обычно 3.0V).  
GND G Земля, общий провод, минус всех цепей питания.  

Примечания:

(1) DRV означает тип драйвера. Буква (A, B, C, D, E) указывает на график нагрузочной способности выхода с рисунков 33..42.
(2) Этот вывод допускает работу с лог. уровнями 5V (5V-tolerant), когда он сконфигурирован как вход, или если это вывод с открытым стоком. Таким образом, когда вывод сконфигурирован как выход, действительны только кривые VOL на рис. 37 и 38, и кривые времени спада на рис. 50 и 51.

ADSP BF538 Drive Current A fig33

Рис. 33. Выходной ток A (низкое VDDEXT).

ADSP BF538 Drive Current A fig34

Рис. 34. Выходной ток A (высокое VDDEXT).

ADSP BF538 Drive Current B fig35

Рис. 35. Выходной ток B (низкое VDDEXT).

ADSP BF538 Drive Current B fig36

Рис. 36. Выходной ток B (высокое VDDEXT).

ADSP BF538 Drive Current C fig37

Рис. 37. Выходной ток C (низкое VDDEXT).

ADSP BF538 Drive Current C fig38

Рис. 38. Выходной ток C (высокое VDDEXT).

ADSP BF538 Drive Current D fig39

Рис. 39. Выходной ток D (низкое VDDEXT).

ADSP BF538 Drive Current D fig40

Рис. 40. Выходной ток D (высокое VDDEXT).

ADSP BF538 Drive Current E fig41

Рис. 41. Выходной ток E (низкое VDDEXT).

ADSP BF538 Drive Current E fig42

Рис. 42. Выходной ток E (высокое VDDEXT).

[Условия работоспособности]

В таблице ниже приведены данные по предельным значениям напряжения питания.

Примечание: здесь приведены только основные параметры. Полный список параметров см. в оригинальном даташите.

Параметр
Условия
min nom max Ед.
VDDINT, напряжение питания ядра. Модели, рассчитанные на 533 МГц1, 2. 0.8 1.25 1.375 V
Модели, рассчитанные на 400 МГц1, 2. 0.8 1.2 1.32 V
VDDEXT, внешнее напряжение питания Модели, в которых есть встроенная в корпус память FLASH2. 2.7 3.3 3.6 V
Модели без встроенной памяти FLASH2, 3. 2.25 3.0 3.6 V
VDDRTC, напряжение питания RTC   2.25   3.6 V

Примечания:

1. Регулятор напряжения может генерировать VDDINT с уровнями от 0.85V до 1.2V с допуском -5% +10%, и напряжение 1.25V с допуском -4% +10%.
2. См. раздел Руководство по выбору модели.
3. Когда VDDEXT < 2.7V, встроенное в кристалл регулирование напряжения не поддерживается.

Следующие таблицы приводят данные допустимых напряжений питания ядра для различных рабочих тактовых частот. Будьте внимательны при выборе скоростей MSEL, SSEL и CSEL, чтобы не превысить максимальную частоту ядра (таблица 11 и 12) и системную частоту (таблица 14). В таблице 13 описаны рабочие условия для PLL.

Таблица 11. Требования к тактовой частоте ядра (CCLK) для моделей 400 МГц.

Параметр
Настройка внутр. регулятора напряжения
Max частота
fCCLK (минимум VDDINT=1.14V) 1.20V 400 МГц
fCCLK (минимум VDDINT=1.045V) 1.10V 364 МГц
fCCLK (минимум VDDINT=0.95V) 1.00V 333 МГц
fCCLK (минимум VDDINT=0.85V) 0.90V 280 МГц
fCCLK (минимум VDDINT=0.8V) 0.85V 250 МГц

Таблица 12. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.

Параметр
Настройка внутр. регулятора напряжения
Max частота
fCCLK (минимум VDDINT=1.2V) 1.25V 533 МГц
fCCLK (минимум VDDINT=1.14V) 1.20V 500 МГц
fCCLK (минимум VDDINT=1.045V) 1.10V 444 МГц
fCCLK (минимум VDDINT=0.95V) 1.00V 400 МГц
fCCLK (минимум VDDINT=0.85V) 0.95V 333 МГц
fCCLK (минимум VDDINT=0.8V) 0.85V 250 МГц

Таблица 13. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.

Параметр
Min Max
fVCO (частота VCO) 50 МГц Max fCCLK

Таблица 14. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.

Параметр(1)
Max
fSCLK, частота CLKOUT/SCLK (VDDINT ≥ 1.14V) 133(2) МГц
fSCLK, частота CLKOUT/SCLK (VDDINT < 1.14V) 100 МГц

Примечания:

(1) tSCLK (= 1/fSCLK) должно быть больше или равно tCCLK.
(2) Гарантировано для tSCLK = 7.5 нс. См. таблицу 27.

[Руководство по выбору модели]

Тип процессора (модель)
Диапазон температур
Частота ядра FLASH Питание (номинал) Корпус / опция корпуса
ADSP-BF538BBCZ-4A –40oC .. +85oC 400 МГц - 1.2V внутр., 2.5V..3.3V I/O 316-шариковый CSP_BGA / BC-316-2
ADSP-BF538BBCZ-5A 533 МГц -
ADSP-BF538BBCZ-4F8 400 МГц 8 мегабит
ADSP-BF538BBCZ-5F8 533 МГц 8 мегабит

ADSP BF538 marking codes

Маркировку ADSP-BF538tppZ-ccc vvvvvvv.x n.n можно расшифровать следующим образом:

tpp обозначает тип корпуса и температурный диапазон.

Z означает, что это компонент, отвечающий спецификации RoHS.

ccc означает скорость и наличие на борту памяти FLASH, а также её объем. Например, 5F8 означает, что максимальная рабочая частота 533 МГц, на кристалле находится память программ FLASH (память загрузки) на 8 мегабит (1 мегабайт, или 512K ячеек по 16 бит).

vvvvvvv.x код лота сборки.

n.n ревизия кристалла (Silicon Revision).

# RoHS Compliant Designation.

yyww код даты производства.

country_of_origin страна производства.

[Словарик]

1-D, 2-D варианты работы DMA - прямой доступ к памяти может оперировать как с одномерным, так и с двумерным массивом данных.

ADC Analog-Digital Converter, аналого-цифровой преобразователь (АЦП).

ALU Arithmetic Logic Unit

~AMSx Asynchronous memory selects, выходы сигналов асинхронной выборки памяти (~AMS3, ~AMS2, ~AMS1 и ~AMS0).

~BR Bus Request, сигнал выборки шины.

CCLK тактовая частота ядра. Основной фактор быстродействия процессора.

CEC Core Event Controller, контроллер управления событиями ядра. Работает совместно с SIC, чтобы обеспечить приоритет обработки всех системных событий (прерываний).

CLI инструкция глобального запрета прерываний.

CLKIN вход для подачи внешних тактов ядра, либо вход генератора, работающего с кварцевым резонатором.

CPLB Cacheability Protection Lookaside Buffer, специальные пары регистров для кэширования памяти данных и инструкций (16 пар для данных и 16 пар для инструкций). Позволяет организовать защиту областей памяти от несанкционированного доступа (обычно используется в многозадачной среде). По умолчанию (после сброса) эта функция отключена.

CRT C Runtime Library, библиотека кода языка C, которая используется во время выполнения приложения.

DAC Digital-Analog Converter, цифро-аналоговый преобразователь (ЦАП).

DAG1, DAG0 Data Address Generator.

DMA Direct Memory Access, прямой доступ к памяти.

EBIU External Bus Interface Unit, блок интерфейса внешней шины.

EVT Event Vector Table, таблица векторов событий (адреса обработчиков прерываний).

~FCE вход, сигнал Flash Enable (в чипе ADSP-BF538 этот сигнал подключен к земле внутри чипа).

GPIO General Purpose Input/Output, порты ввода/вывода общего назначения.

I2C популярный последовательный двухпроводный интерфейс для обмена данными с внешними периферийными устройствами (применяется в телевизорах, бытовой и промышленной технике).

I2S последовательный интерфейс для передачи цифрового звука.

IAR Interrupt Assignment Register, регистр назначения прерывания.

IDE Integrated Development Environment, интегрированная среда разработки.

IDDE Integrated Development and Debugging Environment, интегрированная среда разработки и отладки.

ILAT Interrupt Latch Register, регистр захвата прерываний.

IPEND Interrupts Pending, регистр отложенных (ожидающих) прерываний.

ISR Interrupt Service Routine, подпрограмма обработки прерывания.

IVG Interrupt Vector Group, группа векторов прерывания. Группа имеет номер (от 0 до 15). Чем меньше номер группы, тем выше приоритет. Номера групп определены в перечислении enum файла adi_int.h, а также в перечислении typedef enum interrupt_kind файла exception.h.

LDR имеется в виду блок данных специального формата (файл, генерируемый средой разработки VisualDSP++), в котором содержится рабочий код программы для Blackfin. Этот файл предназначен для загрузки под управлением boot ROM.

MAC Multiply/Accumulate, умножение с накоплением - специальные оптимизированные инструкции для цифровой обработки сигналов.

MMU Memory Management Unit, блок управления памятью. Предоставляет возможность защиты областей памяти для отдельных задач ядра, и может защитить системные регистры от нежелательного доступа.

MMR Memory Mapped Register, встроенный в общее адресное пространство регистр.

NMI Non-Maskable Interrupt, немаскируемое прерывание (прерывание, которое нельзя запретить).

PAB Peripheral Access Bus, шина доступа к периферийным устройствам.

PC Program Counter, программный счетчик - адрес выполняемой команды программы.

Peripheral Interrupt ID числовой идентификатор прерывания для аппаратуры, который равен номеру бита IMASK/ISR/IWR. Идентификаторы аппаратуры определены в typedef enum ADI_INT_PERIPHERAL_ID файла adi_int.h.

PPI Parallel peripheral interface.

PREG Pointer Register, это FP или SP.

pulldown, pull-down нижний нагрузочный резистор (притягивает лог. уровень к 0).

pullup, pull-up верхний нагрузочный резистор (притягивает лог. уровень к 1).

RAB Register Access Bus.

RTC Real-Time Clock, часы реального времени.

SAA subtract/absolute value/accumulate, вычитание/взятие абсолютного значения/накопление - специальная инструкция для ускорения математической обработки.

SCLK system clock, системная тактовая частота.

SIC System Interrupt Controller, системный контроллер прерываний. Служит для привязки и перенаправления событий прерываний от множества периферийных устройств на входы группы приоритетов прерываний CEC.

SPORT последовательный порт, которых в ADSP-BF538 всего 4 штуки (SPORT0, SPORT1, SPORT2 и SPORT3).

STI инструкция глобального разрешения прерываний.

TWI Two Wire Interface, двухпроводный интерфейс, то же самое что и I2C.

VCO voltage-controlled oscillator, генератор, управляемый напряжением (входит в систему PLL).

W1C Write-1-Clear, принцип очистки бита, когда бит (или биты) сбрасывается записью в него единицы.

Гарвардская архитектура принцип построения процессорной системы, когда данных и инструкций предоставляются разные физические области памяти, и когда шина данных и шина инструкций также физически разделены. Архитектура Blackfin считается модифицированной Гарвардской, потому что и данные, и инструкции, и порты ввода/вывода находятся в едином адресном пространстве, но внутри процессора шина данных и шина инструкций разделены.

[Ссылки]

1. ADSP-BF538 site:analog.com.
2. Blackfin site:wikipedia.org.
3Blackfin: система команд (ассемблер) - часть 1.
4. Как происходит загрузка ADSP-BF533 Blackfin.