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

Регистры CLOCKS RP2350

Регистры тактирования RP2350: источники и делители десяти генераторов — системной, опорной, периферии, HSTX, USB, АЦП и четырёх выходов на GPIO, — восстановление clk_sys, частотомер и маски тактирования блоков.

Блок CLOCKS RP2350 раздаёт тактовые частоты. Источники — кольцевой генератор ROSC, кварцевый XOSC, низкочастотный LPOSC на 32 кГц, две PLL и внешние входы GPIN0 и GPIN1. Генераторов десять: clk_ref (6–12 МГц), clk_sys (номинально 150 МГц), clk_peri (12–150 МГц), clk_hstx (150 МГц), clk_usb и clk_adc (по 48 МГц) и четыре выхода clk_gpout0–3 на GPIO до 50 МГц (даташит RP2350, раздел 8.1).

По сравнению с RP2040 нет генератора clk_rtc — его заменил таймер AON в POWMAN, — зато появился clk_hstx для быстрого вывода HSTX и делитель у clk_peri. Делители стали 16.16: целая часть в битах 31:16, дробная — в 15:0, диапазон — от 1,0 до 2¹⁶; у части генераторов делитель только целый. Бит ENABLED в регистрах CTRL показывает, что генератор действительно работает.

У clk_ref и clk_sys по-прежнему основной мультиплексор без сбоев, его состояние видно в SELECTED. Частотомер FC0, восстановление clk_sys и маски WAKE_EN, SLEEP_EN и ENABLED работают как в RP2040, но набор блоков в масках другой. В ревизии A3 после сброса clk_sys берётся от ROSC через вспомогательный мультиплексор (SRC = 1, AUXSRC = 2). Регистры DFTCLK_… нужны для заводских испытаний.

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

В RP2040 блок CLOCKS устроен иначе — регистры и поля отличаются, они описаны на странице «Регистры CLOCKS RP2040».

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

РегистрСмещениеНазначениеПосле сброса
CLOCKS_CLK_GPOUT0_CTRL0x00Управление выходом частоты на GPIO0x0000 0000
CLOCKS_CLK_GPOUTn_DIV0x04 + n · 0x0CДелитель выхода частоты на GPIO, формат 16.160x0001 0000
CLOCKS_CLK_GPOUTn_SELECTED0x08 + n · 0x0CВыбранный источник выхода на GPIO, всегда 0x10x0000 0001
CLOCKS_CLK_GPOUT1_CTRL0x0CУправление выходом частоты на GPIO0x0000 0000
CLOCKS_CLK_GPOUT2_CTRL0x18Управление выходом частоты на GPIO0x0000 0000
CLOCKS_CLK_GPOUT3_CTRL0x24Управление выходом частоты на GPIO0x0000 0000
CLOCKS_CLK_REF_CTRL0x30Источник опорной частоты clk_ref0x0000 0000
CLOCKS_CLK_REF_DIV0x34Делитель clk_ref0x0001 0000
CLOCKS_CLK_REF_SELECTED0x38Источник clk_ref на выходе основного мультиплексора: один бит на источник, при переключении возможны все нули0x0000 0001
CLOCKS_CLK_SYS_CTRL0x3CИсточник системной частоты clk_sys0x0000 0000
CLOCKS_CLK_SYS_DIV0x40Делитель clk_sys, формат 16.160x0001 0000
CLOCKS_CLK_SYS_SELECTED0x44Источник clk_sys на выходе основного мультиплексора: один бит на источник, при переключении возможны все нули0x0000 0001
CLOCKS_CLK_PERI_CTRL0x48Источник и включение частоты периферии clk_peri0x0000 0000
CLOCKS_CLK_PERI_DIV0x4CДелитель clk_peri0x0001 0000
CLOCKS_CLK_PERI_SELECTED0x50Выбранный источник clk_peri, всегда 0x10x0000 0001
CLOCKS_CLK_HSTX_CTRL0x54Источник и включение частоты HSTX clk_hstx0x0000 0000
CLOCKS_CLK_HSTX_DIV0x58Делитель clk_hstx0x0001 0000
CLOCKS_CLK_HSTX_SELECTED0x5CВыбранный источник clk_hstx, всегда 0x10x0000 0001
CLOCKS_CLK_USB_CTRL0x60Источник и включение частоты USB clk_usb0x0000 0000
CLOCKS_CLK_USB_DIV0x64Делитель clk_usb0x0001 0000
CLOCKS_CLK_USB_SELECTED0x68Выбранный источник clk_usb, всегда 0x10x0000 0001
CLOCKS_CLK_ADC_CTRL0x6CИсточник и включение частоты АЦП clk_adc0x0000 0000
CLOCKS_CLK_ADC_DIV0x70Делитель clk_adc0x0001 0000
CLOCKS_CLK_ADC_SELECTED0x74Выбранный источник clk_adc, всегда 0x10x0000 0001
CLOCKS_DFTCLK_XOSC_CTRL0x78Тестовый источник вместо XOSC — для заводских испытаний0x0000 0000
CLOCKS_DFTCLK_ROSC_CTRL0x7CТестовый источник вместо ROSC — для заводских испытаний0x0000 0000
CLOCKS_DFTCLK_LPOSC_CTRL0x80Тестовый источник вместо LPOSC — для заводских испытаний0x0000 0000
CLOCKS_CLK_SYS_RESUS_CTRL0x84Управление восстановлением clk_sys0x0000 00FF
CLOCKS_CLK_SYS_RESUS_STATUS0x88Состояние восстановления clk_sys0x0000 0000
CLOCKS_FC0_REF_KHZ0x8CЧастотомер: частота clk_ref в кГц0x0000 0000
CLOCKS_FC0_MIN_KHZ0x90Частотомер: нижняя граница проверки в кГц, 0 — без проверки0x0000 0000
CLOCKS_FC0_MAX_KHZ0x94Частотомер: верхняя граница проверки в кГц, 0x1FFFFFF — без проверки0x01FF FFFF
CLOCKS_FC0_DELAY0x98Частотомер: задержка начала счёта в периодах clk_ref0x0000 0001
CLOCKS_FC0_INTERVAL0x9CЧастотомер: длительность измерения 2ⁿ мкс0x0000 0008
CLOCKS_FC0_SRC0xA0Частотомер: измеряемая частота; запись запускает измерение0x0000 0000
CLOCKS_FC0_STATUS0xA4Частотомер: состояние измерения0x0000 0000
CLOCKS_FC0_RESULT0xA8Частотомер: результат, действителен при DONE = 10x0000 0000
CLOCKS_WAKE_EN00xACПодача частот блокам в рабочем режиме, первая часть0xFFFF FFFF
CLOCKS_WAKE_EN10xB0Подача частот блокам в рабочем режиме, вторая часть0x7FFF FFFF
CLOCKS_SLEEP_EN00xB4Подача частот блокам в режиме сна, первая часть0xFFFF FFFF
CLOCKS_SLEEP_EN10xB8Подача частот блокам в режиме сна, вторая часть0x7FFF FFFF
CLOCKS_ENABLED00xBCЧастоты, которые подаются сейчас, первая часть0x0000 0000
CLOCKS_ENABLED10xC0Частоты, которые подаются сейчас, вторая часть0x0000 0000
CLOCKS_INTR0xC4Необработанные флаги прерываний0x0000 0000
CLOCKS_INTE0xC8Разрешение прерываний0x0000 0000
CLOCKS_INTF0xCCПринудительная установка прерываний0x0000 0000
CLOCKS_INTS0xD0Флаги прерываний после маски и принуждения0x0000 0000

CLOCKS_CLK_GPOUT0_CTRL — управление выходом частоты на GPIO

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

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—DC50ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • DC50 (бит 12, чтение и запись, после сброса 0x0) — Коррекция скважности до 50 % при нечётном делителе.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 8:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_sys
    0x1clksrc_gpin0
    0x2clksrc_gpin1
    0x3clksrc_pll_usb
    0x4clksrc_pll_usb_primary_ref_opcg
    0x5rosc_clksrc
    0x6xosc_clksrc
    0x7lposc_clksrc
    0x8clk_sys
    0x9clk_usb
    0xAclk_adc
    0xBclk_ref
    0xCclk_peri
    0xDclk_hstx
    0xEotp_clk2fc

CLOCKS_CLK_GPOUTn_DIV — делитель выхода частоты на GPIO, формат 16.16

4 регистра, n = 0…3: смещение 0x04 + n · 0x0C, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_GPOUTn_DIV_…

31302928272625242322212019181716
INT
1514131211109876543210
FRAC
  • INT (биты 31:16, чтение и запись, после сброса 0x0001) — Целая часть делителя; 0 — наибольший делитель; можно менять на ходу.
  • FRAC (биты 15:0, чтение и запись, после сброса 0x0000) — Дробная часть делителя в 1/65 536; дробное деление чередует два целых и даёт дрожание частоты.

CLOCKS_CLK_GPOUTn_SELECTED — выбранный источник выхода на GPIO, всегда 0x1

4 регистра, n = 0…3: смещение 0x08 + n · 0x0C, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_GPOUTn_SELECTED_…

Отдельных полей нет: значение занимает бит 0, остальные биты не используются.

CLOCKS_CLK_GPOUT1_CTRL — управление выходом частоты на GPIO

Смещение 0x0C, адрес 0x4001 000C, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_GPOUT1_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—DC50ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • DC50 (бит 12, чтение и запись, после сброса 0x0) — Коррекция скважности до 50 % при нечётном делителе.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 8:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_sys
    0x1clksrc_gpin0
    0x2clksrc_gpin1
    0x3clksrc_pll_usb
    0x4clksrc_pll_usb_primary_ref_opcg
    0x5rosc_clksrc
    0x6xosc_clksrc
    0x7lposc_clksrc
    0x8clk_sys
    0x9clk_usb
    0xAclk_adc
    0xBclk_ref
    0xCclk_peri
    0xDclk_hstx
    0xEotp_clk2fc

CLOCKS_CLK_GPOUT2_CTRL — управление выходом частоты на GPIO

Смещение 0x18, адрес 0x4001 0018, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_GPOUT2_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—DC50ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • DC50 (бит 12, чтение и запись, после сброса 0x0) — Коррекция скважности до 50 % при нечётном делителе.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 8:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_sys
    0x1clksrc_gpin0
    0x2clksrc_gpin1
    0x3clksrc_pll_usb
    0x4clksrc_pll_usb_primary_ref_opcg
    0x5rosc_clksrc_ph
    0x6xosc_clksrc
    0x7lposc_clksrc
    0x8clk_sys
    0x9clk_usb
    0xAclk_adc
    0xBclk_ref
    0xCclk_peri
    0xDclk_hstx
    0xEotp_clk2fc

CLOCKS_CLK_GPOUT3_CTRL — управление выходом частоты на GPIO

Смещение 0x24, адрес 0x4001 0024, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_GPOUT3_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—DC50ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • DC50 (бит 12, чтение и запись, после сброса 0x0) — Коррекция скважности до 50 % при нечётном делителе.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 8:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_sys
    0x1clksrc_gpin0
    0x2clksrc_gpin1
    0x3clksrc_pll_usb
    0x4clksrc_pll_usb_primary_ref_opcg
    0x5rosc_clksrc_ph
    0x6xosc_clksrc
    0x7lposc_clksrc
    0x8clk_sys
    0x9clk_usb
    0xAclk_adc
    0xBclk_ref
    0xCclk_peri
    0xDclk_hstx
    0xEotp_clk2fc

CLOCKS_CLK_REF_CTRL — источник опорной частоты clk_ref

Смещение 0x30, адрес 0x4001 0030, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_REF_CTRL_…

