HardCode

На Пикабу
Дата рождения: 17 апреля 1997
поставил 723 плюса и 642 минуса
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
Сосисочных дел мастер 5 лет на Пикабу
8249 рейтинг 61 подписчик 25 подписок 89 постов 12 в горячем

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка

Часть 2: Описание системы

Часть 2.1.1: Матрица AHB-Lite

Часть 2.1.2: Доступ к атомарному регистру


Регистры шины начинаются с базового адреса 0x40030000 (определенного как BUSCTRL_BASE в SDK).

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр BUS_PRIORITY


Смещение: 0x00


Описание:

Устанавливает приоритет каждого мастера для арбитража шины.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр BUS_PRIORITY_ACK


Смещение: 0x04


Описание:

Подтверждение приоритета шины.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFCTR0


Смещение: 0x08


Описание:

Счетчик производительности шины 0.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFSEL0


Смещение: 0x0c


Описание:

Выбор события производительности шины для PERFCTR0.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFCTR1


Смещение: 0x10


Описание:

Счетчик производительности шины 1.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFSEL1


Смещение: 0x14


Описание:

Выбор события производительности шины для PERFCTR1.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFCTR2


Смещение: 0x18


Описание:

Счетчик производительности шины 2.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFSEL2


Смещение: 0x1c


Описание:

Выбор события производительности шины для PERFCTR2.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFCTR3


Смещение: 0x20


Описание:

Счетчик производительности шины 3.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

BUSCTRL: Регистр PERFSEL3


Смещение: 0x24


Описание:

Выбор события производительности шины для PERFCTR3.

RP2040 - разбираем даташиты. Часть 2.1.5: Список регистров Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост
Показать полностью 11

Вода в продукции "Дальние Дали"

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


P.S. Снято в "Семейном Магните", Воронеж, улица 9 Января

Вода в продукции "Дальние Дали" Супермаркет Магнит, Мясо, Обман, Обман клиентов, Обманщики, Продукты, Еда, Плохое качество, Длиннопост
Вода в продукции "Дальние Дали" Супермаркет Магнит, Мясо, Обман, Обман клиентов, Обманщики, Продукты, Еда, Плохое качество, Длиннопост
Показать полностью 2

RP2040 - разбираем даташиты. Часть 2.1.2: Доступ к атомарному регистру

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка

Часть 2: Описание системы

Часть 2.1.1: Матрица AHB-Lite


Каждому блоку периферийных регистров выделяется 4 КБ адресного пространства, доступ к регистрам осуществляется одним из 4 методов, выбранных посредством декодирования адреса.


Addr + 0x0000: нормальный доступ для чтения и записи

Addr + 0x1000: атомарное исключающее "или" при записи

Addr + 0x2000: установка атомарной битовой маски при записи

Addr + 0x3000: очистка атомарной битовой маски при записи


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


Четыре псевдонима атомарного доступа занимают в общей сложности 16 КБ. Большинство периферийных устройств на RP2040 обеспечивают эту функциональность изначально, а атомарная запись имеет те же временные характеристики, что и обычный доступ для чтения/записи. Некоторые периферийные устройства (I2C, UART, SPI и SSI) вместо этого имеют эту функциональность, добавленную с помощью промежуточного устройства шины, которое переводит восходящие атомарные записи в нисходящие последовательности чтения-изменения-записи на уровне периферийного устройства. Это увеличивает время доступа на два системных тактовых цикла.


SIO (Часть 2.3.1), одноцикловый блок ввода-вывода, подключенный непосредственно к портам ввода/вывода ядер, не поддерживает атомарный доступ на уровне шины, хотя некоторые отдельные регистры (например, интерфейс ввода/вывода общего назначения) имеют псевдонимы set / clear / xor.


2.1.3. Мост APB


Мост APB связывает высокоскоростное основное соединение AHB-Lite с периферийными устройствами с более низкой пропускной способностью. В то время как матрица AHB-Lite предлагает доступ с нулевым временем ожидания повсюду, доступ к APB имеет штраф за цикл:

- Доступ к шине APB занимает минимум два цикла (фаза настройки и фаза доступа)

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

- Мост добавляет два дополнительных цикла для доступа к записи, так как этап настройки APB не может начаться, пока данные записи AHB-Lite не станут действительными.


В результате пропускная способность части APB структуры шины несколько ниже, чем у части AHB-Lite. Однако пропускной способности более чем достаточно для насыщения последовательной периферии APB.


2.1.4. "Узкая" запись в регистр ввода/вывода


Отображенные в память регистры ввода/вывода на RP2040 игнорируют ширину доступа для чтения/записи по шине. Они обрабатывают все записи, как если бы они были размером 32 бита. Это означает, что программное обеспечение не может использовать запись байтов или полуслов для изменения части регистра ввода-вывода: любая запись по адресу, где 30 старших битов адресов совпадают с адресом регистра, повлияет на содержимое всего регистра.


