Blackfin ADSP-BF538 |
Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Основные возможности ADSP-BF538: • Ядро Blackfin (семейство Stirling), работающее на частотах до 533 МГц. Память: • До 148 кбайт встроенной памяти (см. таблицу 1). Периферийные устройства: • Параллельный периферийный интерфейс PPI с поддержкой форматов видео ITU-R 656. Рис. 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.
Архитектура, рассчитанная на экономию энергии. Конечно, довольно смешно говорить об экономичности процессора 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 разрядные числа, расположенные в регистровом файле. Рис. 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 мегабайтам физической памяти. Рис. 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. Рис. 4. Подключение встроенной в корпус памяти FLASH (ADSP-BF538F8). ADSP-BF538F8 содержит 8-мегабитный (512K x 16-бит, или 1 мегабайт) нижний загрузочный сектор памяти S29AL008J компании Spansion, известной как хорошая память flash. Для дополнительной информации посетите сайт www.spansion.com. Имеются следующие возможности: • Время доступа составляет 70 нс (должны быть соответствующим образом настроены регистры EBIU). Процессор 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 и их приоритеты (чем меньше цифра в столбце Приоритет, тем эта группа прерываний приоритетнее).
System Interrupt Controller (SIC). Контроллер SIC предоставляет привязку и маршрутизацию событий от множества источников прерываний периферии к группам входов прерываний контроллера CEC, распределенных по приоритетам. Это позволяет гибко настраивать приоритеты прерываний различных периферийных устройств. Хотя процессоры ADSP-BF538/ADSP-BF538F предоставляют привязку по умолчанию (которая автоматически настраивается после сброса), программа пользователя может изменить привязку и приоритеты прерываний событий путем записи соответствующих значений в регистры назначения прерываний (interrupt assignment registers, SIC_IARx). Таблица 3 описывает входы в SIC и привязку по умолчанию к группам прерываний CEC. Таблица 3. Привязка событий периферии к группам приоритетов.
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. Состояние после сброса системы обработки прерываний от периферийных устройств.
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 включают: • Одиночная передача линейного буфера с остановкой после завершения. В дополнение к выделенным каналам 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. Рис. 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. [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) бит в секунду. Частота тактов каждого порта 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.
Примечание (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. Режим ввода (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 (только активное видео). 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 означает блок генерации тактовой частоты с помощью умножения и деления частоты кварца, 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. Домены питания.
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 номинальная частота тактов ядра. Экономия в процентах составит: % Power Savings = (1 – Power Savings Factor) * 100% [Регулирование напряжения] Процессоры BF538 имеют встроенный в кристалл регулятор напряжения, позволяющий динамически (программно) управлять энергопотреблением. Напряжение питания ядра может меняться в определенном диапазоне, и отличаться от напряжения питания внешних шин VDDEXT (см. раздел Условия работоспособности для допусков регулировки и допустимых диапазонах VDDEXT для разных моделей). При необходимости встроенный регулятор напряжения может не использоваться (тогда требуется внешний регулятор напряжения). Рис. 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 (дополнительные индуктивность и конденсатор). Рис. 7. Подключение внешнего кварцевого резонатора. Примечание: номиналы, помеченные *, должны быть подстроены в зависимости от применяемого кристалла и разводки печатной платы. Однако на практике многие на это обычно забивают. Как показано на рис. 8, тактовая частота ядра (CCLK) и системная тактовая частота периферии (SCLK) получается из входной частоты (CLKIN). Встроенная в кристалл система PLL может умножать сигнал CLKIN на программируемый пользователем коэффициент от 0.5 до 64 (ограничено минимальной и максимальной частотой VCO). Множитель по умолчанию 10, однако это можно поменять программно. На лету частота меняется простой записью регистра PLL_DIV. Рис. 8. Методы модификации частоты. Примечание: условия для CCLK и SCLK: SCLK = CCLK и SCLK = 133 МГц. Все встроенные в чип процессора периферийные устройства тактируются от системной частоты (SCLK). Системная тактовая частота программируется значениями битов SSEL3–0 регистра PLL_DIV. Значение, программируемое в поле SSEL, задает соотношение между выходом PLL (VCO) и системной тактовой частотой. Значения делителя SCLK от 1 до 15. В таблице 7 показаны типичные соотношения системной тактовой частоты. Таблица 7. Пример соотношения системной тактовой частоты.
Обратите внимание, что коэффициент делителя должен быть выбран так, чтобы ограничить системную тактовую частоту максимальным значением, допустимым для fSCLK. Значение SSEL можно поменять динамически без какой-либо задержки захвата PLL путем записи соответствующих значений в регистр делителя PLL (PLL_DIV). Имейте в виду, что когда изменено значение SSEL, это повлияет на все периферийные устройства, которые получают свои тактовые сигналы из сигнала SCLK. Тактовая частота ядра (CCLK) может быть также динамически изменена значениями бит CSEL1–0 регистра PLL_DIV. Поддерживаемые коэффициенты деления 1, 2, 4 и 8, как это показано в таблице 8. Эта программируемая возможность полезна для быстрых модификаций частоты ядра. Таблица 8. Соотношения частоты тактов.
У процессоров ADSP-BF538/ADSP-BF538F есть 3 механизма (перечисленные в таблице 9) для автоматической загрузки внутренней памяти инструкций L1 после сброса. Четвертый метод предназначен для выполнения из внешней памяти, пропуская при этом последовательность загрузки. Таблица 9. Режимы загрузки.
Выводы 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-разрядных операций. [Средства разработки] Компания 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 Алгоритмические модули. Для ускорения разработки 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-1000. Выглядит почти так же, как и ICE-100. Недорогой (по меркам Analog Devices) отладчик JTAG, подключаемый через USB. На сайте Analog Devices предлагаемая цена этого отладчика $150 (строка для поиска ADZS-ICE-1000 Low Cost USB-based JTAG Emulator site:analog.com).
ADZS-ICE-2000. Дорогой, высокоскоростной отладчик также подключаемый к отлаживаемому устройству через JTAG, а к компьютеру через USB. Стоит на сайте Analog Devices $1495 (строка для поиска ADZS-ICE-2000 High Performance USB-based JTAG Emulator site:analog.com). ADZS-HPUSB-ICE. Насколько я понял, это устаревшая версия отладчика, по крайней мере цену на сайте Analog Devices не нашел (строка для поиска HPUSB-ICE USB-Based Emulator site:analog.com). [Описание внешних выводов] Все выводы после сброса находятся в третьем состоянии (высокое сопротивление, отключено), за исключением выводов интерфейса памяти, управления асинхронной памятью, управления синхронной памятью. Все эти выводы переводятся в состояние лог. 1, за исключением CLKOUT, который переключается с частотой системной шины. Если сигнал ~BR активен (вне зависимости, установлен или нет сигнал ~RESET), то выводы управления памятью также находятся в третьем состоянии. У всех не используемых выводов I/O входные буферы запрещены, за исключением выводов, которые требуют pull-up или pull-down, как это отражено в таблице 10. В состоянии hibernate все выводы находятся в третьем состоянии за исключением тех, о которых говорится в таблице 10. Чтобы сохранить максимальный функционал и уменьшить размер корпуса и количество выводов, некоторые выводы имеют двойное, мультиплицируемое назначение. В случаях, когда назначение выводов переконфигурируется, состояние по умолчанию показано в таблице обычным текстом, а альтернативная функциональность показана наклонным шрифтом. Таблица 10. Описание выводов процессора BF538.
Примечания: (1) DRV означает тип драйвера. Буква (A, B, C, D, E) указывает на график нагрузочной способности выхода с рисунков 33..42. Рис. 33. Выходной ток A (низкое VDDEXT). Рис. 34. Выходной ток A (высокое VDDEXT). Рис. 35. Выходной ток B (низкое VDDEXT). Рис. 36. Выходной ток B (высокое VDDEXT). Рис. 37. Выходной ток C (низкое VDDEXT). Рис. 38. Выходной ток C (высокое VDDEXT). Рис. 39. Выходной ток D (низкое VDDEXT). Рис. 40. Выходной ток D (высокое VDDEXT). Рис. 41. Выходной ток E (низкое VDDEXT). Рис. 42. Выходной ток E (высокое VDDEXT). [Условия работоспособности] В таблице ниже приведены данные по предельным значениям напряжения питания. Примечание: здесь приведены только основные параметры. Полный список параметров см. в оригинальном даташите.
Примечания: 1. Регулятор напряжения может генерировать VDDINT с уровнями от 0.85V до 1.2V с допуском -5% +10%, и напряжение 1.25V с допуском -4% +10%. Следующие таблицы приводят данные допустимых напряжений питания ядра для различных рабочих тактовых частот. Будьте внимательны при выборе скоростей MSEL, SSEL и CSEL, чтобы не превысить максимальную частоту ядра (таблица 11 и 12) и системную частоту (таблица 14). В таблице 13 описаны рабочие условия для PLL. Таблица 11. Требования к тактовой частоте ядра (CCLK) для моделей 400 МГц.
Таблица 12. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.
Таблица 13. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.
Таблица 14. Требования к тактовой частоте ядра (CCLK) для моделей 533 МГц.
Примечания: (1) tSCLK (= 1/fSCLK) должно быть больше или равно tCCLK. [Руководство по выбору модели]
Маркировку 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. |