Si5351: программируемый генератор на любую частоту Печать
Добавил(а) microsin   

Микросхема Si5351 это конфигурируемый через I2C генератор тактовых частот, идеально подходящий для замены кварцев, кварцевых генераторов, генераторов VCXO, синтезаторов с ФАПЧ (PLL), буферов развязки в приложениях, критичных к общей стоимости. Базируясь на архитектуре PLL/VCXO + high resolution MultiSynth fractional divider, Si5351 может генерировать любую частоту до 200 МГц на каждом из выходов с нулевым отклонением от заданного значения (0 ppm error). Для удовлетворения различным требованиям приложений Si5351 выпускается в 3 версиях. Si5351A генерирует до 8 не зависящих друг от друга тактовых сигнала, используя внутренний генератор, что позволяет заменить несколько кварцев или кварцевых генераторов. В Si5351B добавлен внутренний VCXO, что дает возможность заменить как свободно (независимо друг от друга), так и синхронно генерируемые тактовые частоты. Это устраняет необходимость применения дорогих специальных кварцев, предоставляя при этом высокую надежность работы в широком диапазоне настраиваемых частот. Si5351C предоставляет такую же гибкость, но синхронизируется при этом с внешним опорным генератором (CLKIN).

Функциональная блок-схема Si5351 разных версий:

Si5351 func block diagram

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

• Генерирует до 3 (или до 8, в зависимости от типа корпуса) не связанных линейной зависимостью частот от 2.5 кГц до 200 МГц.
• Конфигурация задается пользователем через интерфейс I2C.
• Абсолютно точный синтез частоты на каждом выходе (ошибка 0 ppm).
• VCXO с высокой линейностью.
• Опционально сигнал тактирования можно подать на CLKIN (для Si5351C).
• Малый джиттер периода выходного сигнала: типовое значение < 70 ps pp.
• Конфигурируемый расширяемый спектр помех на каждом выходе.
• Работает от дешевого кварца с фиксированной частотой: 25 или 27 МГц.
• Поддерживает статическое смещение фазы.
• Программируемое время нарастания/спада уровня.
• Изменение частоты без лишних выбросов на выходе.
• Отдельные выводы для напряжения питания:
   - Core VDD: 2.5V или 3.3 V.
   - Output VDDO: 1.8V, 2.5V или 3.3 V.
• Отличный PSRR, устраняющий необходимость фильтрации внешнего источника питания.
• Очень малое потребление энергии.
• Настраиваемая задержка между выходами.
• Доступен в 3 типах корпусов:
   - 10-MSOP: 3 выхода.
   - 24-QSOP: 8 выходов (этот вариант корпуса с некоторых пор больше не предлагается).
   - 20-QFN (4x4 mm): 8 выходов.
• Обеспечивает совместимость с PCIE Gen 1.
• Поддерживает совместимость с уровнями HCSL.

Области применения:

• Устройства HDTV, DVD/Blu-ray.
• Оборудование audio/video, видеоигры.
• Принтеры, сканеры, проекторы.
• Переносные измерительные приборы.
• Базовые сетевые шлюзы.
• Обмен данными по сети.
• Серверы, устройства хранения данных.
• Замена XO.

Таблица 1. Сводная таблица возможностей генераторов семейства Si5350/Si5351.

Part Number I2C или Pin Опорная частота Запрограммировано? Выходов
Si5351A-B-GT I2C Только XTAL Чистая микросхема 3
Si5351A-B-GM 8
Si5351B-B-GM XTAL и/или VC 8
Si5351C-B-GM XTAL и/или CLKIN 8
Si5351A-Bxxxxx-GT Только XTAL Запрограммировано на заводе 3
Si5351A-Bxxxxx-GM 8
Si5351B-Bxxxxx-GM XTAL и/или VC 8
Si5351C-Bxxxxx-GM XTAL и/или CLKIN 8
Si5351A-Bxxxxx-GT Pin Только XTAL 3
Si5351A-Bxxxxx-GM 8
Si5350B-Bxxxxx-GT XTAL и/или VC 3
Si5351B-Bxxxxx-GM 8
Si5350C-Bxxxxx-GT XTAL и/или CLKIN 3
Si5351C-Bxxxxx-GM 8

Замечания:

1. XTAL = 25/27 МГц, VC = 0 .. VDD, CLKIN = 10 .. 100 МГц. "xxxxx" = уникальный код пользователя.
2. Микросхемы создаются с запрограммированными на заводе пользовательскими настройками, полученными с помощью ПО www.silabs.com/ClockBuilder.

Таблица 2. Рекомендуемые условия применения.

Симв. Параметр MIN typ MAX Ед.
TA Температура окружающего воздуха -40 25 +85 °C
VDD Напряжение питания ядра 3.0 3.3 3.6 V
2.25 2.5 2.75 V
VDDOx Напряжение питания выходного буфера 1.71 1.8 1.89 V
2.25 2.5 2.75 V
3.0 3.3 3.6 V

Замечания: все минимальные и максимальные значения параметров гарантируются только в пределах указанных рекомендуемых рабочих условий. Типовые значения применимы при номинальных напряжениях питания и рабочей температуре 25°C, если не указано нечто иное. VDD и VDDOx могут быть разными, не зависящими друг от друга напряжениями. Требуется, чтобы VDDOx получили питание первыми, либо требуется одновременная подача питания для всех VDD и VDDOx.

Таблица 3. Характеристики DC (VDD = 2.5V±10% или 3.3V±10%, TA = –40 .. 85°C).

Симв. Параметр Условия теста MIN typ MAX Ед.
IDD Ток потребления ядра Разрешено 3 выхода - 22 35 мА
Разрешено 8 выхода - 27 45 мА
IDDOx Ток потребления выходного буфера (на 1 выход)* CL = 5 пФ - 2.2 5.6 мА
ICLKIN Входной ток CLKIN, SDA, SCL Vin < 3.6V - - 10 мкА
IVC VC - - 30 мкА
ZO Выходной импеданс 3.3V VDDO, по умолчанию высокая нагрузочная способность (high drive) - 50 - Ω

Примечание *: тактовые частоты меньше или равны 100 МГц.

Таблица 4. Характеристики AC (VDD = 2.5V±10% или 3.3V±10%, TA = –40 .. 85°C).

Симв. Параметр Условия теста MIN typ MAX Ед.
TRDY Время готовности после включения питания (Power-up Time) От VDD=VDDmin до стабильности выходных тактов, CL = 5 пФ, fCLKn > 1 МГц - 2 10 мс
TBYP Время готовности в режиме пропуска ФАПЧ (Power-up Time, PLL Bypass Mode) - 0.5 1 мс
TOE Время разрешения выхода От OEB->0 до стабильности выходных тактов, CL = 5 пФ, fCLKn > 1 МГц - - 10 мкс
PSTEP Шаг смещения фазы (Output Phase Offset)   - 333 - ps/step
SSDEV Расширение спектра (Spread Spectrum Frequency Deviation) Расширение спектра вниз. Выбирается шагами по 0.1%. -0.1 - -2.5 %
Расширение относительно средней частоты. Выбирается шагами по 0.1%. ±0.1 - ±0.1 %
SSMOD Частота модуляции спектра   30 31.5 33 кГц
Параметры VCXO (относится только к Si5351B):
Vc Диапазон напряжения управления частотой   0 VDD/2 VDD V
Kv Коэффициент усиления напряжения управления (конфигурируется) Vc = 10–90% VDD, VDD = 3.3V 18 - 150 ppm/V
KVL Отклонение от линейности влияния напряжения управления на частоту Vc = 10–90% VDD -5 - +5 %
PR Величина перестройки (VCXO Pull Range, конфигурируется) VDD = 3.3V* ±30 0 ±240 ppm
  Полоса модуляции VCXO   - 10 - кГц

Примечание *: обратитесь в компанию Silicon Labs для работы VCXO от 2.5V.

Таблица 5. Характеристики входа тактовой частоты (VDD = 2.5V±10% или 3.3V±10%, TA = –40 .. 85°C).

Симв. Параметр MIN typ MAX Ед.
fXTAL Частота кварца 25 - 27 МГц
VIL Уровень лог. 0 CLKIN -0.1 - 0.3VDD V
VIH Уровень лог. 1 CLKIN 0.7VDD - 3.6 V
fCLKIN Частота CLKIN 10 - 100 МГц

Таблица 6. Характеристики выходов тактовых частот (VDD = 2.5V±10% или 3.3V±10%, TA = –40 .. 85°C).

Симв. Параметр Условия теста MIN typ MAX Ед.
FCLK Выходная частота(1) Разрешено 3 выхода 0.0025 - 200 МГц
CL Емкость нагрузки   - - 15 пФ
DC
Скважность (Duty Cycle) FCLK ≤ 160 МГц, измеренная на VDD/2 45 50 55 %
FCLK > 160 МГц, измеренная на VDD/2 40 50 60 %
tr Время нарастания лог. уровня 20%–80%, CL = 5 пФ, высокая нагрузочная способность (по умолчанию) - 1 1.5 нс
tf Время спада лог. уровня - 1 1.5 нс
VOH Выходной уровень лог. 1 CL = 5 пФ VDD-0.6V - - V
VOL Выходной уровень лог. 0 - - 0.6 V
JPER Джиттер периода(2,3) Корпус QFN20, 4 работающих выхода, запитанных от одного VDDO - 40 95 пс(4)
Корпус MSOP10 или QFN20, работают все выходы - 70 155
JCC Джиттер цикл-цикл(2,3) Корпус QFN20, 4 работающих выхода, запитанных от одного VDDO - 50 90
Корпус MSOP10 или QFN20, работают все выходы - 70 150
JPER_VCXO Джиттер периода VCXO(2,3) Корпус QFN20, 4 работающих выхода, запитанных от одного VDDO - 50 95
Корпус MSOP10 или QFN20, работают все выходы - 70 155
JCC_VCXO Джиттер цикл-цикл VCXO(2,3) Корпус QFN20, 4 работающих выхода, запитанных от одного VDDO - 50 90
Корпус MSOP10 или QFN20, работают все выходы - 70 150

Примечания:

(1). Только 2 уникальные частоты выше 112.5 МГц могут быть получены на выходе одновременно.
(2). Измерено по 10K циклам. Джиттер указан только при настройке выхода по умолчанию с высокой нагрузочной способностью (high drive strength, выходной импеданс 50Ω).
(3). Джиттер сильно зависит от частотной конфигурации. В спецификациях представлены данные плана частот "worst case, real world" (самый худший случай, как в реальной жизни); фактические параметры могут быть существенно лучше. Корпуса 10 MSOP с 3 выходами анализировались с генерацией частот на выходах 74.25, 24.576 и 48 МГц. Корпуса 20 QFN с 8 выходами анализировались с частотами на выходах 33.333, 74.25, 27, 24.576, 22.5792, 28.322, 125 и 48 МГц.
(4). Указаны значения от пика до пика.

Таблица 7. Требования к применяемому кварцевому резонатору(1,2).

Симв. Параметр MIN typ MAX Ед.
fXTAL Частота кварца 25 - 27 МГц
CL Емкость нагрузки (конденсаторы, подключаемые между выводом кварца и GND) 6 - 12 пФ
rESR Эквивалентное последовательное сопротивление -
- 150 Ω
dL Максимальная мощность кварцевого генератора (Crystal Max Drive Level) 100 - - мкВт

Примечания:

(1). Кварцы, требующие внешних емкостей 6, 8 или 10 пФ, для обеспечения наилучшей функциональности должны использовать  внутренние конденсаторы нагрузки микросхемы (см. биты 7:6 регистра 183). Кристаллы, рассчитанные на 12 пФ, должны использовать комбинацию внутреннего конденсатора нагрузки 10 пФ микросхемы с дополнительными внешними нагрузочными конденсаторами 2 .. 4 пФ.
(2). Для дополнительной информации см. апноут AN551 [4].

Таблица 8. Спецификации сигналов SCL, SDA интерфейса I2C(1).

Симв.
Параметр
Условия теста
Standard Mode (100 kbps) Fast Mode (400 kbps) Ед.
MIN MAX MIN MAX
VILI2C Уровень лог. 0   -0.5 0.3VDDI2C -0.5 0.3VDDI2C(2) V
VIHI2C Уровень лог. 1   0.7VDDI2C 3.6 0.7VDDI2C(2) 3.6 V
VHYS Гистерезис входов триггера Шмитта   - -
0.1 - V
VOLI2C(2) Уровень выходного лог. 0 (открытый сток или открытый коллектор)  при втекающем токе 3 мА VDDI2C(2) = 2.5/3.3V 0 0.4 0 0.4 V
III2C Входной ток   -10 10 -10 10 мкА
CII2C Входная емкость каждого вывода VIN = -0.1..VDDI2C - 4 - 4 пФ
TTO Таймаут шины I2C Таймаут разрешен 25 35 25 35 мс

Примечания:

(1). Для дополнительной информации обратитесь к спецификации NXP UM10204 шины I2C и соответствующему руководству пользователя: www.nxp.com/acrobat_download/usermanuals/UM10204_3.pdf .
(2). Поддерживаются напряжения верхней подтяжки I2C только в диапазоне 2.25V .. 3.63V (VDDI2C).

Таблица 9. Температурные характеристики.

Симв. Параметр Условия теста Корпус Значение Ед.
θJA
Термосопротивление от кристалла до окружающей среды Без циркуляции воздуха MSOP10 131 °C/W
QFN20 119
θJC Термосопротивление между кристаллом и корпусом QFN20 16

Таблица 10. Предельно допустимые значения(1).

Симв. Параметр Условия теста Значение Ед.
VDD_max Напряжение питания   -0.5..3.8 V
VIN_CLKIN Входное напряжение CLKIN, SCL, SDA -0.5..3.8 V
VIN_VC   VC -0.5..(VDD+0.3) V
VDDOx   XA, XB -0.5..1.3V V
TJ Температура кристалла   -55..+150 °C
TPEAK Температура пайки (профиль Pb-free)(2)   260 °C
TP Время пайки для TPEAK (профиль Pb-free)(2)   20..40 сек

Примечания:

(1). В случае превышения этих значений возможно необратимое повреждение устройства. Условия функционирования должны соответствовать указанным рабочим условиям этого документа. Работа устройства возле предельно допустимых значений в течение длительного времени может повлиять на надежность.
(2). Устройство совместимо со стандартом JEDEC J-STD-020.

Si5351A block diagram MSOP10 fig01a

Si5351A block diagram QFN20 fig01b

Рис. 1. Блок-схемы устройств Si5351A с 3 и 8 выходами.

Si5351B block diagram QFN20 fig02a

Si5351C block diagram QFN20 fig02b

Рис. 2. Блок-схемы устройств Si5351B и Si5351C с 8 выходами.

[3. Функциональное описание]

Si5351 это продвинутый, программируемый через I2C генератор тактов, идеально подходящий для замены кварцев, кварцевых генераторов, VCXO, систем PLL и буферов. На блок-диаграмме рис. 3 показана общая архитектура Si5351. Это устройство состоит из четырех основных включенных друг за другом каскадов: входного блока, двух блоков синтеза и выходного блока.

В качестве тактов блок входов принимает подключение внешнего кварца (XTAL) или внешнего тактового сигнала, поданного на вход (CLKIN). Также может быть подано на его вход внешнее управляющее частотой напряжение (VC), в зависимости от версии устройства (Si5351A, Si5351B или Si5351C). Первый каскад блока синтеза умножает входные частоты для получения высокой промежуточной частоты, а второй каскад синтеза использует дробные делители с высоким разрешением (high resolution MultiSynth fractional dividers) для генерации требуемых выходных частот. Дополнительное целочисленное деление предоставляется на блоке выхода для получения низких выходных частот до 8 кГц. Матричные коммутаторы на каждом каскаде синтеза дают значительную гибкость при маршрутизации любых входов на любые выходы.

Si5351 block diagram fig03

Рис. 3. Блок-диаграмма Si5351.

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

3.1. Блок входов

Входы для подключения кварца (XA, XB). Si5351 использует стандартные кварцы фиксированной частоты со срезом типа AT для запуска внутреннего генератора. Выход этого генератора может использоваться как опорная частота для работающих независимо друг от друга (free-running) систем PLL, в результате генерируются асинхронные по отношению друг к другу тактовые частоты. Выходная частота генератора будет работать на частоте используемого кварца, 25 МГц или 27 МГц. Этот кварц также используется для опорной частоты VCXO, чтобы помочь достичь требуемой точности частоты.

Предоставляются программируемые внутренние конденсаторы нагрузки (load capacitors, CL), чтобы устранить необходимость в дополнительных внешних компонентах, подключаемых к кварцу Si5351. Опции настройки позволяют выбрать конденсаторы нагрузки 0, 6, 8 или 10 pF. Кварцы, требующие других емкостей, подключаются с дополнительными внешними конденсаторами, как показано на рис. 4. За подробными рекомендациями по использованию кварцевых резонаторов обращайтесь к апноуту AN551 [4].

Si5351 Ext XTAL with Optional Load Capacitors fig04

Рис. 4. Внешний кварц XTAL и дополнительные конденсаторы нагрузки.

Вход тактирования (CLKIN). Когда требуется генерировать синхронные тактовые частоты, в качестве опорной частоты для PLL используется внешний тактовый вход версии Si5351C микросхемы. CLKIN может принимать любую частоту от 10 до 100 MHz. Делитель на входном каскаде ограничивает входную частоту PLL значением 30 МГц.

Вход для управления напряжением (VC). Архитектура VCXO версии Si5350B микросхемы устраняет необходимость внешнего специального кварца. Требуется только стандартный, дешевый кварц на фиксированную частоту (25 или 27 МГц) со срезом типа AT.

Диапазон настройки VCXO конфигурируется в достаточной степени, чтобы удовлетворить широкому спектру применений. Ключевые достоинства дизайна VCXO Si5351 - высокая линейность, широкий рабочий диапазон (линейный от 10% до 90% VDD), устойчивый запуск и надежное функционирование. Подробные спецификации VCXO см. в таблице 4 (врезка "2. Электрические характеристики").

Уникальная функция Si5351B - возможность генерировать несколько выходных частот, управляемых одним и тем же напряжением, поданным на вход VC. Это заменяет несколько систем PLL или генераторов VCXO, которые обычно использовались бы для привязки к одному управляющему напряжению (см. рис. 5).

3.2. Каскады синтеза

Si5351 для синтеза конечных выходных частот использует 2 каскада. Первый использует блоки PLL для умножения входной опорной частоты, в результате получается высокая промежуточная внутренняя частота. Второй каскад использует специальные дробные делители высокого разрешения MultiSynth для генерации требуемых выходных частот. Одновременно на выходе можно генерировать только две уникальные частоты выше 112.5 МГц. Например, нельзя одновременно получить 125 МГц (CLK0), 130 МГц (CLK1) и 150 МГц (CLKx). Обратите внимание, что можно предоставить несколько копий частот выше 112.5 МГц. Например, 125 МГц можно выдать на 4 выходах (CLK0..CLK3) одновременно с выводом 130 МГц на 4 других выходах (CLK4..CLK7).

Матричный мультиплексор на входе первого каскада синтеза позволяет осуществить захват каждой PLL от частоты входа CLKIN или XTAL. Это дает возможность для каждой PLL работать от разных источников опорной частоты, чтобы сгенерировать независимые и/или синхронные тактовые частоты. Альтернативно обе PLL могли бы работать от одного источника тактов. Матричный коммутатор на входе второго каскада синтезатора позволяет подключить любой из делителей MultiSynth к PLLA или PLLB. Эта гибкая архитектура синтеза позволяет любому выходу генерировать синхронные или не синхронные такты, с расширением спектра или без такового, и с гибкой возможностью генерации на каждом выходе частот, не соотносящихся друг с другом целочисленными коэффициентами.

Все выходы VCXO генерируются только от PLLB. Высокоточные делители MultiSynth VCXO синтезируют выходную центральную частоту до 112.5 МГц. Тогда центральная частота управляется входом VC (или он может быть подтянут к определенному уровню). Интересная функция Si5351 - выход VCXO может маршрутизироваться на вход больше одного делителя MultiSynth. Это создает VCXO с несколькими выходными частотами, управляемыми от одного входа VC, как показано на рис. 5.

Si5351 using as Multi Output VCXO fig05

Рис. 5. Использование Si5351 в качестве VCXO с несколькими выходами.

Частоты ниже 8 кГц могут быть сгенерированы применением делителя R на выходе системы MultiSynth (см. рис. 5).

3.3. Блок выходов

Можно применить дополнительный уровень деления частоты (R) на каскаде выхода, чтобы генерировать частоты ниже 2.5 кГц. Все выходные драйверы генерируют выходные уровни CMOS, причем эти уровни могут быть разными на разных выходах благодаря раздельным уровням напряжений питания выхода (VDDOx). Можно получить различные уровни тактового сигнала (1.8V, 2.5V или 3.3V) на каждом из четырех банков с двумя выходами.

3.4. Расширение спектра (Spread Spectrum)

Может быть разрешена функция расширения спектра (Spread Spectrum) на любом из тактовых выходов, которые в качестве опорной частоты используют PLLA. Это полезно для снижения уровня излучаемых помех (EMI). Разрешение Spread Spectrum на тактовом выходе модулирует его частоту, что эффективно снижает общую амплитуду излучаемой энергии. Обратите внимание, что расширение спектра недоступно для выходных тактов, синхронизируемых PLLB или для VCXO.

Si5351 поддерживает несколько уровней расширения спектра, позволяя разработчику реализовать идеальный компромисс между точностью работы системы и совместимости по EMI.

Si5351 Spectrum Profiles no Spread fig06a Si5351 Spectrum Profiles Center Spread fig06b Si5351 Spectrum Profiles Down Spread fig06c
Расширение спектра
не используется
Расширение спектра относительно
центральной частоты
Расширение спектра в сторону
низких частот

Рис. 6. Доступные профили Spread Spectrum.

3.5. Сигналы управления (OEB, SSEN)

Si5351 предоставляет внешние выводы управления для разрешения/запрещения тактовых выходов и функции Spread Spectrum.

Output Enable (OEB). Это вывод разрешения выхода, который включает или выключает формирование тактовых сигналов на выходе. Тактовые сигналы на выходе разрешены, когда OEB удерживается в низком уровне, и запрещены, когда OEB подтянут к высокому уровню. В состоянии запрета поведение выхода может быть запрограммировано на один из 3 вариантов: лог. 1, лог. 0 или высокое сопротивление (выход отключен, Hi-Z).

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

Spread Spectrum Enable (SSEN). Эта функция доступна только для Si5351A и Si5351B. Вход управления SSEN позволяет запретить функцию расширения спектра на всех выходах, которые сконфигурированы на расширение спектра. Удерживание SSEN на низком уровне запрещает расширение спектра. Вывод SSEN представляет удобный метод оценки эффекта применения функции расширения спектра на тактовых выходах во время тестирования на совместимость с требованиями EMI.

[4. Интерфейс I2C]

Многие функции и возможности Si5351 управляются чтением и записью регистров RAM через интерфейс I2C. Следующий список общих функций управляется через I2C. Для получения полного списка регистров I2C и шагов программирования см. апноут AN619 [3].

1. Индикаторы состояния (Read Status Indicators).

   • Сигнал потери опорной частоты кварцевого генератора (Crystal Reference Loss of signal, LOS_XTAL, reg0[3]).
   • Сигнал потери частоты на тактовом входе (CLKIN Loss of signal, LOS_CLKIN, reg0[4]).
   • Потеря захвата петли ФАПЧ PLLA и/или PLLB (PLLA and/or PLLB Loss of lock, LOL_A or LOL_B, reg0[6:5]).

2. Конфигурация умножения и деления (Configuration of multiplication and divider values for the PLLs, MultiSynth dividers).

3. Конфигурация профиля расширения спектра (Configuration of the Spread Spectrum profile). Куда повернуть спектр - вниз или в центр, процент модуляции.

4. Управление матрицей коммутатора для соединения ФАПЧ и делителей (Control of the cross point switch selection for each of the PLLs and MultiSynth dividers).

5. Установка опций выходных тактов.

   • Разрешение/запрещение каждого тактового выхода.
   • Инверсия/отключение инверсии на каждом тактовом выходе.
   • Коэффициент выходного делителя (2n, n=1..7).
   • Состояние выхода в режиме запрета (stop hi, stop low, Hi-Z).
   • Смещение фазы генерируемой выходной частоты.

Интерфейс I2C работает в режиме подчиненного устройства (slave mode) с 7-битной адресацией, и может работать в стандартном режиме (Standard-Mode, скорость 100 kbps) или в быстром режиме (Fast-Mode, скорость 400 kbps), и поддерживает ускоренные пакетные передачи данных (burst data transfer) с автоматическим инкрементом адреса.

Шина I2C состоит из двунаправленного сигнала данных (SDA) и входного сигнала тактирования (SCL), что показано на рис. 7. Оба вывода SDA и SCL должны быть подтянуты к VDD через внешний pull-up резистор, как рекомендуется стандартом I2C.

Si5351 I2C and control signals fig07

Рис. 7. I2C и сигналы управления.

7-битный адрес подчиненного устройства Si5351 (Slave Address) состоит из 6-битной фиксированной части плюс младший бит LSB, как показано на рис. 8. Для бита LSB можно выбрать значение 0 или 1 с помощь опционального вывода A0, который полезен для приложений, требующих больше одной микросхемы Si5351 на одной шине I2C.

Si5351 I2C Slave Address fig08

Рис. 8. Slave Address шины I2C для микросхемы Si5351.

Данные передаются 8-битными словами старшим битом (MSB) вперед, в соответствии со стандартом I2C. Команда записи состоит из 7 бит адреса устройства + бит записи, 8 бит адреса регистра и 8 бит данных, как показано на рис. 9. Также на этом рисунке показана операция пакетной записи (write burst) когда дополнительные слова данных записываются с использованием функции автоматического инкремента адреса.

Si5351 I2C Write Operation fig09

Рис. 9. Операция записи I2C.

Операция чтения выполняется за 2 шага. Сначала записываются данные для установки адреса регистра, после чего выполняется чтение, чтобы получить данные по установленному адресу. При этом также поддерживается пакетная передача (read burst). Чтение показано на рис. 10.

Si5351 I2C Read Operation fig10

Рис. 10. Операция чтения I2C.

Электрические параметры AC и DC для выводов SCL и SDA показаны в таблице 8. Параметры интервалов времени и диаграммы шины I2C совместимы со стандартом I2C. Поддерживается таймаут SDA для совместимости с интерфейсами SMBus.

[5. Конфигурирование Si5351]

Конфигурация по умолчанию сохраняется в энергонезависимой памяти (NVM), как показано на рис. 11. NVM это однократно программируемая память (OTP), куда можно поместить пользовательскую конфигурацию, применяемую при включении питания (например, для предоставления тактовой частоты для процессора).

Si5351 Memory Configuration fig11

Рис. 11. Конфигурация памяти Si5351.

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

5.1. Запись в RAM конфигурации пользователя

С целью упростить конфигурирование устройства компания Silicon Labs выпустила утилиту ClockBuilder Desktop. Эта программа выполняет 2 функции: создание данных оптимальной конфигурации Si5351 на основе желаемых частот, и управление платой EVB, когда она подключена к компьютеру разработчика (host PC).

Оптимальная конфигурация может быть сохранена из этой программы в текстовые файлы. Их можно использовать в любой системе, которая может конфигурировать Si5351 через I2C. ClockBuilder Desktop можно бесплатно загрузить с сайта www.silabs.com/ClockBuilder и запустить на операционных системах Windows XP, Windows Vista и Windows 7 (для загрузки требуется регистрация, или можете скачать утилиту по ссылке [2]).

После того, как конфигурационный файл сохранен, устройство Si5351 можно запрограммировать через I2C, выполняя шаги рис. 12.

Si5351 I2C Programming Procedure fig12

Рис. 12. Алгоритм программирования Si5351.

Si5351A, замена кварцев и кварцевых генераторов

Одним дешевым кварцем и микросхемой Si5351A можно получить до 8 различных независимо формируемых (free-running) тактовых частот, заменяя тем самым кварцы и кварцевые генераторы. Также доступен корпус с 3 выходами 10-MSOP для тех приложений, где нужно меньшее количество формируемых тактовых частот. Пример показан на рис. 13.

Si5351A using fig13

Рис. 13. Использование Si5351A для замены нескольких кварцев, кварцевых генераторов и систем PLL.

Si5351B, замена кварцев, кварцевых генераторов и VCXO

Si5351B комбинирует в одном корпусе независимо формируемую генерацию тактов и VCXO для чувствительных к цене производства приложений video. Пример показан на рис. 14.

Si5351B using fig14

Рис. 14. Использование Si5351B для замены нескольких кварцев, кварцевых генераторов, генераторов VCXO и систем PLL.

Si5351C, замена кварцев, кварцевых генераторов и PLL

Si5351C генерирует синхронные тактовые сигналы для приложений, которые требуют полную интегрированную систему PLL вместо VCXO. Из за двойной архитектуры PLL Si5351C может генерировать и синхронные, и независимые (free-running) такты. Пример показан на рис. 15.

Si5351C using fig15

Рис. 15. Использование Si5351C для замены нескольких кварцев, кварцевых генераторов и систем PLL.

5.6. Подача опорной частоты на вход XTAL

Si5351 может тактироваться от частоты на входе XA. Это особенно полезно, когда нужно генерировать тактовые сигналы в двух доменах синхронизации. С микросхемой Si5351C одна опорная частота может быть подана на вывод CLKIN и на XA.

Si5351 Driven by Clock Signal fig16

Рис. 16. Тактирование Si5351 внешним сигналом.

Примечание: при подаче внешнего тактового сигнала на вход XA ножка XB остается не подключенной.

Si5351 можно сконфигурировать для поддержки HCSL-совместимой пары сигналов, когда VDDO выходной интересующей пары установлено на 2.5V (например VDDOA должен быть 2.5V, когда когда используется CLK0/1; VDDOB должен быть 2.5V для CLK2/3 и так далее).

Схема на рисунке ниже должна использоваться для каждого из двух используемых тактов, и один из сигналов тактов в паре должен быть проинвертирован для генерации дифференциальной пары. См. настройку регистра CLKx_INV.

Si5351 output HCSL compatible fig17

Рис. 17. Выход Si5351, совместимый с HCSL.

Примечание: комплементарность сигналов в паре обеспечивается поворотом фазы на -180 градусов (инверсией) с помощью функции INV.

Si5351 требует очень малое количество внешних компонентов. Ниже приведены несколько общих советов для достижения оптимальной производительности. Дополнительные рекомендации по разводке см. в апноуте "AN554: Si5350/51 PCB Layout Guide".

6.1. Развязка/фильтрация питания

В микросхему Si5351 встроена схема фильтрации и дополнительные внутренние стабилизаторы напряжения LDO, чтобы минимизировать количество внешних блокирующих конденсаторов по питанию. Все, что рекомендуется - поставить один развязывающий конденсатор 0.1 .. 1.0 мкФ на каждый вывод питания. Этот конденсатор должен быть смонтирован максимально близко к выводам VDD и VDDOx, без использования переходных отверстий.

6.2. Последовательность подачи напряжений питания

Выводы VDD (питание ядра) и VDDOx (питание вывода, т. е. VDDO0, VDDO1, VDDO2, VDDO3) отделены друг от друга для достижения гибкости в получении уровней выходных сигналов. Должна быть выдержана такая последовательность подачи питания, чтобы на все ножки VDDOx питание было подано одновременно и раньше VDD, либо на все выводы питания (VDD и VDDOx) напряжения должны быть поданы одновременно. Не используемые выводы VDDOx должны быть подтянуты к VDD.

6.3. Внешний кварц

Внешний кварцевый резонатор должен быть смонтирован максимально близко к выводам XA и XB, и его сигналы должны быть разведены на плате проводниками минимальной длины. Проводники XA и XB следует трассировать подальше от других высокоскоростных трасс. Дополнительные подробности см. в апноуте AN551 [4].

6.4. Внешние конденсаторы нагрузки кварца

Si5351 предоставляет опции для конфигурирования внутренних конденсаторов нагрузки, в зависимости от применяемого кварца и внешних конденсаторов. Если внутренняя емкостная нагрузка недостаточна, то могут использоваться внешние конденсаторы емкостью больше или равной 2 пФ, чтобы увеличить емкостную нагрузку. При использовании внешних конденсаторов они должны быть установлены максимально близко к выводам XA и XB. Подробности см. в апноуте AN551 [4].

6.5. Не используемые выводы

Не используемый вывод VC должен быть соединен с GND. Не используемый вывод CLKIN также должен быть соединен с GND. Не используемые выводы XA и XB должны оставаться не подключенными. См. секцию "5.6. Подача опорной частоты на вход XTAL", когда XA используется как вход опорной частоты тактов. Не используемые выводы выходов (CLK0..CLK7) должны оставаться не подключенными. Не используемые выводы VDDOx должны быть соединены с VDD.

6.6. Характеристики трасс

Si5351A, Si5351B, Si5351C дает возможность выбора различной нагрузочной способности выходов (output current drive strengths). Рекомендуется конфигурировать характеристики проводников, как показано на рис. 18, если используется высокая нагрузочная способность по умолчанию.

Si5351 Recommended Trace with Default Drive Strength fig18

Рис. 18. Рекомендуемые характеристики трассировки для установки нагрузочной способности по умолчанию (Default Drive Strength Setting).

[7. Карта адресов регистров, описание регистров]

Для большинства приложений значения регистров Si5351 просто конфигурируются с помощью бесплатного программного обеспечения ClockBuilder Desktop. Однако для пользователей, заинтересованных в использовании Si5351 в рабочих режимах, выходящих за рамки возможностей ClockBuilder™, обратитесь к апноуту AN619 [3], где дано подробное описание регистров Si5351 и их использование.

Si5351A 20-pin QFN

Si5351A QFN20 top view fig19

Рис. 19. Корпус QFN20 Si5351A, вид сверху.

Таблица 11. Цоколевка и описание выводов Si5351A в корпусе QFN20.

Мнем. Тип(1) Функция
1
XA I Выводы для подключения внешнего кварцевого резонатора.
2
XB O
3
A0 I Задает младший бит адреса I2C.
4 SCL I Тактовый сигнал I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
5 SDA I/O Данные I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
6 SSEN I Сигнал разрешения расширения спектра (лог. 1 Sphread Spectrum разрешен, лог. 0 запрещен).
7 OEB I Разрешение работы выхода (лог. 0 выход разрешен, лог. 1 запрещен).
8 CLK3 O Выходной сигнал тактов 3.
9 CLK2 O Выходной сигнал тактов 2.
10 VDDOB P Питание драйвера для выходов CLK2 и CLK3(3).
11 VDDOA P Питание драйвера для выходов CLK0 и CLK1(3).
12 CLK1 O Выходной сигнал тактов 1.
13 CLK0 O Выходной сигнал тактов 0.
14 VDDOD P Питание драйвера для выходов CLK6 и CLK7(3).
15 CLK7 O Выходной сигнал тактов 7.
16 CLK6 O Выходной сигнал тактов 6.
17 CLK5 O Выходной сигнал тактов 5.
18 VDDOC P Питание драйвера для выходов CLK4 и CLK5(3).
19 CLK4 O Выходной сигнал тактов 4.
20 VDD P Напряжение питания ядра(3).
GND PAD GND P Земля, общий провод для питания и всех сигналов.

Примечания:

(1). I = Input (вход), O = Output (выход), P = Power (питание).
(2). Выводы входа не имеют внутренней верхней подтяжки к высокому уровню (нет встроенных резисторов pullup).
(3). См. раздел "6.2. Последовательность подачи напряжений питания".

