一种自定义SPI通信协议

本文介绍一种自定义SPI通信协议。

项目开发过程中,有时候会涉及到主处理器或FPGA和MCU之间的SPI通信,涉及到通信就需要考虑通信协议,本文给出一种简单的通信协议。

1.协议格式

协议格式如下图。

其中,将40 bit划分为2大部分,控制部分数据部分

1)控制部分用于寻址及读/写控制。可以将31 bit或24 bit定义为读写位(1代表读,0代表写),另外7 bit作为地址(最大寻址128个寄存器地址)。

2)数据部分用于往寄存器写数据或用于读寄存器返回数据。在写数据时,MOSI上32 bit为要往寄存器写的数据,在读数据时,MOSI为空(0x00)或忽略,主设备产生时钟,MISO上32 bit为从设备返回的数据。

图中的32 bit data并不是固定的,也可以根据实际情况定义为8 bit或16bit等。

2.寄存器定义

寄存器定义可按下表进行描述。

addressregister namedefault valueR/Wdescription
0x01CTRL00x00RW

Bit[0]:

0x02CTRL10x00RWBit[0]:

3.SPI时序

SPI时序可采用模式3(最常使用),时序如下图。通信速度可根据实际情况定义,如10MHz,20MHz。

参考:

ADI,TMC2130 Datasheet

总结,本文介绍了一种自定义SPI通信协议。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值