找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

Nano "SPI 高速数据流" 从机模式全双工收发

[复制链接]
跳转到指定楼层
楼主
admin 发表于 2013-12-23 15:09:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Nano 系列 SPI 从机模式可达 16M, 若主机那边不间断高速发送,  从机一侧 CPU 任务又太多,  可能 CPU 来不及读出 SPI 接收的数据, 产生接收数据覆盖。  

如何接收这种高速 SPI 数据流?

Nano系列的 SPI 收发各有8个字的 FiFo。  每次 SPI 产生接收中断, 可读空 FiFo 把数据转移至 RAM 一个环形缓冲区, 再由相应函数处理。  在本例中, 环形缓冲区的数据再通过 UART0 转发出去,可由 PC 机显示出来验证。

SPI 总线字符之间的时间间隔只有一个 SPI 时钟时,本代码可做到 7.35M 速率不丢数据——100个字符123us 发完的速度。更快的 SPI 数据流接收, 见另一例程“Nano_SPI 从机模式 21M 速率全速收发代码” 。
Smpl_I2C_Gsensor_ARD08.7z (1.7 MB, 下载次数: 1683)

如果用本论坛“Nano 高速 SPI 发送代码,可用于 SPI 测试” 那个代码做发送,要配置 SPI 波特率: SPI_Tx_Init(5) 。可看到接收板的 UART0 不停输出 SPI 接收到的信息如下图:



Angus
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
牛卧堂
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU