Roc 发表于 2022-1-5 15:02:00

FM33G026芯片spi片选问题

本帖最后由 Roc 于 2022-1-5 15:07 编辑

初次使用FM33G026芯片SPI读取RFID,用两个SPI片选端口读取两个卡(SPI片选使用两个I/O口,一个普通I/O,一个SPI(SSN)端口。),现在应该如何设置两个片选端口让其别分去控制读卡。(按下方代码设置进行读卡操作,只有卡1读卡正常,卡2读卡错误)
初始化代码如下:
1、I/O口配置代码:
    GPIO_InitStruct.PxFCR = GPIO_FCR_DIG;      GPIO_InitStruct.PxINEN= GPIO_IN_Dis;
    GPIO_InitStruct.PxODEN = GPIO_OD_Dis;
    GPIO_InitStruct.PxPUEN = GPIO_PU_En;
      
    GPIO_InitStruct.Pin = GPIO_Pin_2;      // SSN1
    GPIO_Init(GPIOD, &GPIO_InitStruct);
      
    GPIO_InitStruct.Pin = GPIO_Pin_4;      // SSN2
    GPIO_Init(GPIOF, &GPIO_InitStruct);
      
    GPIO_InitStruct.PxFCR = GPIO_FCR_DIG;
    GPIO_InitStruct.PxINEN = GPIO_IN_Dis;
    GPIO_InitStruct.PxODEN = GPIO_OD_Dis;
    GPIO_InitStruct.PxPUEN = GPIO_PU_Dis;
      
    GPIO_InitStruct.Pin = GPIO_Pin_3;      // SCK
    GPIO_Init(GPIOD, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_Pin_4;      // MISO
    GPIO_Init(GPIOD, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_Pin_5;      // MOSI
    GPIO_Init(GPIOD, &GPIO_InitStruct);
2、SPI功能配置:
    RCC_PERCLK_SetableEx(SPI2CLK, ENABLE);
    SPI_Master_InitStruct.BAUD_RATE = SPIx_SPICR1_BAUD_PCLK_2;
    SPI_Master_InitStruct.LSBF   = SPIx_SPICR1_LSBF_MSB;
    SPI_Master_InitStruct.CPHOL= SPIx_SPICR1_CPHOL_LOW;      // 空闲时低电平
    SPI_Master_InitStruct.CPHA   = SPIx_SPICR1_CPHA_FIRST;         // 第一个边沿采样
    SPI_Master_InitStruct.SSNM   = SPIx_SPICR2_SSNM_LOW;          // 发送完8bit ssn保持为低
    SPI_Master_InitStruct.SSNSEN = SPIx_SPICR2_SSNSEN_SOFT;   // Master模式下SSN输出由软件控制
               
    SPI_Master_Init(SPI2, &SPI_Master_InitStruct);

    SPIx_SPICR2_SPIEN_Setable(SPI2, ENABLE);                           // SPI2模块使能

请各位大神帮忙解惑,不胜感激!


Roc 发表于 2022-1-6 15:20:25

本帖最后由 Roc 于 2022-1-11 13:41 编辑

将片选引脚设置为普通推挽输出。在MCU与RFID进行SPI交互时,通过控制片选引脚的高低电平进行选择卡1还是卡2,问题得到解决。

顾博文 发表于 2022-1-6 15:32:03

用示波器看 卡2 的 ssn 及 其他信号的波形。撇开卡1。 spi只看波形,如果波形没问题。那就是硬件问题了,看下焊接等等

Roc 发表于 2022-1-10 15:34:58

顾博文 发表于 2022-1-6 15:32
用示波器看 卡2 的 ssn 及 其他信号的波形。撇开卡1。 spi只看波形,如果波形没问题。那就是硬件问题了,看 ...

好的,谢谢
页: [1]
查看完整版本: FM33G026芯片spi片选问题