Si5351B 20-pin QFN

Si5351B QFN20 top view fig20

Рис. 20. Корпус QFN20 Si5351B, вид сверху.

Таблица 12. Цоколевка и описание выводов Si5351B в корпусе QFN20.

Мнем. Тип(1) Функция
1
XA I Выводы для подключения внешнего кварцевого резонатора.
2
XB O
3
VC I Управляющее частотой напряжение для VCXO.
4 SCL I Тактовый сигнал I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
5 SDA I/O Данные I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
6 SSEN I Сигнал разрешения расширения спектра (лог. 1 Sphread Spectrum разрешен, лог. 0 запрещен).
7 OEB I Разрешение работы выхода (лог. 0 выход разрешен, лог. 1 запрещен).
8 CLK3 O Выходной сигнал тактов 3.
9 CLK2 O Выходной сигнал тактов 2.
10 VDDOB P Питание драйвера для выходов CLK2 и CLK3(3).
11 VDDOA P Питание драйвера для выходов CLK0 и CLK1(3).
12 CLK1 O Выходной сигнал тактов 1.
13 CLK0 O Выходной сигнал тактов 0.
14 VDDOD P Питание драйвера для выходов CLK6 и CLK7(3).
15 CLK7 O Выходной сигнал тактов 7.
16 CLK6 O Выходной сигнал тактов 6.
17 CLK5 O Выходной сигнал тактов 5.
18 VDDOC P Питание драйвера для выходов CLK4 и CLK5(3).
19 CLK4 O Выходной сигнал тактов 4.
20 VDD P Напряжение питания ядра(3).
GND PAD GND P Земля, общий провод для питания и всех сигналов.

Примечания:

(1). I = Input (вход), O = Output (выход), P = Power (питание).
(2). Выводы входа не имеют внутренней верхней подтяжки к высокому уровню (нет встроенных резисторов pullup).
(3). См. раздел "6.2. Последовательность подачи напряжений питания".

Si5351C 20-pin QFN

Si5351C QFN20 top view fig21

Рис. 21. Корпус QFN20 Si5351C, вид сверху.

Таблица 13. Цоколевка и описание выводов Si5351C в корпусе QFN20.

Мнем. Тип(1) Функция
1
XA I Выводы для подключения внешнего кварцевого резонатора.
2
XB O
3
INTR O Выход для генерации прерывания. Выход с открытым стоком, активный уровень лог. 0. Требует подключения внешнего верхнего подтягивающего резистора номиналом больше 1 кОм (pull-up).
4 SCL I Тактовый сигнал I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
5 SDA I/O Данные I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
6 SSEN I Сигнал разрешения расширения спектра (лог. 1 Sphread Spectrum разрешен, лог. 0 запрещен).
7 OEB I Разрешение работы выхода (лог. 0 выход разрешен, лог. 1 запрещен).
8 CLK3 O Выходной сигнал тактов 3.
9 CLK2 O Выходной сигнал тактов 2.
10 VDDOB P Питание драйвера для выходов CLK2 и CLK3(3).
11 VDDOA P Питание драйвера для выходов CLK0 и CLK1(3).
12 CLK1 O Выходной сигнал тактов 1.
13 CLK0 O Выходной сигнал тактов 0.
14 VDDOD P Питание драйвера для выходов CLK6 и CLK7(3).
15 CLK7 O Выходной сигнал тактов 7.
16 CLK6 O Выходной сигнал тактов 6.
17 CLK5 O Выходной сигнал тактов 5.
18 VDDOC P Питание драйвера для выходов CLK4 и CLK5(3).
19 CLK4 O Выходной сигнал тактов 4.
20 VDD P Напряжение питания ядра(3).
GND PAD GND P Земля, общий провод для питания и всех сигналов.

Примечания:

(1). I = Input (вход), O = Output (выход), P = Power (питание).
(2). Выводы входа не имеют внутренней верхней подтяжки к высокому уровню (нет встроенных резисторов pullup).
(3). См. раздел "6.2. Последовательность подачи напряжений питания".

Si5351A 10-pin MSOP

Si5351A MSOP10 top view fig22

Рис. 22. Корпус MSOP10 Si5351A, вид сверху.

Таблица 14. Цоколевка и описание выводов Si5351A в корпусе MSOP10.

Мнем. Тип(1) Функция
1 VDD P Напряжение питания ядра(2).
2
XA I Выводы для подключения внешнего кварцевого резонатора. 
3
XB O
4 SCL I Тактовый сигнал I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
5 SDA I/O Данные I2C. Требует подключения внешнего верхнего подтягивающего резистора 1 кОм (pull-up).
6 CLK2 O Выходной сигнал тактов 2.
7 VDDO P Питание драйвера для выходов CLK0, CLK1 и CLK2(2).
8 GND P Земля, общий провод для питания и всех сигналов.
9 CLK1 O Выходной сигнал тактов 1.
10 CLK0 O Выходной сигнал тактов 0.

Примечания:

(1). I = Input (вход), O = Output (выход), P = Power (питание).
(2). См. раздел "6.2. Последовательность подачи напряжений питания".

Устройства Si5351, запрограммированные на заводе (например для требуемых начальных тактовых частот микроконтроллера, bootup frequencies) можно запросить с помощью утилиты ClockBuilder, основанной на технологии WEB (www.silabs.com/ClockBuilder). Каждой пользовательской конфигурации назначается уникальный номер устройства (part number), как показано на рис. 22. Маркировка чистых, не запрограммированных устройств Si5351 (без заданной выходной частоты запуска boot-up frequency) не содержит пользовательского кода.

Si5351 Device Part Numbers fig23

Рис. 23. Нумерация устройств (Device Part Numbers) Si5351.

Примечание *: корпус MSOP10 доступен только для версии Si5351A.

Оценочный набор разработчика (evaluation kit) содержит ПО ClockBuilder Desktop и плату, что можно использовать для упрощения оценки возможностей Si5351A/B/C. Номера для покупки оценочных китов предоставлены на рис. 23.

EVB Назначение
Si535x-TMSTK
Для тестирования и оценки работы микросхемы Si532A-B-GT, корпус MSOP10
Si535x-B20QFN-EVB Для тестирования и оценки работы микросхем в корпусе QFN20: Si531A-B-GM, Si531B-B-GM, Si531C-B-GM

Рис. 23. Si5351A/B/C Evaluation Kit.

[11. Размеры стандартных посадочных мест]

Точные размеры посадочных мест на печатной плате для корпусов QFN20 и MSOP10 см. в даташите [1].

[14. Маркировка корпусов]

Si5351 marking QFN20 fig28

Рис. 28. Верхняя маркировка 20-pin QFN.

Расшифровка маркировки:

Формат 1 строки
Тип микросхемы (part number) Si5351.
Формат 2 строки TTTTTT = код производителя* из формы сборки.
Формат 3 строки YY = год, WW = рабочая неделя, соответствует дате производства.

Примечание (*): код строки "TTTTTT" не соответствует part number для покупки или частотному плану. Он используется только для оценки качества сборки корпуса и трекинга.

Si5351 marking MSOP10 fig29

Рис. 29. Верхняя маркировка 10-pin MSOP.

Расшифровка маркировки:

Формат 1 строки
Тип микросхемы (part number) Si5351.
Формат 2 строки TTTT = код производителя* из формы сборки.
Формат 3 строки Y = год (например 3 соответствует 2013), WW = рабочая неделя, соответствует дате производства.

Примечание (*): код "TTTT" не соответствует part number для покупки или частотному плану. Он используется только для оценки качества сборки корпуса и трекинга.

Примеры кода, показанные ниже, были опробованы на процессоре STM32F429 (плата 32F429IDISCAVERY). Синтезатор был подключен через ножки PB10 (SCL) и PB11 (SDA), настроенные на аппаратное периферийное устройство I2C2. Для работы с синтезатором использовались функции HAL-библиотеки.

[si5351a.h]

#pragma once
 
// Определения регистров:
#define SI_CLK0_CONTROL 16
#define SI_CLK1_CONTROL 17
#define SI_CLK2_CONTROL 18
#define SI_SYNTH_PLL_A  26
#define SI_SYNTH_PLL_B  34
#define SI_SYNTH_MS_0   42
#define SI_SYNTH_MS_1   50
#define SI_SYNTH_MS_2   58
#define SI_PLL_RESET    177
 
// Коэффициенты R-division:
#define SI_R_DIV_1      0x00     //0b00000000
#define SI_R_DIV_2      0x10     //0b00010000
#define SI_R_DIV_4      0x20     //0b00100000
#define SI_R_DIV_8      0x30     //0b00110000
#define SI_R_DIV_16     0x40     //0b01000000
#define SI_R_DIV_32     0x50     //0b01010000
#define SI_R_DIV_64     0x60     //0b01100000
#define SI_R_DIV_128    0x70     //0b01110000
 
#define SI_CLK_SRC_PLL_A   0x00  //0b00000000
#define SI_CLK_SRC_PLL_B   0x20  //0b00100000
 
#define XTAL_FREQ       27000000 // Частота кварца

[si5351a_synth.h]

#pragma once
#include < stdint.h>
 
#ifdef __cplusplus
 extern "C" {
#endif
 
void RDP_I2C_Init(void);
void startTransmitting();
void stopTransmitting();
void si5351aSetFrequency(double frequency);
void siSynth_OutEn(uint8_t enable);
 
#ifdef __cplusplus
}
#endif

[si5351a_synth.c]

#include "si5351a_synth.h"
#include "si5351a.h"
#include "stm32f4xx_hal.h"
#include "errors.h"
 
// SCL - PB10
// SDA - PB11
 
#define SISYNTH_DEV_ADDR (0x60 < < 1)
 
static bool pllInited = false;
static I2C_HandleTypeDef hi2c2;
 
/* Максимальное значение таймаута циклов ожидания I2C: */
#define I2Cx_TIMEOUT_MAX  0x3000
 
static uint32_t I2cxTimeout = I2Cx_TIMEOUT_MAX;
 
// PB11.Signal=I2C2_SDA
// PB10.Signal=I2C2_SCL
/**
  * @brief Функция инициализации I2C2
  */
static void MX_I2C2_Init(void)
{
   hi2c2.Instance = I2C2;
   hi2c2.Init.ClockSpeed = 100000;
   hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
   hi2c2.Init.OwnAddress1 = 0;
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
   hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
   hi2c2.Init.OwnAddress2 = 0;
   hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
   hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
   if (HAL_I2C_Init(&hi2c2) != HAL_OK)
      HALerrorHandler(__FILE__, __LINE__);
   if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
      HALerrorHandler(__FILE__, __LINE__);
   if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK)
      HALerrorHandler(__FILE__, __LINE__);
}
 
void RDP_I2C_Init(void)
{
   MX_I2C2_Init();
}
 
uint8_t RDP_I2C_Mem_Write(uint8_t devAddr, uint8_t regNum, uint8_t val)
{
   HAL_StatusTypeDef status = HAL_OK;
   status = HAL_I2C_Mem_Write(&hi2c2,
                              devAddr,
                              (uint16_t)regNum,
                              I2C_MEMADD_SIZE_8BIT,
                              &val,
                              1,
                              I2cxTimeout);
   if(status != HAL_OK)
      return 0;
   return 1;
}
 
static void i2cSendRegister(uint8_t reg, uint8_t data)
{
   RDP_I2C_Mem_Write(SISYNTH_DEV_ADDR, reg, data);
}
 
///////////////////////////////////////////////////////////////
// Настройка PLL коэффициентами mult, num и denom
// mult  = 15..90
// num   = 0..1,048,575 (0xFFFFF)
// denom = 0..1,048,575 (0xFFFFF)
static void setupPLL (uint8_t pll,
                       uint8_t mult,
                       uint32_t num,
                       uint32_t denom)
{
   // Конфигурационные регистры PLL:
   uint32_t P1;
   uint32_t P2;
   uint32_t P3;
 
   P1 = (uint32_t)(128 * ((float)num / (float)denom));
   P1 = (uint32_t)(128 * (uint32_t)(mult) + P1 - 512);
   P2 = (uint32_t)(128 * ((float)num / (float)denom));
   P2 = (uint32_t)(128 * num - denom * P2);
   P3 = denom;
 
   i2cSendRegister(pll+0, (uint8_t)( (P3 & 0x0000FF00) >> 8));
   i2cSendRegister(pll+1, (uint8_t)( (P3 & 0x000000FF)));
   i2cSendRegister(pll+2, (uint8_t)( (P1 & 0x00030000) >> 16));
   i2cSendRegister(pll+3, (uint8_t)( (P1 & 0x0000FF00) >> 8));
   i2cSendRegister(pll+4, (uint8_t)( (P1 & 0x000000FF)));
   i2cSendRegister(pll+5, (uint8_t)(((P3 & 0x000F0000) >> 12)
                                   |((P2 & 0x000F0000) >> 16)));
   i2cSendRegister(pll+6, (uint8_t)( (P2 & 0x0000FF00) >> 8));
   i2cSendRegister(pll+7, (uint8_t)( (P2 & 0x000000FF)));
}
 
///////////////////////////////////////////////////////////////
// Настройка MultiSynth с делителями integer и R.
// Делитель R это значение бита, которое накладывается
// операцией логического ИЛИ на соответствующий регистр,
// это определено макросами #define в файле si5351a.h.
static void setupMultisynth (uint8_t synth,
                              uint32_t divider,
                              uint8_t rDiv)
{
   // Конфигурационные регистры синтезатора:
   uint32_t P1;
   uint32_t P2;
   uint32_t P3;
 
   P1 = 128 * divider - 512;
   // Установка P2 = 0, P3 = 1 задает целое число для делителя:
   P2 = 0;
   P3 = 1;
 
   i2cSendRegister(synth+0, (uint8_t)( (P3 & 0x0000FF00) >> 8));
   i2cSendRegister(synth+1, (uint8_t)( (P3 & 0x000000FF)));
   i2cSendRegister(synth+2, (uint8_t)(((P1 & 0x00030000) >> 16)
                                    | rDiv));
   i2cSendRegister(synth+3, (uint8_t)( (P1 & 0x0000FF00) >> 8));
   i2cSendRegister(synth+4, (uint8_t)( (P1 & 0x000000FF)));
   i2cSendRegister(synth+5, (uint8_t)(((P3 & 0x000F0000) >> 12)
                                    | ((P2 & 0x000F0000) >> 16)));
   i2cSendRegister(synth+6, (uint8_t)( (P2 & 0x0000FF00) >> 8));
   i2cSendRegister(synth+7, (uint8_t)( (P2 & 0x000000FF)));
}
 