1514131211109876543210
—AUXSRC—SRC
  • AUXSRC (биты 6:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому сначала переводят SRC на другой источник.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_usb
    0x1clksrc_gpin0
    0x2clksrc_gpin1
    0x3clksrc_pll_usb_primary_ref_opcg
  • SRC (биты 1:0, чтение и запись, после сброса не определено) — Источник без сбоев: ROSC, вспомогательный мультиплексор, XOSC или LPOSC; смену подтверждает CLK_REF_SELECTED.
    ЗначениеИмя в pico-sdk
    0x0rosc_clksrc_ph
    0x1clksrc_clk_ref_aux
    0x2xosc_clksrc
    0x3lposc_clksrc

CLOCKS_CLK_REF_DIV — делитель clk_ref

Смещение 0x34, адрес 0x4001 0034, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_REF_DIV_…

  • INT (биты 23:16, чтение и запись, после сброса 0x01) — Целый делитель; 0 — наибольший делитель; можно менять на ходу.

CLOCKS_CLK_REF_SELECTED — источник clk_ref на выходе основного мультиплексора: один бит на источник, при переключении возможны все нули

Смещение 0x38, адрес 0x4001 0038, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_REF_SELECTED_…

Отдельных полей нет: значение занимает биты 3:0, остальные биты не используются.

CLOCKS_CLK_SYS_CTRL — источник системной частоты clk_sys

Смещение 0x3C, адрес 0x4001 003C, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_SYS_CTRL_…

1514131211109876543210
—AUXSRC—SRC
  • AUXSRC (биты 7:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому сначала переводят SRC на другой источник.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_sys
    0x1clksrc_pll_usb
    0x2rosc_clksrc
    0x3xosc_clksrc
    0x4clksrc_gpin0
    0x5clksrc_gpin1
  • SRC (бит 0, чтение и запись, после сброса 0x0) — Источник без сбоев: clk_ref или вспомогательный мультиплексор; смену подтверждает CLK_SYS_SELECTED.

CLOCKS_CLK_SYS_DIV — делитель clk_sys, формат 16.16

Смещение 0x40, адрес 0x4001 0040, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_SYS_DIV_…

31302928272625242322212019181716
INT
1514131211109876543210
FRAC
  • INT (биты 31:16, чтение и запись, после сброса 0x0001) — Целая часть делителя; 0 — наибольший делитель; можно менять на ходу.
  • FRAC (биты 15:0, чтение и запись, после сброса 0x0000) — Дробная часть делителя в 1/65 536; дробное деление чередует два целых и даёт дрожание частоты.

CLOCKS_CLK_SYS_SELECTED — источник clk_sys на выходе основного мультиплексора: один бит на источник, при переключении возможны все нули

Смещение 0x44, адрес 0x4001 0044, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_SYS_SELECTED_…

Отдельных полей нет: значение занимает биты 1:0, остальные биты не используются.

CLOCKS_CLK_PERI_CTRL — источник и включение частоты периферии clk_peri

Смещение 0x48, адрес 0x4001 0048, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_PERI_CTRL_…

31302928272625242322212019181716
—ENABLED—
1514131211109876543210
—ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 7:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clk_sys
    0x1clksrc_pll_sys
    0x2clksrc_pll_usb
    0x3rosc_clksrc_ph
    0x4xosc_clksrc
    0x5clksrc_gpin0
    0x6clksrc_gpin1

CLOCKS_CLK_PERI_DIV — делитель clk_peri

Смещение 0x4C, адрес 0x4001 004C, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_PERI_DIV_…

  • INT (биты 17:16, чтение и запись, после сброса 0x1) — Целый делитель; 0 — наибольший делитель; можно менять на ходу.

CLOCKS_CLK_PERI_SELECTED — выбранный источник clk_peri, всегда 0x1

Смещение 0x50, адрес 0x4001 0050, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_PERI_SELECTED_…

Отдельных полей нет: значение занимает бит 0, остальные биты не используются.

CLOCKS_CLK_HSTX_CTRL — источник и включение частоты HSTX clk_hstx

Смещение 0x54, адрес 0x4001 0054, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_HSTX_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 7:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clk_sys
    0x1clksrc_pll_sys
    0x2clksrc_pll_usb
    0x3clksrc_gpin0
    0x4clksrc_gpin1

CLOCKS_CLK_HSTX_DIV — делитель clk_hstx

Смещение 0x58, адрес 0x4001 0058, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_HSTX_DIV_…

  • INT (биты 17:16, чтение и запись, после сброса 0x1) — Целый делитель; 0 — наибольший делитель; можно менять на ходу.

CLOCKS_CLK_HSTX_SELECTED — выбранный источник clk_hstx, всегда 0x1

Смещение 0x5C, адрес 0x4001 005C, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_HSTX_SELECTED_…

Отдельных полей нет: значение занимает бит 0, остальные биты не используются.

CLOCKS_CLK_USB_CTRL — источник и включение частоты USB clk_usb

Смещение 0x60, адрес 0x4001 0060, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_USB_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 7:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_usb
    0x1clksrc_pll_sys
    0x2rosc_clksrc_ph
    0x3xosc_clksrc
    0x4clksrc_gpin0
    0x5clksrc_gpin1

CLOCKS_CLK_USB_DIV — делитель clk_usb

Смещение 0x64, адрес 0x4001 0064, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_USB_DIV_…

  • INT (биты 19:16, чтение и запись, после сброса 0x1) — Целый делитель; 0 — наибольший делитель; можно менять на ходу.

CLOCKS_CLK_USB_SELECTED — выбранный источник clk_usb, всегда 0x1

Смещение 0x68, адрес 0x4001 0068, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_USB_SELECTED_…

Отдельных полей нет: значение занимает бит 0, остальные биты не используются.

CLOCKS_CLK_ADC_CTRL — источник и включение частоты АЦП clk_adc

Смещение 0x6C, адрес 0x4001 006C, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_ADC_CTRL_…

31302928272625242322212019181716
—ENABLED—NUDGE—PHASE
1514131211109876543210
—ENABLEKILL—AUXSRC—
  • ENABLED (бит 28, только чтение, после сброса 0x0) — Генератор включён.
  • NUDGE (бит 20, чтение и запись, после сброса 0x0) — Сдвиг фазы: каждое изменение бита сдвигает выход на один период входной частоты, в любой момент.
  • PHASE (биты 17:16, чтение и запись, после сброса 0x0) — Задержка включения на 0–3 периода входной частоты; задают до включения генератора.
  • ENABLE (бит 11, чтение и запись, после сброса 0x0) — Пуск и остановка генератора без сбоев на выходе.
  • KILL (бит 10, чтение и запись, после сброса 0x0) — Асинхронная остановка генератора; на выходе возможен сбой, даташит не советует заменять этим битом ENABLE.
  • AUXSRC (биты 7:5, чтение и запись, после сброса 0x0) — Источник вспомогательного мультиплексора; при смене выход сбоит, поэтому генератор сначала останавливают.
    ЗначениеИмя в pico-sdk
    0x0clksrc_pll_usb
    0x1clksrc_pll_sys
    0x2rosc_clksrc_ph
    0x3xosc_clksrc
    0x4clksrc_gpin0
    0x5clksrc_gpin1

CLOCKS_CLK_ADC_DIV — делитель clk_adc

Смещение 0x70, адрес 0x4001 0070, после сброса 0x0001 0000. Макросы pico-sdk: CLOCKS_CLK_ADC_DIV_…

  • INT (биты 19:16, чтение и запись, после сброса 0x1) — Целый делитель; 0 — наибольший делитель; можно менять на ходу.

CLOCKS_CLK_ADC_SELECTED — выбранный источник clk_adc, всегда 0x1

Смещение 0x74, адрес 0x4001 0074, после сброса 0x0000 0001, только чтение. Макросы pico-sdk: CLOCKS_CLK_ADC_SELECTED_…

Отдельных полей нет: значение занимает бит 0, остальные биты не используются.

CLOCKS_DFTCLK_XOSC_CTRL — тестовый источник вместо XOSC — для заводских испытаний

Смещение 0x78, адрес 0x4001 0078, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_DFTCLK_XOSC_CTRL_…

  • SRC (биты 1:0, чтение и запись, после сброса 0x0) — Тестовый источник частоты.
    ЗначениеИмя в pico-sdk
    0x0null
    0x1clksrc_pll_usb_primary
    0x2clksrc_gpin0

CLOCKS_DFTCLK_ROSC_CTRL — тестовый источник вместо ROSC — для заводских испытаний

Смещение 0x7C, адрес 0x4001 007C, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_DFTCLK_ROSC_CTRL_…

  • SRC (биты 1:0, чтение и запись, после сброса 0x0) — Тестовый источник частоты.
    ЗначениеИмя в pico-sdk
    0x0null
    0x1clksrc_pll_sys_primary_rosc
    0x2clksrc_gpin1

CLOCKS_DFTCLK_LPOSC_CTRL — тестовый источник вместо LPOSC — для заводских испытаний

Смещение 0x80, адрес 0x4001 0080, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_DFTCLK_LPOSC_CTRL_…

  • SRC (биты 1:0, чтение и запись, после сброса 0x0) — Тестовый источник частоты.
    ЗначениеИмя в pico-sdk
    0x0null
    0x1clksrc_pll_usb_primary_lposc
    0x2clksrc_gpin1

CLOCKS_CLK_SYS_RESUS_CTRL — управление восстановлением clk_sys

Смещение 0x84, адрес 0x4001 0084, после сброса 0x0000 00FF. Макросы pico-sdk: CLOCKS_CLK_SYS_RESUS_CTRL_…

31302928272625242322212019181716
—CLEAR
1514131211109876543210
—FRCE—ENABLETIMEOUT
  • CLEAR (бит 16, чтение и запись, после сброса 0x0) — Снять восстановление, когда причина остановки clk_sys устранена.
  • FRCE (бит 12, чтение и запись, после сброса 0x0) — Принудительное восстановление — только для проверки.
  • ENABLE (бит 8, чтение и запись, после сброса 0x0) — Включение восстановления clk_sys; TIMEOUT задают раньше.
  • TIMEOUT (биты 7:0, чтение и запись, после сброса 0xFF) — Интервал проверки в периодах clk_ref; не меньше 2 × частота clk_ref / наименьшая проверяемая частота clk_sys.

CLOCKS_CLK_SYS_RESUS_STATUS — состояние восстановления clk_sys

Смещение 0x88, адрес 0x4001 0088, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_CLK_SYS_RESUS_STATUS_…

  • RESUSSED (бит 0, только чтение, после сброса 0x0) — Сработало восстановление: clk_sys переключена на clk_ref; после исправления ошибки запишите 1 в CLEAR.

CLOCKS_FC0_REF_KHZ — частотомер: частота clk_ref в кГц

Смещение 0x8C, адрес 0x4001 008C, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_REF_KHZ_…

Отдельных полей нет: значение занимает биты 19:0, остальные биты не используются.

CLOCKS_FC0_MIN_KHZ — частотомер: нижняя граница проверки в кГц, 0 — без проверки

Смещение 0x90, адрес 0x4001 0090, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_MIN_KHZ_…

Отдельных полей нет: значение занимает биты 24:0, остальные биты не используются.

CLOCKS_FC0_MAX_KHZ — частотомер: верхняя граница проверки в кГц, 0x1FFFFFF — без проверки

Смещение 0x94, адрес 0x4001 0094, после сброса 0x01FF FFFF, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_MAX_KHZ_…

Отдельных полей нет: значение занимает биты 24:0, остальные биты не используются.

CLOCKS_FC0_DELAY — частотомер: задержка начала счёта в периодах clk_ref

Смещение 0x98, адрес 0x4001 0098, после сброса 0x0000 0001, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_DELAY_…

Отдельных полей нет: значение занимает биты 2:0, остальные биты не используются.

CLOCKS_FC0_INTERVAL — частотомер: длительность измерения 2ⁿ мкс

Смещение 0x9C, адрес 0x4001 009C, после сброса 0x0000 0008, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_INTERVAL_…

Отдельных полей нет: значение занимает биты 3:0, остальные биты не используются.

CLOCKS_FC0_SRC — частотомер: измеряемая частота; запись запускает измерение

Смещение 0xA0, адрес 0x4001 00A0, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: CLOCKS_FC0_SRC_…

Отдельных полей нет: значение занимает биты 7:0, остальные биты не используются.

ЗначениеИмя в pico-sdk
0x0null
0x1pll_sys_clksrc_primary
0x2pll_usb_clksrc_primary
0x3rosc_clksrc
0x4rosc_clksrc_ph
0x5xosc_clksrc
0x6clksrc_gpin0
0x7clksrc_gpin1
0x8clk_ref
0x9clk_sys
0xAclk_peri
0xBclk_usb
0xCclk_adc
0xDclk_hstx
0xElposc_clksrc
0xFotp_clk2fc
0x10pll_usb_clksrc_primary_dft

CLOCKS_FC0_STATUS — частотомер: состояние измерения

Смещение 0xA4, адрес 0x4001 00A4, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_FC0_STATUS_…

31302928272625242322212019181716
—DIED—FAST—SLOW—FAIL
1514131211109876543210
—WAITING—RUNNING—DONE—PASS
  • DIED (бит 28, только чтение, после сброса 0x0) — Измеряемая частота пропала во время измерения.
  • FAST (бит 24, только чтение, после сброса 0x0) — Частота выше ожидаемой; действительно при DONE = 1.
  • SLOW (бит 20, только чтение, после сброса 0x0) — Частота ниже ожидаемой; действительно при DONE = 1.
  • FAIL (бит 16, только чтение, после сброса 0x0) — Проверка не пройдена.
  • WAITING (бит 12, только чтение, после сброса 0x0) — Ожидание, пока измеряемая частота запустится.
  • RUNNING (бит 8, только чтение, после сброса 0x0) — Идёт измерение.
  • DONE (бит 4, только чтение, после сброса 0x0) — Измерение закончено.
  • PASS (бит 0, только чтение, после сброса 0x0) — Проверка пройдена.

CLOCKS_FC0_RESULT — частотомер: результат, действителен при DONE = 1

Смещение 0xA8, адрес 0x4001 00A8, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_FC0_RESULT_…

31302928272625242322212019181716
—KHZ
1514131211109876543210
KHZFRAC
  • KHZ (биты 29:5, только чтение, после сброса 0x0000000) — Измеренная частота, целые килогерцы.
  • FRAC (биты 4:0, только чтение, после сброса 0x00) — Дробная часть измеренной частоты.

CLOCKS_WAKE_EN0 — подача частот блокам в рабочем режиме, первая часть

Смещение 0xAC, адрес 0x4001 00AC, после сброса 0xFFFF FFFF. Макросы pico-sdk: CLOCKS_WAKE_EN0_…

  • CLK_SYS_SIO (бит 31, чтение и запись, после сброса 0x1) — Подача clk_sys на SIO в рабочем режиме.
  • CLK_SYS_SHA256 (бит 30, чтение и запись, после сброса 0x1) — Подача clk_sys на SHA256 в рабочем режиме.
  • CLK_SYS_PSM (бит 29, чтение и запись, после сброса 0x1) — Подача clk_sys на PSM в рабочем режиме.
  • CLK_SYS_ROSC (бит 28, чтение и запись, после сброса 0x1) — Подача clk_sys на ROSC в рабочем режиме.
  • CLK_SYS_ROM (бит 27, чтение и запись, после сброса 0x1) — Подача clk_sys на ROM в рабочем режиме.
  • CLK_SYS_RESETS (бит 26, чтение и запись, после сброса 0x1) — Подача clk_sys на RESETS в рабочем режиме.
  • CLK_SYS_PWM (бит 25, чтение и запись, после сброса 0x1) — Подача clk_sys на PWM в рабочем режиме.
  • CLK_SYS_POWMAN (бит 24, чтение и запись, после сброса 0x1) — Подача clk_sys на POWMAN в рабочем режиме.
  • CLK_REF_POWMAN (бит 23, чтение и запись, после сброса 0x1) — Подача clk_ref на POWMAN в рабочем режиме.
  • CLK_SYS_PLL_USB (бит 22, чтение и запись, после сброса 0x1) — Подача clk_sys на PLL_USB в рабочем режиме.
  • CLK_SYS_PLL_SYS (бит 21, чтение и запись, после сброса 0x1) — Подача clk_sys на PLL_SYS в рабочем режиме.
  • CLK_SYS_PIO2 (бит 20, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO2 в рабочем режиме.
  • CLK_SYS_PIO1 (бит 19, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO1 в рабочем режиме.
  • CLK_SYS_PIO0 (бит 18, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO0 в рабочем режиме.
  • CLK_SYS_PADS (бит 17, чтение и запись, после сброса 0x1) — Подача clk_sys на PADS в рабочем режиме.
  • CLK_SYS_OTP (бит 16, чтение и запись, после сброса 0x1) — Подача clk_sys на OTP в рабочем режиме.
  • CLK_REF_OTP (бит 15, чтение и запись, после сброса 0x1) — Подача clk_ref на OTP в рабочем режиме.
  • CLK_SYS_JTAG (бит 14, чтение и запись, после сброса 0x1) — Подача clk_sys на JTAG в рабочем режиме.
  • CLK_SYS_IO (бит 13, чтение и запись, после сброса 0x1) — Подача clk_sys на IO в рабочем режиме.
  • CLK_SYS_I2C1 (бит 12, чтение и запись, после сброса 0x1) — Подача clk_sys на I2C1 в рабочем режиме.
  • CLK_SYS_I2C0 (бит 11, чтение и запись, после сброса 0x1) — Подача clk_sys на I2C0 в рабочем режиме.
  • CLK_SYS_HSTX (бит 10, чтение и запись, после сброса 0x1) — Подача clk_sys на HSTX в рабочем режиме.
  • CLK_HSTX (бит 9, чтение и запись, после сброса 0x1) — Подача clk_hstx в рабочем режиме.
  • CLK_SYS_GLITCH_DETECTOR (бит 8, чтение и запись, после сброса 0x1) — Подача clk_sys на GLITCH_DETECTOR в рабочем режиме.
  • CLK_SYS_DMA (бит 7, чтение и запись, после сброса 0x1) — Подача clk_sys на DMA в рабочем режиме.
  • CLK_SYS_BUSFABRIC (бит 6, чтение и запись, после сброса 0x1) — Подача clk_sys на BUSFABRIC в рабочем режиме; отключать нельзя — ядра потеряют доступ ко всем регистрам.
  • CLK_SYS_BUSCTRL (бит 5, чтение и запись, после сброса 0x1) — Подача clk_sys на BUSCTRL в рабочем режиме.
  • CLK_SYS_BOOTRAM (бит 4, чтение и запись, после сброса 0x1) — Подача clk_sys на BOOTRAM в рабочем режиме.
  • CLK_SYS_ADC (бит 3, чтение и запись, после сброса 0x1) — Подача clk_sys на ADC в рабочем режиме.
  • CLK_ADC (бит 2, чтение и запись, после сброса 0x1) — Подача clk_adc в рабочем режиме.
  • CLK_SYS_ACCESSCTRL (бит 1, чтение и запись, после сброса 0x1) — Подача clk_sys на ACCESSCTRL в рабочем режиме.
  • CLK_SYS_CLOCKS (бит 0, чтение и запись, после сброса 0x1) — Подача clk_sys на CLOCKS в рабочем режиме; отключать нельзя — ядра потеряют доступ к регистрам CLOCKS.

CLOCKS_WAKE_EN1 — подача частот блокам в рабочем режиме, вторая часть

Смещение 0xB0, адрес 0x4001 00B0, после сброса 0x7FFF FFFF. Макросы pico-sdk: CLOCKS_WAKE_EN1_…

  • CLK_SYS_XOSC (бит 30, чтение и запись, после сброса 0x1) — Подача clk_sys на XOSC в рабочем режиме.
  • CLK_SYS_XIP (бит 29, чтение и запись, после сброса 0x1) — Подача clk_sys на XIP в рабочем режиме.
  • CLK_SYS_WATCHDOG (бит 28, чтение и запись, после сброса 0x1) — Подача clk_sys на WATCHDOG в рабочем режиме.
  • CLK_USB (бит 27, чтение и запись, после сброса 0x1) — Подача clk_usb в рабочем режиме.
  • CLK_SYS_USBCTRL (бит 26, чтение и запись, после сброса 0x1) — Подача clk_sys на USBCTRL в рабочем режиме.
  • CLK_SYS_UART1 (бит 25, чтение и запись, после сброса 0x1) — Подача clk_sys на UART1 в рабочем режиме.
  • CLK_PERI_UART1 (бит 24, чтение и запись, после сброса 0x1) — Подача clk_peri на UART1 в рабочем режиме.
  • CLK_SYS_UART0 (бит 23, чтение и запись, после сброса 0x1) — Подача clk_sys на UART0 в рабочем режиме.
  • CLK_PERI_UART0 (бит 22, чтение и запись, после сброса 0x1) — Подача clk_peri на UART0 в рабочем режиме.
  • CLK_SYS_TRNG (бит 21, чтение и запись, после сброса 0x1) — Подача clk_sys на TRNG в рабочем режиме.
  • CLK_SYS_TIMER1 (бит 20, чтение и запись, после сброса 0x1) — Подача clk_sys на TIMER1 в рабочем режиме.
  • CLK_SYS_TIMER0 (бит 19, чтение и запись, после сброса 0x1) — Подача clk_sys на TIMER0 в рабочем режиме.
  • CLK_SYS_TICKS (бит 18, чтение и запись, после сброса 0x1) — Подача clk_sys на TICKS в рабочем режиме.
  • CLK_REF_TICKS (бит 17, чтение и запись, после сброса 0x1) — Подача clk_ref на TICKS в рабочем режиме.
  • CLK_SYS_TBMAN (бит 16, чтение и запись, после сброса 0x1) — Подача clk_sys на TBMAN в рабочем режиме.
  • CLK_SYS_SYSINFO (бит 15, чтение и запись, после сброса 0x1) — Подача clk_sys на SYSINFO в рабочем режиме.
  • CLK_SYS_SYSCFG (бит 14, чтение и запись, после сброса 0x1) — Подача clk_sys на SYSCFG в рабочем режиме.
  • CLK_SYS_SRAM9 (бит 13, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM9 в рабочем режиме.
  • CLK_SYS_SRAM8 (бит 12, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM8 в рабочем режиме.
  • CLK_SYS_SRAM7 (бит 11, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM7 в рабочем режиме.
  • CLK_SYS_SRAM6 (бит 10, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM6 в рабочем режиме.
  • CLK_SYS_SRAM5 (бит 9, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM5 в рабочем режиме.
  • CLK_SYS_SRAM4 (бит 8, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM4 в рабочем режиме.
  • CLK_SYS_SRAM3 (бит 7, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM3 в рабочем режиме.
  • CLK_SYS_SRAM2 (бит 6, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM2 в рабочем режиме.
  • CLK_SYS_SRAM1 (бит 5, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM1 в рабочем режиме.
  • CLK_SYS_SRAM0 (бит 4, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM0 в рабочем режиме.
  • CLK_SYS_SPI1 (бит 3, чтение и запись, после сброса 0x1) — Подача clk_sys на SPI1 в рабочем режиме.
  • CLK_PERI_SPI1 (бит 2, чтение и запись, после сброса 0x1) — Подача clk_peri на SPI1 в рабочем режиме.
  • CLK_SYS_SPI0 (бит 1, чтение и запись, после сброса 0x1) — Подача clk_sys на SPI0 в рабочем режиме.
  • CLK_PERI_SPI0 (бит 0, чтение и запись, после сброса 0x1) — Подача clk_peri на SPI0 в рабочем режиме.

CLOCKS_SLEEP_EN0 — подача частот блокам в режиме сна, первая часть

Смещение 0xB4, адрес 0x4001 00B4, после сброса 0xFFFF FFFF. Макросы pico-sdk: CLOCKS_SLEEP_EN0_…

  • CLK_SYS_SIO (бит 31, чтение и запись, после сброса 0x1) — Подача clk_sys на SIO в режиме сна.
  • CLK_SYS_SHA256 (бит 30, чтение и запись, после сброса 0x1) — Подача clk_sys на SHA256 в режиме сна.
  • CLK_SYS_PSM (бит 29, чтение и запись, после сброса 0x1) — Подача clk_sys на PSM в режиме сна.
  • CLK_SYS_ROSC (бит 28, чтение и запись, после сброса 0x1) — Подача clk_sys на ROSC в режиме сна.
  • CLK_SYS_ROM (бит 27, чтение и запись, после сброса 0x1) — Подача clk_sys на ROM в режиме сна.
  • CLK_SYS_RESETS (бит 26, чтение и запись, после сброса 0x1) — Подача clk_sys на RESETS в режиме сна.
  • CLK_SYS_PWM (бит 25, чтение и запись, после сброса 0x1) — Подача clk_sys на PWM в режиме сна.
  • CLK_SYS_POWMAN (бит 24, чтение и запись, после сброса 0x1) — Подача clk_sys на POWMAN в режиме сна.
  • CLK_REF_POWMAN (бит 23, чтение и запись, после сброса 0x1) — Подача clk_ref на POWMAN в режиме сна.
  • CLK_SYS_PLL_USB (бит 22, чтение и запись, после сброса 0x1) — Подача clk_sys на PLL_USB в режиме сна.
  • CLK_SYS_PLL_SYS (бит 21, чтение и запись, после сброса 0x1) — Подача clk_sys на PLL_SYS в режиме сна.
  • CLK_SYS_PIO2 (бит 20, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO2 в режиме сна.
  • CLK_SYS_PIO1 (бит 19, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO1 в режиме сна.
  • CLK_SYS_PIO0 (бит 18, чтение и запись, после сброса 0x1) — Подача clk_sys на PIO0 в режиме сна.
  • CLK_SYS_PADS (бит 17, чтение и запись, после сброса 0x1) — Подача clk_sys на PADS в режиме сна.
  • CLK_SYS_OTP (бит 16, чтение и запись, после сброса 0x1) — Подача clk_sys на OTP в режиме сна.
  • CLK_REF_OTP (бит 15, чтение и запись, после сброса 0x1) — Подача clk_ref на OTP в режиме сна.
  • CLK_SYS_JTAG (бит 14, чтение и запись, после сброса 0x1) — Подача clk_sys на JTAG в режиме сна.
  • CLK_SYS_IO (бит 13, чтение и запись, после сброса 0x1) — Подача clk_sys на IO в режиме сна.
  • CLK_SYS_I2C1 (бит 12, чтение и запись, после сброса 0x1) — Подача clk_sys на I2C1 в режиме сна.
  • CLK_SYS_I2C0 (бит 11, чтение и запись, после сброса 0x1) — Подача clk_sys на I2C0 в режиме сна.
  • CLK_SYS_HSTX (бит 10, чтение и запись, после сброса 0x1) — Подача clk_sys на HSTX в режиме сна.
  • CLK_HSTX (бит 9, чтение и запись, после сброса 0x1) — Подача clk_hstx в режиме сна.
  • CLK_SYS_GLITCH_DETECTOR (бит 8, чтение и запись, после сброса 0x1) — Подача clk_sys на GLITCH_DETECTOR в режиме сна.
  • CLK_SYS_DMA (бит 7, чтение и запись, после сброса 0x1) — Подача clk_sys на DMA в режиме сна.
  • CLK_SYS_BUSFABRIC (бит 6, чтение и запись, после сброса 0x1) — Подача clk_sys на BUSFABRIC в режиме сна.
  • CLK_SYS_BUSCTRL (бит 5, чтение и запись, после сброса 0x1) — Подача clk_sys на BUSCTRL в режиме сна.
  • CLK_SYS_BOOTRAM (бит 4, чтение и запись, после сброса 0x1) — Подача clk_sys на BOOTRAM в режиме сна.
  • CLK_SYS_ADC (бит 3, чтение и запись, после сброса 0x1) — Подача clk_sys на ADC в режиме сна.
  • CLK_ADC (бит 2, чтение и запись, после сброса 0x1) — Подача clk_adc в режиме сна.
  • CLK_SYS_ACCESSCTRL (бит 1, чтение и запись, после сброса 0x1) — Подача clk_sys на ACCESSCTRL в режиме сна.
  • CLK_SYS_CLOCKS (бит 0, чтение и запись, после сброса 0x1) — Подача clk_sys на CLOCKS в режиме сна.

CLOCKS_SLEEP_EN1 — подача частот блокам в режиме сна, вторая часть

Смещение 0xB8, адрес 0x4001 00B8, после сброса 0x7FFF FFFF. Макросы pico-sdk: CLOCKS_SLEEP_EN1_…

  • CLK_SYS_XOSC (бит 30, чтение и запись, после сброса 0x1) — Подача clk_sys на XOSC в режиме сна.
  • CLK_SYS_XIP (бит 29, чтение и запись, после сброса 0x1) — Подача clk_sys на XIP в режиме сна.
  • CLK_SYS_WATCHDOG (бит 28, чтение и запись, после сброса 0x1) — Подача clk_sys на WATCHDOG в режиме сна.
  • CLK_USB (бит 27, чтение и запись, после сброса 0x1) — Подача clk_usb в режиме сна.
  • CLK_SYS_USBCTRL (бит 26, чтение и запись, после сброса 0x1) — Подача clk_sys на USBCTRL в режиме сна.
  • CLK_SYS_UART1 (бит 25, чтение и запись, после сброса 0x1) — Подача clk_sys на UART1 в режиме сна.
  • CLK_PERI_UART1 (бит 24, чтение и запись, после сброса 0x1) — Подача clk_peri на UART1 в режиме сна.
  • CLK_SYS_UART0 (бит 23, чтение и запись, после сброса 0x1) — Подача clk_sys на UART0 в режиме сна.
  • CLK_PERI_UART0 (бит 22, чтение и запись, после сброса 0x1) — Подача clk_peri на UART0 в режиме сна.
  • CLK_SYS_TRNG (бит 21, чтение и запись, после сброса 0x1) — Подача clk_sys на TRNG в режиме сна.
  • CLK_SYS_TIMER1 (бит 20, чтение и запись, после сброса 0x1) — Подача clk_sys на TIMER1 в режиме сна.
  • CLK_SYS_TIMER0 (бит 19, чтение и запись, после сброса 0x1) — Подача clk_sys на TIMER0 в режиме сна.
  • CLK_SYS_TICKS (бит 18, чтение и запись, после сброса 0x1) — Подача clk_sys на TICKS в режиме сна.
  • CLK_REF_TICKS (бит 17, чтение и запись, после сброса 0x1) — Подача clk_ref на TICKS в режиме сна.
  • CLK_SYS_TBMAN (бит 16, чтение и запись, после сброса 0x1) — Подача clk_sys на TBMAN в режиме сна.
  • CLK_SYS_SYSINFO (бит 15, чтение и запись, после сброса 0x1) — Подача clk_sys на SYSINFO в режиме сна.
  • CLK_SYS_SYSCFG (бит 14, чтение и запись, после сброса 0x1) — Подача clk_sys на SYSCFG в режиме сна.
  • CLK_SYS_SRAM9 (бит 13, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM9 в режиме сна.
  • CLK_SYS_SRAM8 (бит 12, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM8 в режиме сна.
  • CLK_SYS_SRAM7 (бит 11, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM7 в режиме сна.
  • CLK_SYS_SRAM6 (бит 10, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM6 в режиме сна.
  • CLK_SYS_SRAM5 (бит 9, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM5 в режиме сна.
  • CLK_SYS_SRAM4 (бит 8, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM4 в режиме сна.
  • CLK_SYS_SRAM3 (бит 7, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM3 в режиме сна.
  • CLK_SYS_SRAM2 (бит 6, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM2 в режиме сна.
  • CLK_SYS_SRAM1 (бит 5, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM1 в режиме сна.
  • CLK_SYS_SRAM0 (бит 4, чтение и запись, после сброса 0x1) — Подача clk_sys на SRAM0 в режиме сна.
  • CLK_SYS_SPI1 (бит 3, чтение и запись, после сброса 0x1) — Подача clk_sys на SPI1 в режиме сна.
  • CLK_PERI_SPI1 (бит 2, чтение и запись, после сброса 0x1) — Подача clk_peri на SPI1 в режиме сна.
  • CLK_SYS_SPI0 (бит 1, чтение и запись, после сброса 0x1) — Подача clk_sys на SPI0 в режиме сна.
  • CLK_PERI_SPI0 (бит 0, чтение и запись, после сброса 0x1) — Подача clk_peri на SPI0 в режиме сна.

CLOCKS_ENABLED0 — частоты, которые подаются сейчас, первая часть

Смещение 0xBC, адрес 0x4001 00BC, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_ENABLED0_…

  • CLK_SYS_SIO (бит 31, только чтение, после сброса 0x0) — clk_sys на SIO сейчас подаётся.
  • CLK_SYS_SHA256 (бит 30, только чтение, после сброса 0x0) — clk_sys на SHA256 сейчас подаётся.
  • CLK_SYS_PSM (бит 29, только чтение, после сброса 0x0) — clk_sys на PSM сейчас подаётся.
  • CLK_SYS_ROSC (бит 28, только чтение, после сброса 0x0) — clk_sys на ROSC сейчас подаётся.
  • CLK_SYS_ROM (бит 27, только чтение, после сброса 0x0) — clk_sys на ROM сейчас подаётся.
  • CLK_SYS_RESETS (бит 26, только чтение, после сброса 0x0) — clk_sys на RESETS сейчас подаётся.
  • CLK_SYS_PWM (бит 25, только чтение, после сброса 0x0) — clk_sys на PWM сейчас подаётся.
  • CLK_SYS_POWMAN (бит 24, только чтение, после сброса 0x0) — clk_sys на POWMAN сейчас подаётся.
  • CLK_REF_POWMAN (бит 23, только чтение, после сброса 0x0) — clk_ref на POWMAN сейчас подаётся.
  • CLK_SYS_PLL_USB (бит 22, только чтение, после сброса 0x0) — clk_sys на PLL_USB сейчас подаётся.
  • CLK_SYS_PLL_SYS (бит 21, только чтение, после сброса 0x0) — clk_sys на PLL_SYS сейчас подаётся.
  • CLK_SYS_PIO2 (бит 20, только чтение, после сброса 0x0) — clk_sys на PIO2 сейчас подаётся.
  • CLK_SYS_PIO1 (бит 19, только чтение, после сброса 0x0) — clk_sys на PIO1 сейчас подаётся.
  • CLK_SYS_PIO0 (бит 18, только чтение, после сброса 0x0) — clk_sys на PIO0 сейчас подаётся.
  • CLK_SYS_PADS (бит 17, только чтение, после сброса 0x0) — clk_sys на PADS сейчас подаётся.
  • CLK_SYS_OTP (бит 16, только чтение, после сброса 0x0) — clk_sys на OTP сейчас подаётся.
  • CLK_REF_OTP (бит 15, только чтение, после сброса 0x0) — clk_ref на OTP сейчас подаётся.
  • CLK_SYS_JTAG (бит 14, только чтение, после сброса 0x0) — clk_sys на JTAG сейчас подаётся.
  • CLK_SYS_IO (бит 13, только чтение, после сброса 0x0) — clk_sys на IO сейчас подаётся.
  • CLK_SYS_I2C1 (бит 12, только чтение, после сброса 0x0) — clk_sys на I2C1 сейчас подаётся.
  • CLK_SYS_I2C0 (бит 11, только чтение, после сброса 0x0) — clk_sys на I2C0 сейчас подаётся.
  • CLK_SYS_HSTX (бит 10, только чтение, после сброса 0x0) — clk_sys на HSTX сейчас подаётся.
  • CLK_HSTX (бит 9, только чтение, после сброса 0x0) — clk_hstx сейчас подаётся.
  • CLK_SYS_GLITCH_DETECTOR (бит 8, только чтение, после сброса 0x0) — clk_sys на GLITCH_DETECTOR сейчас подаётся.
  • CLK_SYS_DMA (бит 7, только чтение, после сброса 0x0) — clk_sys на DMA сейчас подаётся.
  • CLK_SYS_BUSFABRIC (бит 6, только чтение, после сброса 0x0) — clk_sys на BUSFABRIC сейчас подаётся.
  • CLK_SYS_BUSCTRL (бит 5, только чтение, после сброса 0x0) — clk_sys на BUSCTRL сейчас подаётся.
  • CLK_SYS_BOOTRAM (бит 4, только чтение, после сброса 0x0) — clk_sys на BOOTRAM сейчас подаётся.
  • CLK_SYS_ADC (бит 3, только чтение, после сброса 0x0) — clk_sys на ADC сейчас подаётся.
  • CLK_ADC (бит 2, только чтение, после сброса 0x0) — clk_adc сейчас подаётся.
  • CLK_SYS_ACCESSCTRL (бит 1, только чтение, после сброса 0x0) — clk_sys на ACCESSCTRL сейчас подаётся.
  • CLK_SYS_CLOCKS (бит 0, только чтение, после сброса 0x0) — clk_sys на CLOCKS сейчас подаётся.

CLOCKS_ENABLED1 — частоты, которые подаются сейчас, вторая часть

Смещение 0xC0, адрес 0x4001 00C0, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_ENABLED1_…

  • CLK_SYS_XOSC (бит 30, только чтение, после сброса 0x0) — clk_sys на XOSC сейчас подаётся.
  • CLK_SYS_XIP (бит 29, только чтение, после сброса 0x0) — clk_sys на XIP сейчас подаётся.
  • CLK_SYS_WATCHDOG (бит 28, только чтение, после сброса 0x0) — clk_sys на WATCHDOG сейчас подаётся.
  • CLK_USB (бит 27, только чтение, после сброса 0x0) — clk_usb сейчас подаётся.
  • CLK_SYS_USBCTRL (бит 26, только чтение, после сброса 0x0) — clk_sys на USBCTRL сейчас подаётся.
  • CLK_SYS_UART1 (бит 25, только чтение, после сброса 0x0) — clk_sys на UART1 сейчас подаётся.
  • CLK_PERI_UART1 (бит 24, только чтение, после сброса 0x0) — clk_peri на UART1 сейчас подаётся.
  • CLK_SYS_UART0 (бит 23, только чтение, после сброса 0x0) — clk_sys на UART0 сейчас подаётся.
  • CLK_PERI_UART0 (бит 22, только чтение, после сброса 0x0) — clk_peri на UART0 сейчас подаётся.
  • CLK_SYS_TRNG (бит 21, только чтение, после сброса 0x0) — clk_sys на TRNG сейчас подаётся.
  • CLK_SYS_TIMER1 (бит 20, только чтение, после сброса 0x0) — clk_sys на TIMER1 сейчас подаётся.
  • CLK_SYS_TIMER0 (бит 19, только чтение, после сброса 0x0) — clk_sys на TIMER0 сейчас подаётся.
  • CLK_SYS_TICKS (бит 18, только чтение, после сброса 0x0) — clk_sys на TICKS сейчас подаётся.
  • CLK_REF_TICKS (бит 17, только чтение, после сброса 0x0) — clk_ref на TICKS сейчас подаётся.
  • CLK_SYS_TBMAN (бит 16, только чтение, после сброса 0x0) — clk_sys на TBMAN сейчас подаётся.
  • CLK_SYS_SYSINFO (бит 15, только чтение, после сброса 0x0) — clk_sys на SYSINFO сейчас подаётся.
  • CLK_SYS_SYSCFG (бит 14, только чтение, после сброса 0x0) — clk_sys на SYSCFG сейчас подаётся.
  • CLK_SYS_SRAM9 (бит 13, только чтение, после сброса 0x0) — clk_sys на SRAM9 сейчас подаётся.
  • CLK_SYS_SRAM8 (бит 12, только чтение, после сброса 0x0) — clk_sys на SRAM8 сейчас подаётся.
  • CLK_SYS_SRAM7 (бит 11, только чтение, после сброса 0x0) — clk_sys на SRAM7 сейчас подаётся.
  • CLK_SYS_SRAM6 (бит 10, только чтение, после сброса 0x0) — clk_sys на SRAM6 сейчас подаётся.
  • CLK_SYS_SRAM5 (бит 9, только чтение, после сброса 0x0) — clk_sys на SRAM5 сейчас подаётся.
  • CLK_SYS_SRAM4 (бит 8, только чтение, после сброса 0x0) — clk_sys на SRAM4 сейчас подаётся.
  • CLK_SYS_SRAM3 (бит 7, только чтение, после сброса 0x0) — clk_sys на SRAM3 сейчас подаётся.
  • CLK_SYS_SRAM2 (бит 6, только чтение, после сброса 0x0) — clk_sys на SRAM2 сейчас подаётся.
  • CLK_SYS_SRAM1 (бит 5, только чтение, после сброса 0x0) — clk_sys на SRAM1 сейчас подаётся.
  • CLK_SYS_SRAM0 (бит 4, только чтение, после сброса 0x0) — clk_sys на SRAM0 сейчас подаётся.
  • CLK_SYS_SPI1 (бит 3, только чтение, после сброса 0x0) — clk_sys на SPI1 сейчас подаётся.
  • CLK_PERI_SPI1 (бит 2, только чтение, после сброса 0x0) — clk_peri на SPI1 сейчас подаётся.
  • CLK_SYS_SPI0 (бит 1, только чтение, после сброса 0x0) — clk_sys на SPI0 сейчас подаётся.
  • CLK_PERI_SPI0 (бит 0, только чтение, после сброса 0x0) — clk_peri на SPI0 сейчас подаётся.

CLOCKS_INTR — необработанные флаги прерываний

Смещение 0xC4, адрес 0x4001 00C4, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_INTR_…

  • CLK_SYS_RESUS (бит 0, только чтение, после сброса 0x0) — Сработало восстановление clk_sys.

CLOCKS_INTE — разрешение прерываний

Смещение 0xC8, адрес 0x4001 00C8, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_INTE_…

  • CLK_SYS_RESUS (бит 0, чтение и запись, после сброса 0x0) — Разрешение прерывания по восстановлению clk_sys.

CLOCKS_INTF — принудительная установка прерываний

Смещение 0xCC, адрес 0x4001 00CC, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_INTF_…

  • CLK_SYS_RESUS (бит 0, чтение и запись, после сброса 0x0) — Принудительное прерывание восстановления clk_sys.

CLOCKS_INTS — флаги прерываний после маски и принуждения

Смещение 0xD0, адрес 0x4001 00D0, после сброса 0x0000 0000. Макросы pico-sdk: CLOCKS_INTS_…

  • CLK_SYS_RESUS (бит 0, только чтение, после сброса 0x0) — Прерывание восстановления clk_sys после маски.

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

Как вывести тактовую частоту RP2350 на вывод GPIO?

Выберите на выводе функцию CLOCK GPOUT0…3, задайте источник в AUXSRC регистра CLK_GPOUTn_CTRL и делитель в CLK_GPOUTn_DIV — целая часть в битах 31:16, дробная в 15:0 — и установите ENABLE. Частота на выводе — до 50 МГц; что генератор запустился, покажет бит ENABLED.

Чем делитель тактов RP2350 отличается от RP2040?

У RP2350 дробная часть 16-битная: делитель записывают в формате 16.16 (целая часть в битах 31:16, дробная в 15:0) вместо 24.8 у RP2040, диапазон — от 1,0 до 2¹⁶. После сброса в регистре 0x0001 0000, то есть деление на 1.

Где на RP2350 часы реального времени?

Генератора clk_rtc и блока RTC больше нет: время в пониженном питании считает таймер AON в блоке POWMAN — 64-битный счётчик миллисекунд от LPOSC, кварца или внешнего сигнала.

Источники

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

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

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

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