0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

两块STM32之间SPI通讯进行的注意事项

汽车玩家 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2020-04-04 17:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

之前分享过的SPI通讯实例:STM32硬件SPI主从通信实例,是基于一块STM32的两个SPI通讯。如果要进行两块STM32之间的SPI通讯,需要注意一些什么呢?

两块STM32之间的SPI通讯平时用的比较少,之前我也没有用过,网上也查了很多资料,没有找到现成的,能直接用的例子(做软件的不就是copy吗=v=)。

所以只能自己来实现了,本以为与在同一片STM32上做SPI主、从机通信一样,以为挺简单的,但是实际做起来还是遇到了不少问题,比如出现数据移位、多出了一些数据等问题。下面简单分享一下实现过程:

一、整体框图及说明

这里使用STM32F429IGT6作为主机,STM32F103ZET6作为从机,都配置为全双工。本例要实现的功能就是主、从机之间的数据互传。

主机往从机发送的数据为:

两块STM32之间SPI通讯进行的注意事项

从机往主机发送的数据为:

两块STM32之间SPI通讯进行的注意事项

二、关键代码

主机关键代码:

两块STM32之间SPI通讯进行的注意事项

从机关键代码:

两块STM32之间SPI通讯进行的注意事项

可见,主机与从机的代码大多都一样。只是从机多了一步启动传输的操作,这一步很关键,少了这一步传输就不正常。这是为了制造主机发送的同时也要接收到数据的条件。这一点参考手册里也有相关说明:

两块STM32之间SPI通讯进行的注意事项

两块STM32之间SPI通讯进行的注意事项

此处,要营造这样的条件,必须先启动从机,然后再启动主机。只有保证主机发送的同时有接收到数据,才能保证其时序的正常,否则可能会产生数据错位,或者会产生多余数据等情况。

三、调试

我们平时在做实际的开发时,一般很难做到把所有代码写完,跑一遍就能成功,都是需要进行各个子模块的调试,一步一步来,确保各个子模块都没有问题之后,整体跑起来自然就比较稳定。

一些经验丰富的软件工程师常会教导一些年轻的软件工程师:在接到一个开发任务之前,先不要急着码代码,首先需要明确你这项任务的需求是什么,把任务分解成各个模块,然后在电脑上或纸上画出整体框图,确保框图的正确性之后,再根据框图来编写代码、调试。

此处,我们要调试SPI主从通信,自然也是这样分模块进行调试的:

确认主机是否能正确发送数据

确认从机是否能正确发送数据(返回数据给从机)

确认从机是否接收到主机发过来的数据

确认主机是否接收到从机发过来的数据

若这几个点明确了,都没问题之后。就可以明确我们的SPI主、从机的基本通讯没有问题了,之后就可以进行我们的协议方面处理了(本例中没有这一部分)。下面分别看一些这几个点:

1、确认主机是否能正确发送数据

方法:使用逻辑分析仪捕捉主机的MOSI、SCK这两条信号线,查看其波形。实际测得地结果如下:

两块STM32之间SPI通讯进行的注意事项

其中,白色为SCK信号线波形,橙色为MOSI信号线波形。显然,从MOSI波形可以看出其与我们主机发送的数据一致,自然就可以确认主机发送数据没问题了。

此处,细心的朋友可能会发现时钟线波形的两个数据交互处的高电平总是宽一些,这里我们的SPI传输数据的位数设置为8bit,则每一个数据对应的第8位对应的时钟信号的高电平总会长一些;若我们的SPI传输数据的位数配置为16位,则第16位对应的时钟信号的高电平总会长一些。

出现这个现象其实与我们的代码是有一定关系的。实际测试中发现是因为我们用while循环来做逻辑处理的问题,想办法把while等待替换为if判断,就可以改善这个问题。但是考虑到这并不会影响我们的数据,并且另一方面还有助于我们分析波形,所以使用while。

2、确认从机是否能正确发送数据(返回数据给从机)

使用逻辑分析仪来捕捉MISO的波形,其波形如下(此处只捕捉了数据波形):

两块STM32之间SPI通讯进行的注意事项

显然,我们的从机发送数据也是没问题的。

3、确认从机是否接收到主机发过来的数据

这里使用在线调试的方法检测从机的接收buf,结果如下:

两块STM32之间SPI通讯进行的注意事项

显然,从机收到的数据与主机发送的数据一致,说明从机接收也是没有问题的。由于手头里只有一个仿真器,所以也就没有同时监测主机的接收buf,监视主机的接收buf与监视从机的方法是一样的。

四、调试过程需要注意的问题

1、两块板子一定要共地。

2、两块板子的MOSI与MISO不需要交叉连接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371187
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99830
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    驱动板PCB布线的注意事项

    PCB Layout 注意事项 1)布局注意事项: ●● 整体布局遵循功率回路与小信号控制回路分开布局原则,功率部分和控制部分的 GND 分开回流到输入 GND。 ●● 芯片的放置方向优先考虑驱动
    发表于 12-02 07:40

    CW32F030在使用中的注意事项有哪些?

    CW32F030在使用中的注意事项有哪些?
    发表于 11-18 06:20

    信号调理设备的接地和环境适配有哪些注意事项

    信号调理设备的接地和环境适配,核心是“阻断干扰传导、适应场景特性”—— 接地不当会引入电磁干扰,环境适配不足会导致器件参数漂移,者都会直接破坏暂态信号的完整性,让分辨率提升失效。具体注意事项
    的头像 发表于 11-14 16:15 3085次阅读
    信号调理设备的接地和环境适配有哪些<b class='flag-5'>注意事项</b>?

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项
    发表于 11-12 07:29

    emWin AppWizard 开发注意事项有哪些?

    emWin AppWizard 开发注意事项
    发表于 09-04 06:18

    CYPD5225-96BZXI设计需要哪些注意事项

    时, TBT4 type-c接上USB外设,主板就不启动,而拔掉USB外设,主板能正常启动; 所以想了解下, 1、CYPD5225-96BZXI设计需要哪些注意事项; 2、CYPD5225-96BZXI
    发表于 05-23 08:03

    IGBT器件的防静电注意事项

    IGBT作为功率半导体器件,对静电极为敏感。我将从其静电敏感性原理入手,详细阐述使用过程中防静电的具体注意事项与防护措施,确保其安全稳定运行。
    的头像 发表于 05-15 14:55 1227次阅读

    锥齿轮减速机的使用安装和维护维修注意事项

    锥齿轮减速机的使用、安装和维护维修注意事项涵盖了多个方面,以下是对这些注意事项的详细归纳: 一、使用注意事项 1. 确认规格与设计相符:在使用减速机前,请先行确认购买的规格与设计规格是否相符。 2.
    的头像 发表于 04-21 18:13 954次阅读
    锥齿轮减速机的使用安装和维护维修<b class='flag-5'>注意事项</b>

    扫描电镜的日常维护有哪些注意事项

    扫描电镜日常维护的注意事项
    的头像 发表于 03-24 11:38 921次阅读
    扫描电镜的日常维护有哪些<b class='flag-5'>注意事项</b>?

    两块SRAM分别位于不同的基地址,有什么方法可以使这两块区域SRAM当成一使用?

    两块SRAM分别位于不同的基地址,有什么方法可以使这两块区域SRAM当成一使用
    发表于 03-07 08:59

    使用两块TSW3003EVM电路板连接到同一台PC时,无法对另一进行编程如何解决?

    我在系统中使用了两块 TSW3003EVM 电路板。我使用 TI 提供的软件通过 USB 为两块电路板编程。但是,当我把两块电路板连接到同一台 PC 时,我只能对其中一电路板编程,
    发表于 02-17 06:28

    GD32单片机GPIO结构及注意事项

    电子发烧友网站提供《GD32单片机GPIO结构及注意事项.pdf》资料免费下载
    发表于 02-07 17:27 3次下载
    GD32单片机GPIO结构及<b class='flag-5'>注意事项</b>

    智多晶DDR Controller使用注意事项

    最后一期我们主要介绍智多晶DDR Controller使用时的注意事项
    的头像 发表于 01-24 11:14 1358次阅读
    智多晶DDR Controller使用<b class='flag-5'>注意事项</b>

    AN20-仪表低通滤波器的应用注意事项

    电子发烧友网站提供《AN20-仪表低通滤波器的应用注意事项.pdf》资料免费下载
    发表于 01-12 11:25 0次下载
    AN20-仪表低通滤波器的应用<b class='flag-5'>注意事项</b>

    多层板埋孔设计注意事项

    多层板埋孔设计注意事项
    的头像 发表于 12-20 16:06 1245次阅读