纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 4644|回复: 2

Ginkgo2 USB-SPI Master/Slave 主从模式注意事项

[复制链接]
发表于 2021-9-16 10:06:11 | 显示全部楼层 |阅读模式
Ginkgo USB-SPI适配器从机模式使用注意事项

对于SPI从机模式的使用,比较重要一点就是对SPI数据传输协议的理解,最主要的就是对时钟极性和时钟相位的理解.
简单来说就是:需要将Ginkgo USB-SPI适配器的时钟相位和时钟极性设置成和主机一样即可。
有以下几点需要注意:
  • 时钟极性和时钟相位必须和主机设置一样;
  • 硬件连接一定要正确,主机MISO接从机MISO,主机MOSI接从机MOSI,主机SCLK接从机SCLK,主机SSEL接从机SSEL,主机和从机地线最好也接在一起;
  • Ginkgo USB-SPI适配器是以SSEL0作为片选信号,低电平有效,该引脚不能一直为低电平,否则接收到的数据不能上传到PC,在数据传输的时候该引脚由主机拉低,数据传输完毕后必须由主机拉高,片选信号被拉高后,主机发送给从机的数据才能被PC端接收到;
  • 为保证数据传输的可靠性,数据传输时钟信号频率不能太高,目前在18MHz测试数据传输稳定可靠。


作为从机模式使用的时候还有一点也需要注意,
从机模式下SPI适配器工作于全双工模式,也就是说从机在发送数据的同时也在接收数据,所以当主机读取数据的同时,从机也会接收到数据,但是这个数据往往是没任何意义的数据。从机收发数据流程一般如下:
1、从机初始化,准备接收数据;
2、调用从机读数据函数查询是否接收到了主机发送的数据;
3、若从机接收到了主机发送的数据,则判断数据是否合法,若是合法数据则处理数据;
4、若从机需要发送数据给主机则调用从机写数据函数将数据写入适配器内部缓冲区中等待主机读取;
5、主机主动产生时钟,从机将数据移位发送出去,由于从机是全双工模式,在发送数据的同时也会接收同等数量的数据;
6、从机再次调用读数据函数,将第5步收到的数据读回来并丢弃。

第6步最好要处理下,否则下次读取数据的时候会有前一次因为主机读取数据时产生的垃圾数据。

回复

使用道具 举报

 楼主| 发表于 2021-9-16 10:42:28 | 显示全部楼层
如果数据出现错误:可以按照如下方式来进行优化:
1. 线接短一些,或者使用品质更好的线;
2. 如果有信号干扰的话,可以采用隔离板(我们公司有隔离板,最多可达8路信号引脚及电源隔离);
3. SPI 从设备选用更干净的电源供电;
4. SPI 速度降低一些;
5. 如果SPI 速度一定要很高的话,每根信号线上可以串接一个22欧姆的电阻;
6. 也可以使用软件方式来弥补:
    -> 加校验,如果出错,就重发。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-25 15:44:47 | 显示全部楼层
通讯的相位什么的由主机决定。
从机端的只选择通讯模式,不负责通讯,只准备数据到buffer,或者从buffer取数。
回复 支持 反对

使用道具 举报

发表于 2022-8-10 17:52:17 | 显示全部楼层
能否给个范例说明?
回复 支持 反对

使用道具 举报

发表于 2022-8-15 16:04:44 | 显示全部楼层
SzMZ 发表于 2021-11-25 15:44
通讯的相位什么的由主机决定。
从机端的只选择通讯模式,不负责通讯,只准备数据到buffer,或者从buffer取 ...

特别注意:
由于从设备端是全双工模式,一旦主机的cs使能,有时钟信号出现的话,从机端就会收取数据(非有效数据),放到buffer中。
从机端的上位机读取数据就会读到buffer的“非有效数据”。
规避办法:
采用握手机制(比如:主机发-> 从机收->从机发回ack->主机收到从机的ack后,再发下一帧; 从机主动发送流程类似),
严格控制多余无效操作。
回复 支持 反对

使用道具 举报

发表于 2022-11-8 17:55:47 | 显示全部楼层
讨债公司 www.zhent.com
回复 支持 反对

使用道具 举报

发表于 2023-4-6 11:03:48 | 显示全部楼层
SzMZ 发表于 2021-11-25 15:44
通讯的相位什么的由主机决定。
从机端的只选择通讯模式,不负责通讯,只准备数据到buffer,或者从buffer取 ...

buffer 的大小为10KBytes。(Ginkgo 或者Ginkgo III)
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 12:17 , Processed in 0.104728 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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