ST意法半导体
直播中

张生

9年用户 866经验值
擅长:光电显示 接口/总线/驱动
私信 关注
[问答]

为什么CPHA位会影响NSS信号?

我使用 MCU STM32L462ET6TR。当我设置 CPHA=1 时,NSS 信号总是处于低电平。当CPHA=0 时,NSS 信号正常工作。有我的初始化代码:
  • void MX_SPI1_Init(void)
  • {
  •   hspi1.Instance = SPI1;
  •   hspi1.Init.Mode = SPI_MODE_MASTER;
  •   hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  •   hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  •   hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  •   hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; // NSS SIGNAL WORKS NORMALLY
  • //  hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; // NSS SIGNAL DOESN'T WORK
  •   hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;
  •   hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
  •   hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  •   hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  •   hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  •   hspi1.Init.CRCPolynomial = 7;
  •   hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  •   hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  •   if (HAL_SPI_Init(&hspi1) != HAL_OK)
  •   {
  •     Error_Handler();
  •   }
  • }
为什么 CPHA 位会影响 NSS 信号?


回帖(1)

陈臻江

2023-1-5 10:32:34
这就是 ST 决定实现 NSS Pulsed 功能的方式,请参阅RM 中的NSS 脉冲模式子章节:
该模式由 SPIx_CR2 寄存器中的 NSSP 位激活,仅当
SPI 接口配置为摩托罗拉 SPI 主机(FRF=0),在第一个捕获
边沿(SPIx_CR1 CPHA = 0,CPOL 设置被忽略)。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分