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

Как по времени установки из даташита посчитать максимальную частоту SPI?

Обновлено Редакция GAW

Временная диаграмма SPI в даташите ведомого показывает два окна вокруг фронта, по которому он защёлкивает данные: время установки tsu — сколько данные должны стоять до фронта, и время удержания th — сколько после. Из них, а не только из строки «максимальная частота», получается реальный предел скорости шины.

Откуда берётся формула

В режиме SPI 0 (CPOL = 0, CPHA = 0) данные захватываются по нарастающему фронту SCK, а меняются по спадающему — так это показано на диаграмме RM0008 для STM32. От спада до следующего подъёма — полпериода. За это время выход ведущего должен переключиться, сигнал пройти по проводу и простоять tsu у входа ведомого:

TSCK2≥tsu+tвых+tпров,fmax=1TSCK\frac{T_\text{SCK}}{2} \ge t_\text{su} + t_\text{вых} + t_\text{пров}, \qquad f_\text{max} = \frac{1}{T_\text{SCK}}

Пример: 74HC595

Сдвиговый регистр защёлкивает SER по нарастающему фронту SRCLK. Наш расчёт без учёта задержек ведущего и проводов, по таблице 6.6 даташита TI SCLS041J для −40…85 °C:

Питаниеtsu (SER до SRCLK)Предел по tsufclock из даташитаОграничивает
2 В125 нс4 МГц5 МГцtsu
4,5 В25 нс20 МГц25 МГцtsu
6 В21 нс23,8 МГц29 МГцtsu

С реальными задержками предел ниже. Например, если выход ведущего и проводка добавляют 15 нс, то при 4,5 В полпериода — 40 нс, и частота не выше 12,5 МГц. Схема подключения и каскадирование регистров — в карточке 74HC595.

Как проверить на своей схеме

  1. Определите режим SPI по диаграмме — какой фронт захватывает данные; помогает статья о режимах SPI.
  2. Возьмите из даташита ведомого tsu и th при своём питании и температуре.
  3. Добавьте задержку выхода ведущего и проводов и посчитайте полпериода.

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

Похожие вопросы

Почему fclock в даташите 74HC595 больше, чем расчёт по tsu?

Предел fclock описывает сам регистр при идеальных входных сигналах, а расчёт по tsu учитывает, что данные меняются только на противоположном фронте и стоят полпериода. В схеме с SPI ограничивает то, что меньше: у SN74HC595 при 4,5 В это 20 МГц по tsu против 25 МГц по fclock.

Важно ли время удержания?

У SN74HC595 th = 0 нс, то есть данные могут меняться сразу после фронта SRCLK. Если бы th было больше, его нужно было бы проверить отдельно: данные ведущего меняются через полпериода после фронта захвата, и этот промежуток должен быть не меньше th.

Почему на макетной плате SPI сбоит на меньшей частоте?

Длинные провода добавляют задержку и звон на фронтах, а слабое питание снижает скорость микросхем: у SN74HC595 при 2 В допустимо в пять раз меньше, чем при 4,5 В. Для макетки берут частоту с запасом в несколько раз от расчётной.

Источники

  1. Texas Instruments. SNx4HC595 8-Bit Shift Registers With 3-State Output Registers, SCLS041J, revised October 2021 — 6.6 Timing Requirements, SN74HC595 (−40…85 °C): tsu SER before SRCLK — 125 / 25 / 21 нс при 2 / 4,5 / 6 В; th SER after SRCLK — 0 нс; fclock — до 5 / 25 / 29 МГц; tw SRCLK или RCLK — от 100 / 20 / 17 нс; оба тактовых входа срабатывают по нарастающему фронту
  2. STMicroelectronics. RM0008 Reference Manual STM32F101/102/103/105/107, Rev 21, 2021 — 25.3.1, рис. 240 «Data clock timing diagram»: при CPOL = 0 и CPHA = 0 данные захватываются по первому, нарастающему фронту SCK, а меняются по второму

Нашли ошибку?