30300
Настройка частоты тактирования контроллера SSP в режиме ведущего и ведомого устройства
Как правильно настроить частоту тактирования контроллера SSP в режиме ведущего и ведомого устройства?
При настройке частоты тактирования контроллера SSP необходимо руководствоваться пунктом спецификации "Соотношения между тактовыми сигналами", согласно которому, частота тактирования SSPCLK, поступающая из контроллера тактовых частот, должна быть в 2 или более раз выше частоты обмена SSP_CLK в режиме ведущего устройства, либо в 12 или более раз выше частоты обмена SSP_CLK в режиме ведомого устройства:
FSSPCLK(min) => 2 x FSSPCLKOUT(max) [for master mode]
FSSPCLK(min) => 12 x FSSPCLKIN(max) [for slave mode].
В режиме ведущего устройства скорость обмена SSP_CLK устанавливается контроллером SSP с помощью делителей CPSDVR и SCR:
SSP_CLK = SSPCLK / (CPSDVR * (1 + SCR)).
В режиме ведомого устройства скорость обмена SSP_CLK задаётся внешним ведущим устройством. В зависимости от предполагаемой частоты обмена SSP_CLK необходимо подобрать частоту SPPCLK таким образом, чтобы она была выше не менее чем в 12 раз частоты обмена SSP_CLK, поступающей с внешнего ведущего устройства.
При этом также необходимо настроить делители CPSDVR и SCR для получения предполагаемой частоты обмена SSP_CLK:
SSP_CLK = SSPCLK / (CPSDVR * (1 + SCR)).
Это необходимо для работы внутренней логики контроллера SSP. Например, прерывание по таймауту приемника SSPRTINTR возникает в случае, если буфер FIFO приемника не пуст, и на вход приемника не поступало новых данных в течение периода времени, необходимого для передачи 32 бит. С помощью делителей CPSDVSR и SCR указывается предполагаемая внешняя частота обмена SSP_CLK, и именно на этой частоте контроллер SSP отсчитывает время, необходимое для передачи 32 бит. Рекомендуется устанавливать делители CPSDVSR и SCR для указания предполагаемой внешней частоты обмена SSP_CLK.
FSSPCLK(min) => 2 x FSSPCLKOUT(max) [for master mode]
FSSPCLK(min) => 12 x FSSPCLKIN(max) [for slave mode].
В режиме ведущего устройства скорость обмена SSP_CLK устанавливается контроллером SSP с помощью делителей CPSDVR и SCR:
SSP_CLK = SSPCLK / (CPSDVR * (1 + SCR)).
В режиме ведомого устройства скорость обмена SSP_CLK задаётся внешним ведущим устройством. В зависимости от предполагаемой частоты обмена SSP_CLK необходимо подобрать частоту SPPCLK таким образом, чтобы она была выше не менее чем в 12 раз частоты обмена SSP_CLK, поступающей с внешнего ведущего устройства.
При этом также необходимо настроить делители CPSDVR и SCR для получения предполагаемой частоты обмена SSP_CLK:
SSP_CLK = SSPCLK / (CPSDVR * (1 + SCR)).
Это необходимо для работы внутренней логики контроллера SSP. Например, прерывание по таймауту приемника SSPRTINTR возникает в случае, если буфер FIFO приемника не пуст, и на вход приемника не поступало новых данных в течение периода времени, необходимого для передачи 32 бит. С помощью делителей CPSDVSR и SCR указывается предполагаемая внешняя частота обмена SSP_CLK, и именно на этой частоте контроллер SSP отсчитывает время, необходимое для передачи 32 бит. Рекомендуется устанавливать делители CPSDVSR и SCR для указания предполагаемой внешней частоты обмена SSP_CLK.
Документация
Версия 2.6.0 от 18.06.2024
2.6.0 от 19.06.2024
2.5.0 от 20.05.2024
2.8.0 от 26.07.2024
2.1.0 от 22.09.2021