Blackfin DSP(七):用SPORT口模拟SPI
1.问题的提出
当系统从SPI device启动时,若SCLK = 133M,则SPI的最大速度为33M。然而,有一些串行的flash设备能更快的运行,因此,如果我们使用SPORT口,它的最大速度为SCLK/2=66M。
2.硬件连接方法

SPI接口只有主设备发出SCK信号,因此需要将TSCLK配置为内部产生,RSCLK配置为从外部接收,并在硬件上将它们连接在一起;
DT1PRI作为MOSI,DR1PRI作为MISO。
根据帧同步信号的特点,将其作为片选信号,作为SCK的门控因子,指示SCK的有效时段。
3.配置方法
void Init_SPORT1( void ) /* 由于使用SPI读写时序,所以进行初始化 */
{
////////////////发送配置//////////////
*pSPORT1_TCR1 = TCKFE|LATFS|LTFS|TFSR|ITFS|ITCLK;
*pSPORT1_TCR2 = 0x0007;
/*8位字长,正常模式*/ ////////////////接收配置//////////////
*pSPORT1_RCR1 = RCKFE|LARFS|LRFS|RFSR;
/*rising edge采样、延迟帧同步、低电平有效、需要帧同步、外部帧同步源、外部位时钟、MSB first、禁止接收*/
*pSPORT1_RCR2 = 0x0007;
/*8位字长、正常模式*/ /////////////发送位时钟频率设置////////
*pSPORT1_TCLKDIV = 0x0003; // TCLK = SCLK/8;
*pSPORT1_TFSDIV = 0x0008; *pSPORT1_TCR1 = (*pSPORT1_TCR1 | TSPEN);
*pSPORT1_RCR1 = (*pSPORT1_RCR1 | RSPEN); //使能SPORT1接收 }
按照如上的配置,理论上可以产生的波形如下:

示波器实测:

从图可以看出,波形的时序关系正好符合SPI的时序关系。
Blackfin DSP(七):用SPORT口模拟SPI的更多相关文章
- Blackfin DSP(六):BF533的SPORT接口
1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCLK/2.最大支持32bit字 ...
- Blackfin DSP(八):1D DMA与音频处理模板
1.DMA产生的背景 在许多需要使用DSP 的场合,一般都需要大量的数据搬移工作,而如果每次数据搬移都由DSP 内核来参与完成,将大大占用DSP 内核的处理时间,从而严重影响其信号处理能力.因此,Bl ...
- Blackfin DSP(二):寄存器操作与GPIO
BlackfinDSP的寄存器是通过指针操作的,与51.ARM等MCU一样,通过“或”操作来置1,通过“与”操作清零. 在DSP上最简单的外设非IO口莫属,但是由于其功能强大,远非一般IO口可比,因此 ...
- STM32 + RC522(SPI2 和 模拟SPI)
STM32 + RC522(SPI2 和 模拟SPI) 一. STM32 + RC522(SPI2 模式) 1. 头文件: rc522.h #include "stm32f10x.h&quo ...
- linux enc28j60网卡驱动移植(硬件spi和模拟spi)
本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是 ...
- 用I/O口模拟IIC总线协议遇到的一些问题
最近做的一个项目,是基于IIC总线通信的传感器系统.由于另外一个传感器使用的是类IIC协议,而不是标准IIC,所以MCU不能与其通信,最后没有办法,只有通过I/O口模拟的方式实现IIC的总线通信.具体 ...
- MSP430的IO口模拟I2C总线对AT24C25进行读写程序
功能: 实现MSP430口线模拟I2C总线协议与24C04通信. ** 描述: 主系统工作时钟为12MHz,I2C工 ...
- 模拟SPI协议时序
SPI是串行外设接口总线,摩托罗拉公司开发的一种全双工,同步通信总线,有四线制和三线制. 在单片机系统应用中,单片机常常是被用来当做主机(MASTER),外围器件被当做从机(SLAVE). 所以,在以 ...
- 51单片机GPIO口模拟串口通信
51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于: 分类: 深入C语言(20) 作者同 ...
随机推荐
- HTML5本地数据库(WebSQL)[转]
除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLite"这种文件型数据库,该数据库多集中在嵌 ...
- AspectJ的基本使用
参考: https://my.oschina.net/itblog/blog/208067
- 微信第三方 授权方账户信息 API文档错误
获取授权方的账户信息 该API用于获取授权方的公众号基本信息,包括头像.昵称.帐号类型.认证类型.微信号.原始ID和二维码图片URL. 需要特别记录授权方的帐号类型,在消息及事件推送时,对于不具备客服 ...
- windows在当前位置打开终端
1) 在此文件夹窗口内空白区域右键单击(需要同时按住Shift),从菜单中选择"在此处打开命令行窗口"的项:2) 在此窗口地址栏里直接输入cmd,回车即可.
- php大力力 [044节] PHP的POST语句一定要大写!!if(!empty($_POST['id'])) {
早上花了几个小时,寻找错误!!! 不应该这样写 if(!empty($_Post['id'])) { 应该这样写 if(!empty($_POST['id'])) { 万万不能小谢!
- div高度自适应(总结:min-height:100px; height:auto;的用法)
对于div高度自适应问题,我总是用一句话:height:auto来解决. 但是很多时候我们需要的是当div内部有内容时,高度会随着内容的增加和增加,当div中没有内容时,div能够保持一个固定的高度. ...
- Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:
Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...
- Block存储区域
Block存储区域 首先,需要引入三个名词: ● _NSConcretStackBlock ● _NSConcretGlobalBlock ● _NSConcretMallocBlock 正如它们名字 ...
- kinnect相关
1. kinnect的现状. http://tech.qq.com/a/20150909/046760.htm 2. kinnect的相关工作 http://baike.baidu.com/link? ...
- 重新安装配置ubuntu的引导菜单
查看分区挂在情况,找到ubuntu所在分区(boot)$sudo fdisk -l 卸载isodevice镜像设备所在盘分区(boot) $sudo umount -l /isodev ...