找回密码
 立即注册
查看: 384|回复: 7

SPI的SCK波形很奇怪,有波浪,是正常的吗,是不是A版与BCD版本的区别

[复制链接]

该用户从未签到

5

主题

13

回帖

101

积分

注册会员

积分
101
发表于 2023-10-13 13:38:27 | 显示全部楼层 |阅读模式
        GPIO_InitTypeDef GPIO_InitStructure;
       
        //PN532_SS(P13)        上拉准双向
        GPIO_InitStructure.Pin        = GPIO_Pin_3;
        GPIO_InitStructure.Mode        = GPIO_PullUp;
        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //P1
       
        //PN532_MOSI(P34), PN532_SCK(P32) 上拉准双向
        GPIO_InitStructure.Pin        = GPIO_Pin_2 | GPIO_Pin_4;
        GPIO_InitStructure.Mode        = GPIO_PullUp;
        GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);        //P3
       
        //PN532_MISO(P33) 上拉准双向
        GPIO_InitStructure.Pin        = GPIO_Pin_3;
        GPIO_InitStructure.Mode        = GPIO_PullUp;
        GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);        //P3
       
        //PN532_IRQ(P16), PN532_RSTO(P16) 上拉准双向
        GPIO_InitStructure.Pin        = GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.Mode        = GPIO_PullUp;
        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //P1
       
        //设置初始状态
        PN532_SS_H();




        SPI_SSIG_None();                //忽略 SS 引脚功能,        使用 MSTR 确定器件是主机还是从机
        SPI_Enable();                        //使能 SPI 功能
        SPI_LSB_First();                //先发送/接收数据的低位(LSB)
        SPI_Master();                        //设置主机模式
        SPI_SCLK_NormalH();                //SCLK 空闲时为高电平,SCLK        的前时钟沿为下降沿,后时钟沿为上升沿
        SPI_PhaseH();                        //数据在SCLK 的前时钟沿驱动,后时钟沿采样
        SPI_Speed(3);                        //SPI 时钟频率选择,        0: 4T, 1: 8T,  2: 16T,        3: 32T,        当前设置为40M/16=1.25M
       
        SPI_USE_P35P34P33P32();        /* 将SPI切换到P35(SS) P34(MOSI)        P33(MISO) P32(SCLK)。*/
       
        //设置初始状态
               
       

        SPSTAT = SPIF +        WCOL;        //清0 SPIF和WCOL标志


1.png



        SPI_SCLK_NormalL();
        SPI_PhaseL();
改成电平就是这样的

2.png



做了个死循环一直发送0x55

是不是我用的STC8H8K64U是BCD版本,启用了快速SPI?






回复 送花

使用道具 举报

该用户从未签到

552

主题

9497

回帖

1万

积分

管理员

积分
14071
发表于 2023-10-13 14:48:02 | 显示全部楼层
把你原来图的 PDF 贴上来
回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

13

回帖

101

积分

注册会员

积分
101
 楼主| 发表于 2023-10-13 16:46:01 | 显示全部楼层
2222222.png

原理图很简单,SPI口接不接设备都是一样波形,前面的图片我空载测的
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-10-13 18:51:16 | 显示全部楼层
    liners 发表于 2023-10-13 16:46
    原理图很简单,SPI口接不接设备都是一样波形,前面的图片我空载测的

    输出引脚 SCLK、MOSI、SS 设置为推挽输出试试
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    13

    回帖

    101

    积分

    注册会员

    积分
    101
     楼主| 发表于 2023-10-14 15:15:17 来自手机 | 显示全部楼层
    推挽一样的波形,开始这三个就是推挽,后来看例程改的双向
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14071
    发表于 2023-10-14 15:27:05 | 显示全部楼层
    把 SPI的外设去掉,空载测试下
    === [SPI, I/O] 跟 MCU 版本无任何关心
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    13

    回帖

    101

    积分

    注册会员

    积分
    101
     楼主| 发表于 2023-10-16 11:45:57 | 显示全部楼层
    liners 发表于 2023-10-13 16:46
    原理图很简单,SPI口接不接设备都是一样波形,前面的图片我空载测的

    这里已经试验过,不接外设,空载测的波形
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-10-16 14:15:57 | 显示全部楼层
    本帖最后由 乘风飞扬 于 2023-10-16 14:16 编辑
    liners 发表于 2023-10-16 11:45
    这里已经试验过,不接外设,空载测的波形
    根据你的代码及注释判断
    1. SPI_Speed(3);    //SPI 时钟频率选择,        0: 4T, 1: 8T,  2: 16T,        3: 32T,        当前设置为40M/16=1.25M
    复制代码
    你的主频使用40MHz,原本打算进行16分频得到1.25M的SPI时钟
    但是如果使用的是STC8H8K64U B/C/D版本芯片的话,实际设置是40M/2=20M的SPI时钟。
    高频时钟建议输出口设置推挽输出模式,使能IO口快速电平转换。
    如果外设断开,空载情况下就算是准双向模式也不至于出现你测量的样子,引脚上的应该还是有些干扰
    以下是B版本芯片实测SCLK 20M时的波形图:
    截图202310161411285594.jpg
    附件是配套测试代码

    主机模式SPI发送例程.zip

    28.41 KB, 下载次数: 17

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-19 06:26 , Processed in 0.067205 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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