SPI调试&&SPI基础知识&&SPI实际波形&&实际Demo

一、问题出现场景:

 原理可以参考链接:SPI协议详解(图文并茂+超详细) - 知乎 (zhihu.com)

1.SPI的引脚变动

二、程序内部移植注意

移植已有项目的SPI程序架构

以上引脚变动需要注意的点:

1.引脚使用的变动,比如从PA3变为PB4

2.SPI编号的变动,有的MCU可能会有三组SPI【SPI1 SPI2 SPI3】

3.SPI的时钟源是否变化,这个决定SPI 的时钟频率,正常频率设置应该为 总线/2

【原来SPI1 SPI_PSC_8】

    /* SPI2 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;
    spi_init_struct.device_mode          = SPI_MASTER;
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
    spi_init_struct.nss                  = SPI_NSS_SOFT;
    spi_init_struct.prescale             = SPI_PSC_16 ;
    spi_init_struct.endian               = SPI_ENDIAN_MSB;
    spi_init(SPI2, &spi_init_struct);

4.引脚变动时需要查看芯片手册,确认变动的引脚是否是特殊引脚

PA15为特殊引脚需要做重映射

void gpio_config(void) 
{ /* GPIO output */ 
  gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE); 
  gpio_pin_remap_config(GPIO_SPI2_REMAP, ENABLE); 
}

三、波形分析问题点

波形分析思路

1.CS引脚是否可以顺利的拉高拉低

2.主机发送数据时波形是否正确

3.从机发送数据时波形是否正确

  • 连接SPI的引脚到示波器对应的通道
  • 使用示波器抓捕波形
  • 进入程序进行DEG

实际波形可以参考下图:

参考链接:SPI协议详解(图文并茂+超详细) - 知乎 (zhihu.com)

【SPI有四种模式,由极性和相序决定】


四、出现该问题的反思

1.对于芯片底层配置不熟悉

主要时芯片手册的了解和引脚配置的知识存在盲区

很多引脚配置最好参考原厂配置,【这里上传了GD的资料】

2.对于SPI出现问题解决思路不清晰

检查引脚配置

检查时钟源

检查波形

3.对于时钟的概念和意义未深刻理解

【待补充,这里就总结一下SPI调试过程中的收获】

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
6字库烧录(SPI)是一种常见的微控制器芯片的烧录方式。SPI代表串行外围接口,它是一种同步串行通信协议。在6字库烧录中使用SPI协议,可以实现将代码或数据存储到芯片的非易失性存储器中。 首先,我们需要将待烧录的代码或数据存储在计算机上,通常以二进制文件的形式存在。然后,通过SPI接口连接计算机和目标芯片,确保连接的正确性和稳定性。 接下来,我们需要一个烧录工具,例如烧录器或编程器。这个烧录工具将通过SPI接口与目标芯片进行通信。我们需要确保烧录工具的驱动程序已经正确安装并与计算机连接。 在烧录过程中,我们需要打开一个烧录工具提供的软件。这个软件将允许我们选择烧录文件并配置烧录参数,例如芯片型号、烧录速度等。我们还可以设置是否要擦除芯片上的原有数据。 开始烧录后,烧录工具将按照SPI协议将二进制文件的数据逐个字节地传输到芯片的非易失性存储器中。在传输过程中,可能需要进行校验和验证,确保数据的准确性。 烧录完成后,我们可以进行一些验证和测试,以确保烧录的代码或数据已正确存储到芯片中。这可以通过读取芯片中的数据并与原始文件进行比较来实现。 总之,6字库烧录(SPI)是一种常见的芯片烧录方式,通过SPI接口将待烧录的代码或数据传输到芯片的非易失性存储器中。这种烧录方式具有高效、可靠和快速的特点,已被广泛应用于各种微控制器和嵌入式系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值