Перейти к содержанию

Регистры HSTX_FIFO RP2350

Регистры FIFO высокоскоростного вывода HSTX в RP2350: восемь 32-битных слов между системной частотой и частотой HSTX, запись данных и команд расширителя, уровень заполнения и признак переполнения.

FIFO на восемь 32-битных слов разделяет системный тактовый домен и домен clk_hstx. Он подключён к быстрой шине AHB отдельно от регистров управления HSTX_CTRL: DMA пишет в него за один такт, а процессор быстро опрашивает состояние, не дожидаясь медленного асинхронного перехода к регистрам управления (даташит RP2350, раздел 12.11.1).

HSTX забирает из FIFO слова по 32 бита; при включённом расширителе команд в FIFO вперемешку идут команды и данные. DMA записывает не больше одного слова за такт системной частоты, поэтому при очень низкой системной и высокой частоте HSTX поток упрётся в DMA. Запрос DMA от HSTX в pico-sdk называется DREQ_HSTX, номер 52.

ЭкземплярБазовый адрес
HSTX_FIFO0x5060 0000

Регистры блока

РегистрСмещениеНазначениеПосле сброса
HSTX_FIFO_STAT0x00Состояние FIFO0x0000 0000
HSTX_FIFO_FIFO0x04Запись слова данных или команды в FIFO0x0000 0000

HSTX_FIFO_STAT — состояние FIFO

Смещение 0x00, адрес 0x5060 0000, после сброса 0x0000 0000. Макросы pico-sdk: HSTX_FIFO_STAT_…

1514131211109876543210
—WOFEMPTYFULLLEVEL
  • WOF (бит 10, сброс записью 1, после сброса 0x0) — Была запись в полную FIFO; сбрасывается записью 1.
  • EMPTY (бит 9, только чтение, после сброса не определено) — FIFO пуста.
  • FULL (бит 8, только чтение, после сброса не определено) — FIFO заполнена.
  • LEVEL (биты 7:0, только чтение, после сброса 0x00) — Число слов в FIFO.

HSTX_FIFO_FIFO — запись слова данных или команды в FIFO

Смещение 0x04, адрес 0x5060 0004, после сброса 0x0000 0000, запись с побочным действием. Макросы pico-sdk: HSTX_FIFO_FIFO_…

Значение занимает регистр целиком, отдельных полей нет.

Частые вопросы

Как передавать данные в HSTX без участия процессора?

Настройте канал DMA на запись в регистр FIFO блока HSTX_FIFO по адресу 0x5060 0004 с темпом по запросу DREQ_HSTX (52). Уровень заполнения показывает поле LEVEL регистра STAT, а флаг WOF — что была запись в полную FIFO.

Источники

  1. Raspberry Pi. RP2350 Datasheet (release 8, build 80d627281ed5) — раздел 12.11.8: список регистров, назначение полей, тип доступа и значения после сброса
  2. Raspberry Pi. pico-sdk 2.1.1: заголовки src/rp2350/hardware_regs/include/hardware/regs/*.h (коммит bddd20f) — смещения, биты, тип доступа и значение после сброса каждого поля, базовые адреса из addressmap.h; лицензия BSD-3-Clause

Нашли ошибку в регистрах?

Другие регистры RP2350

Статьи и термины