SPI时钟极性、相位设置 |
您所在的位置:网站首页 › spi指令 › SPI时钟极性、相位设置 |
不管在S32K1还是STM32等其它MCU中,使用SPI都会涉及时钟极性、相位的配置,其各自用1bit表示,总共由4中状态。正确的配置这两个Bit是主机与从机通讯的必要条件。 主机时钟极性、相位的配置取决与从机,从机的SPI时序图决定了主机如何配置。 举例eg: 从机SPI时序图 如上图可看出,SCK空闲是为低电平,工作时为高电平,那么主机的时钟极性就按照这么配置。 typedef enum { LPSPI_ACTIVE_HIGH = 1U, /*!< Signal is Active High (idles low). */ LPSPI_ACTIVE_LOW = 0U /*!< Signal is Active Low (idles high). */ } lpspi_signal_polarity_t;在S32K1中,我们选择LPSPI_ACTIVE_HIGH 。 时钟相位如上图可看出,从机输入SDI是在下降沿(第二个边沿)采样的,那么主机的时钟相位就按照这么配置(第二个边沿捕获)。 typedef enum { LPSPI_CLOCK_PHASE_1ST_EDGE = 0U, /*!< Data captured on SCK 1st edge, changed on 2nd. */ LPSPI_CLOCK_PHASE_2ND_EDGE = 1U /*!< Data changed on SCK 1st edge, captured on 2nd. */ } lpspi_clock_phase_t;在S32K1中,我们选择LPSPI_CLOCK_PHASE_2ND_EDGE 当然,有的从机可以有2中配置方式,其实只要任选一个正确的时钟极性,当时序图不好看时,时钟相位多尝试一次也就可以得出正确的配置。 Serial Clock Serial Data input (D) Serial Data output (Q) 这里我们选择第一条时钟线分析,空闲时是低,那么在S32K1中,时钟极性我们选择LPSPI_ACTIVE_HIGH 。 从机输入D是在上升沿(第一个边沿)采样的,那么主机的时钟相位就按照这么配置(第一个边沿捕获),在S32K1中,我们选择LPSPI_CLOCK_PHASE_1ST_EDGE 。 若选择第二条时钟线的配置,则两者都相反。 了解更多SPI可访问S32K1专栏 NXP S32K1 SPI模块 和 NXP S32K1 SPI模块Driver使用。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |