Как по времени установки из даташита посчитать максимальную частоту SPI?
Обновлено Редакция GAW
Временная диаграмма SPI в даташите ведомого показывает два окна вокруг фронта, по которому он защёлкивает данные: время установки tsu — сколько данные должны стоять до фронта, и время удержания th — сколько после. Из них, а не только из строки «максимальная частота», получается реальный предел скорости шины.
Откуда берётся формула
В режиме SPI 0 (CPOL = 0, CPHA = 0) данные захватываются по нарастающему фронту SCK, а меняются по спадающему — так это показано на диаграмме RM0008 для STM32. От спада до следующего подъёма — полпериода. За это время выход ведущего должен переключиться, сигнал пройти по проводу и простоять tsu у входа ведомого:
Пример: 74HC595
Сдвиговый регистр защёлкивает SER по нарастающему фронту SRCLK. Наш расчёт без учёта задержек ведущего и проводов, по таблице 6.6 даташита TI SCLS041J для −40…85 °C:
| Питание | tsu (SER до SRCLK) | Предел по tsu | fclock из даташита | Ограничивает |
|---|---|---|---|---|
| 2 В | 125 нс | 4 МГц | 5 МГц | tsu |
| 4,5 В | 25 нс | 20 МГц | 25 МГц | tsu |
| 6 В | 21 нс | 23,8 МГц | 29 МГц | tsu |
С реальными задержками предел ниже. Например, если выход ведущего и проводка добавляют 15 нс, то при 4,5 В полпериода — 40 нс, и частота не выше 12,5 МГц. Схема подключения и каскадирование регистров — в карточке 74HC595.
Как проверить на своей схеме
- Определите режим SPI по диаграмме — какой фронт захватывает данные; помогает статья о режимах SPI.
- Возьмите из даташита ведомого tsu и th при своём питании и температуре.
- Добавьте задержку выхода ведущего и проводов и посчитайте полпериода.
Нарисовать диаграмму с этими окнами для документации можно в редакторе временных диаграмм, а длительность кадра на выбранной частоте покажет калькулятор кадра 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 В. Для макетки берут частоту с запасом в несколько раз от расчётной.
Источники
- 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 нс; оба тактовых входа срабатывают по нарастающему фронту
- 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, а меняются по второму
Нашли ошибку?