查看: 1848|回复: 3

FM33G026芯片spi片选问题

[复制链接]

0

主题

2

帖子

144

积分

中级工程师

Rank: 2

积分
144
发表于 2022-1-5 15:02:00 | 显示全部楼层 |阅读模式
本帖最后由 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模块使能

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


回复

使用道具 举报

0

主题

2

帖子

144

积分

中级工程师

Rank: 2

积分
144
 楼主| 发表于 2022-1-6 15:20:25 | 显示全部楼层
本帖最后由 Roc 于 2022-1-11 13:41 编辑

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

使用道具 举报

151

主题

843

帖子

4475

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4475
发表于 2022-1-6 15:32:03 | 显示全部楼层
用示波器看 卡2 的 ssn 及 其他信号的波形。撇开卡1。 spi只看波形,如果波形没问题。那就是硬件问题了,看下焊接等等
回复

使用道具 举报

0

主题

2

帖子

144

积分

中级工程师

Rank: 2

积分
144
 楼主| 发表于 2022-1-10 15:34:58 | 显示全部楼层
顾博文 发表于 2022-1-6 15:32
用示波器看 卡2 的 ssn 及 其他信号的波形。撇开卡1。 spi只看波形,如果波形没问题。那就是硬件问题了,看 ...

好的,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表