Для обновления части регистра ввода-вывода без последовательности чтения-изменения-записи лучшим решением на RP2040 является атомарные set/clear/XOR (см. Раздел 2.1.2). Обратите внимание, что это более гибко, чем запись байтов или полуслов, так как любая комбинация полей может быть обновлена за одну операцию.


После 8-битной или 16-битной записи (такой как инструкция strb на Cortex-M0+) регистр ввода-вывода будет производить выборку всей 32-битной шины данных записи. Cortex-M0+ и контроллер прямого доступа к памяти на RP2040 всегда будут реплицировать "узкие" данные по шине:


https://ideone.com/Qk6Vxz (код с комментариями и выводом на русском)


https://github.com/raspberrypi/pico-examples/blob/2fb08a028f... (оригинальный код)

Показать полностью

Немного халявы: две игры Endless space бесплатно!

У меня завалялось пара ключей к этой игре, почему бы не поделиться?


Кто первый встал - того и тапки, кто первый забрал - того и игра.


7H3TE-RIIYW-J2MP0

7ICMN-8ZGJ0-DW6WG

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка

Часть 2: Описание системы


В центре шины RP2040 находится полносвязная матрица 4:10. Её 4 восходящих порта подключены к 4 мастерам системной шины, а 10 нисходящих портов подключаются к ведомым устройствам AHB-Lite с самой высокой пропускной способностью (а именно, интерфейсам памяти) и к нижним уровням структуры. На рисунке 5 показана структура матрицы AHB-Lite 2:3, устроенная аналогично матрице 4:10 на RP2040, но ее легче показать на схеме.

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

Матрица состоит из двух компонентов:


Разветвители:

- Выполняют декодирование адреса

- Маршрутизируют запросы (адреса, запись данных) в нисходящий порт, указанный при декодировании начального адреса

- Маршрутизируют ответы (чтение данных, ошибки шины) от правильного арбитра обратно на восходящий порт

Арбитры:

- Управляют одновременными запросами к нисходящему порту

- Маршрутизируют ответы (чтение данных, ошибки шины) на правильный разветвитель

- Реализуют правила приоритета шины


Основная матрица на RP2040 состоит из 4 разветвителей 1:10 и 10 арбитров 4: 1 с сеткой из 40 каналов шины AHB-Lite между ними. Обратите внимание, что, поскольку AHB-Lite является конвейерной шиной, разветвитель может направлять обратно ответ на предыдущий запрос от нисходящего порта A, в то время как новый запрос к нисходящему порту B уже выполняется. Это не влечет за собой никаких штрафов за цикл.


2.1.1.1. Приоритет шины


Арбитры в главной матрице AHB-Lite реализуют двухуровневую схему приоритета шины. Уровни приоритета настраиваются предварительно, при помощи регистра BUS_PRIORITY в блоке регистров BUSCTRL.


Когда имеется несколько одновременных обращений к одному и тому же арбитру, любые запросы от высокоприоритетных мастеров (уровень приоритета 1) будут рассматриваться перед любыми запросами от низкоприоритетных мастеров (приоритет 0). Если несколько мастеров с одним и тем же уровнем приоритета пытаются одновременно получить доступ к одному и тому же ведомому устройству, применяется циклический разделительный интервал, то есть арбитр предоставляет доступ каждому мастеру по очереди.


ПРИМЕЧАНИЕ

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


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


2.1.1.2. Счетчики производительности шины


Счетчики производительности автоматически подсчитывают количество обращений к основным арбитрам AHB-Lite. Это может помочь в диагностике проблем с производительностью в случаях использования в проектах с высоким трафиком.


Есть четыре счетчика производительности. Каждый из них представляет собой 24-битный счетчик насыщения. Значения счетчика можно прочитать из BUSCTRL_PERFCTRx и очистить, записав любое значение в BUSCTRL_PERFCTRx. Каждый счетчик может одновременно подсчитывать одно из 20 доступных событий, выбранных в BUSCTRL_PERFSELx. Доступны следующие события шины:

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост
Показать полностью 2

RP2040 - разбираем даташиты. Часть 2: Описание системы

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка


В этой главе описаны ключевые особенности системы RP2040, включая процессор, память, способ подключения блоков, тактовую частоту, сброс, питание и ввод-вывод. См. обзорную диаграмму на Рисунке 2.


2.1 Шина данных


Шина RP2040 маршрутизирует адреса и данные через микросхему.


На рисунке 4 показана высокоуровневая структура коммутационной сети шины. Основная матрица AHB-Lite направляет адреса и данные между своими 4 восходящими портами и 10 нисходящими портами: в каждом цикле может происходить до четырех передач по шине. Все тракты данных имеют ширину 32 бита. Устройства памяти имеют выделенные порты на главной панели, чтобы удовлетворить их требования к высокой пропускной способности. Периферийные устройства AHB-Lite с высокой пропускной способностью имеют общий порт на кросс-панели, а мост APB обеспечивает доступ по шине к регистрам управления системой и периферийным устройствам с низкой пропускной способностью.

RP2040 - разбираем даташиты. Часть 2: Описание системы Спецификация, Datasheet, Raspberry pi, Перевод

Структура шины соединяет 4 мастера AHB-Lite, то есть устройства, которые генерируют адреса:

- Ядро процессора 0

- Ядро процессора 1

- Порт чтения на контроллере прямого доступа к памяти

- Порт записи на контроллере прямого доступа к памяти


Они соединены с 10 нисходящими портами на главной шине:

- Постоянное запоминающее устройство (ПЗУ)

- Память с поддержкой функции исполнения на месте (Flash XIP)

- Статическая память с произвольным доступом (SRAM) по одному модулю на порт (0-5)

- Периферийные устройства Fast AHB-Lite: контроллеры программируемого ввода/вывода (PIO0, PIO1), универсальная последовательная шина (USB), регистры управления прямым доступом к памяти и исполнению на месте (один общий порт)

- Мост ко всем периферийным устройствам APB и регистрам управления системой


Четыре мастера шины могут получить доступ к любым четырем различным портам матрицы одновременно, структура шины не добавляет состояния ожидания при любом принудительном доступе через AHB-Lite. Таким образом, при системной частоте 125 МГц, максимальная устойчивая пропускная способность шины составляет 2,0 ГБ/с. Карта адресов системы организована таким образом, чтобы сделать эту параллельную полосу пропускания доступной как можно большему количеству программных вариантов использования - например, чередующийся псевдоним SRAM (раздел 2.6.2) распределяет доступ к основной памяти по четырем портам матрицы (SRAM0… 3), поэтому большее количество обращений к памяти может происходить параллельно.

Показать полностью 1

RP2040 - разбираем даташиты. Часть 1.4: Распиновка

Содержание:

Часть 1: Введение

Часть 1.3: Чип


В этом разделе содержится краткий справочник по распиновке и функциям контактов. Полную информацию, включая электрические характеристики и чертежи корпуса можно найти в части 5.


1.4.1. Расположение контактов

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост

1.4.2. Описание контактов

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост

1.4.3. Функции контактов интерфейса ввода/вывода общего назначения


Каждый отдельный вывод интерфейса ввода/вывода общего назначения может быть подключен к внутреннему периферийному устройству с помощью функций интерфейса ввода/вывода общего назначения, определенных ниже. Некоторые внутренние периферийные соединения присутствуют в нескольких местах, чтобы обеспечить некоторую гибкость на системном уровне. SIO, PIO0 и PIO1 могут подключаться к любому контакту GPIO и управляются программным обеспечением (или конечными автоматами с программным управлением), поэтому могут использоваться для реализации многих функций.

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост
RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост
Показать полностью 4

RP2040 - разбираем даташиты. Часть 1.3: Чип

Содержание:

Часть 1: Введение


RP2040 имеет два процессорных ядра M0 +, прямой доступ к памяти, внутреннюю память и периферийные блоки, подключенные через шину данных AHB / APB.

RP2040 - разбираем даташиты. Часть 1.3: Чип Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

Код может выполняться непосредственно из внешней памяти через специальный интерфейс SPI, DSPI или QSPI. Небольшой кэш улучшает производительность для типичных приложений.

Отладка доступна через последовательный порт отладки (SWD).


Внутренняя статическая память с произвольным доступом (SRAM) может содержать код или данные. Она адресована как единая область размером 264 КБ, но физически разделена на 6 банков, чтобы обеспечить одновременный параллельный доступ для различных управляющих устройств.


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


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


Специальное оборудование для фиксированных функций, таких как последовательный периферийный интерфейс (SPI), I2C, универсальный асинхронный приёмопередатчик (UART).


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


Контроллер универсальной последовательной шины (USB) со встроенным PHY может использоваться для обеспечения работы в качестве высокоскоростоного / низкоскоростного хоста (Full-speed / Low-speed USB) или для подключения в качестве устройства. Режим работы определяется с помощью управляющего программного обеспечения, исполняемого в данный момент.


Четыре входа АЦП, которые используются совместно с выводами GPIO.


Две системы фазовой автоподстройки частоты для обеспечения фиксированной частоты 48 МГц для универсальной последовательной шины или аналогово-цифрового преобразователя и изменяемой системной частоты, которая может достигать 133 МГц.


Внутренний регулятор напряжения для подачи напряжения ядра, поэтому конечному продукту требуется только напряжение ввода-вывода.

Показать полностью 1
Отличная работа, все прочитано!