///////////////////////////////////////////////////////////////
// Выключает выход Si5351a. Пример выключения выхода CLK0:
// si5351aOutputOff(SI_CLK0_CONTROL);
void si5351aOutputOff (uint8_t clk)
{
   // Значения бит для аргумента см. в апноуте SiLabs AN619 [3].
   // Здесь константа 0x80 выключает выходной каскад.
   i2cSendRegister(clk, 0x80);
}
 
///////////////////////////////////////////////////////////////
// Включает выход CLK0 и устанавливает на нем указанную
// частоту (параметр frequency) в Гц. Частота может быть
// установлена в диапазоне от 1 МГц до 150 МГц. Пример
// настройки на выходе CLK0 частоты 10 МГц:
// si5351aSetFrequency(10000000);
//
// Здесь настраивается PLL A и MultiSynth 0, выходная
// частота формируется на CLK0.
void si5351aSetFrequency(double frequency)
{
   uint32_t pllFreq;
   uint32_t xtalFreq = XTAL_FREQ;
   uint32_t l;
   float f;
   uint8_t mult;
   uint32_t num;
   uint32_t denom;
   uint32_t divider;
   //SerialDebug.print("frq: ");
   //SerialDebug.println(frequency);
 
   // Вычисление коэффициента деления. Здесь константа 900,000,000
   // отражает максимальную внутреннюю частоту PLL 900 МГц.
   divider = (uint32_t) (900000000 / frequency + 0.5);
 
   // Это действие гарантирует четный коэффициент деления:
   if (divider % 2)
      divider--;   
 
   // Вычисление частоты PLL: делитель умножается на желаемую
   // выходную частоту:
   pllFreq = (uint32_t) (divider * frequency + 0.5);
   // Определение коэффициента умножения, чтобы получить
   // требуемую частоту PLL:
   mult = (uint8_t) (pllFreq / xtalFreq);
 
   l = pllFreq % xtalFreq; // Значение состоит из 3 частей:
   f = (float) l;         // mult это целая часть, которая должна быть
                           // в диапазоне 15..90.
   f *= 1048575;           // num и denom дробные части, каждый из 20 бит
   f /= xtalFreq;          // (диапазон 0 .. 1048575)
   num = (uint32_t) (f);   // Реальный коэффициент умножения равен
                           // mult + num / denom
   denom = 1048575;        // Для упрощения знаменатель установлен на
                           // максимум 1048575.
 
   // Настройка PLL A с вычисленным коэффициентом умножения:
   setupPLL(SI_SYNTH_PLL_A, mult, num, denom);
   // Настройка делителя 0 MultiSynth вычисленным значением.
   // Конечный каскад деления R может поделить частоту на коэффициент,
   // равный степени двойки, в диапазоне 1 .. 128. Это задается
   // константами от SI_R_DIV1 до SI_R_DIV128 (см. заголовочный файл
   // si5351a.h). Если Вы хотите получить на выходе частоты ниже 1 МГц,
   // то необходимо использовать последний каскад деления R.
   setupMultisynth(SI_SYNTH_MS_0, divider, SI_R_DIV_1);
   // Сброс PLL, этот процесс приводи к небольшим помехам на выходе.
   // Если параметры меняются незначительно, то Вам не нужно сбрасывать
   // PLL, что избавит от лишних выбросов на выходе.
   if(!pllInited)
   {
      pllInited = true;
      i2cSendRegister(SI_PLL_RESET, 0xA0);
      // Последний шаг, включенре выхода CLK0 (0x4F), и установка
      // входа MultiSynth0 на PLL A:
    i2cSendRegister(SI_CLK0_CONTROL, 0x4F | SI_CLK_SRC_PLL_A);
  }
}
 
void siSynth_OutEn(uint8_t enable)
{
   if(enable)
   {
      //SerialDebug.print("siSynth_OutEn(enable)\n");
      i2cSendRegister(16, 0x4f);
   }
   else
   {
      //SerialDebug.print("siSynth_OutEn(disable)\n");
      i2cSendRegister(16, 0x80);
   }
}
 
void startTransmitting()
{
   si5351aSetFrequency(radiofreq);
   siSynth_OutEn(1);
}
 
void stopTransmitting()
{
   siSynth_OutEn(0);
}

Пример использования:

int main(void)
{
   /* Конфигурация MCU --------------------------------*/
   /* Сброс всех периферийных устройств, инициализация|
      интерфейса Flash и Systick. */
   HAL_Init();
   /* Конфигурирование системных тактов: */
   SystemClock_Config();
   MX_GPIO_Init();
   ConfigureOutput();
   /* Инициализация I2C2 для синтезатора Si5351: */
   RDP_I2C_Init();
   TM_KEYPAD_Init();
 
   while (1)
   {
      ...
 
// Запуск генерации на частоте 3.7225 МГц:
float radiofreq = 3722500.0;
si5351aSetFrequency(radiofreq);
siSynth_OutEn(1);
 
// Остановка генерации:
siSynth_OutEn(0);

[Словарик]

AC Alternating Current, переменный ток.

DC Direct Current, постоянный ток.

EMI electromagnetic interference, электромагнитные помехи.

ESR Equivalent Series Resistance, эквивалентное последовательное сопротивление. Относится к кварцевому резонатору.

EVB Evaluation Board, оценочная плата разработчика.

HCSL High Speed Current Steering Logic, высокоскоростной стандарт логических уровней, использующий дифференциальную пару. Применяется в шине PCI Express.

I2C популярная шина для обмена данными в бытовой технике и различном электронном оборудовании.

LDO Low Drop Out, низкое падение напряжения. Термин относится с линейным регуляторам (напряжения), на регулирующем силовом элементе которого допускается малое падение напряжения.

LSB Least Significant Bit, самый младший значащий бит.

MSB Most Significant Bit, самый старший значащий бит.

NVM non-volatile memory, энергонезависимая память, сохраняющая свои значения между циклами выключения и включения питания.

OTP one time programmable memory, энергонезависимая память, которую можно запрограммировать только 1 раз.

Pb-free припой без свинца.

PCIE PCI Express, популярная шина для подключения модулей расширения компьютеров PC.

PLL Phase-Locked Loop, фазовая автоподстройка частоты, ФАПЧ.

PSRR Power Supply Rejection Ratio, коэффициент подавления помех по питанию.

RAM random access memory, память с произвольным доступом. В нашем контексте это память, в которой находятся текущие рабочие настройки Si5351 во время включенного питания. После выключения питания эти настройки не сохраняются.

SSC Sphread Spectrum Control, управление распределением спектра.

XO Xtal Oscillator, кварцевый генератор.

VCXO Voltage-Controlled Crystal Oscillator, управляемый напряжением кварцевый генератор.

[Ссылки]

1. Si5351 site:silabs.com.
2. 180521Si5351.zip - дистрибутив ClockBuilder, библиотеки, документация.
3AN619: генерация карты регистров для Si5351 вручную.
4AN551: выбор кварцев для Si5350 и Si5351.