1. 533SPI的特性
  • 最高速度可达SCLK/4;
  • 支持主模式和从模式;
  • 可使用8个GPIO口作为从选择线:
    • 1 slave select input pins
    • 7 slave select output pins
  • DMA支持
  • 可编程的时钟极性和相位;
  • 可编程的波特率;
  • 可编程的字长度:8或16bits
  1. 接口信号说明
  • 时钟信号SCK

由主设备产生,是门控的,即只在传输期间有效,在没有数据操作时,是无脉冲波形的。在一个边沿输出数据、另一个边缘采样数据。

  • Master Out Slave In(MOSI)/Master In Slave Out(MISO)

双向数据引脚,方向取决于设备是主设备还是从设备。

  • SPISS,PF0

作为从机时的片选信号;

PFx:作为主机时的设备选择信号。

  1. 电路连接方法如下:

    

  4. 时钟的极性与相位问题:

  这里的设置要取决于我们所采用的设备的SPI接口模式,假如设备是上升沿采样,下降沿输出,空闲时间为高电平,则对应的DSP设置为:CPOL = 1, CPHA = 1,即模式4.

  5. 时钟频率问题:

    时钟频率是由SPI_BAUD register决定的,计算方法为:

        SCK = SCLK/(2*SPI_BAUD);

    假设我们SCLK = 120MH,SPI_BAUD = 4,则SCK = 15M,即SPI的波特率为15MHz。

  6.其它寄存器的设置

  其它寄存器的设置按照寄存器的手册相关位的说明即可,需要解释的是SPI_CTL中TIMOD位的设置。

从时钟SCK与数据的关系波形中注意到,在8个时钟周期中,可以同时发送一个字节的数据,同时采样一个字节的数据。本例程中设置为01,也就是发起传输是由向SPI_TDBR寄存器中写数据导致的。那接受数据时如何发起SCLK呢?答案是要在读SPI_RDBR之前,发送一个字节的数,这个数发送完成的同时,采样也结束了。因此:

因此(这里为16位操作):

  • 写操作:spi_send_read_data(0xaabb);  //发送数据0xaabb
  • 读操作:var = spi_send_read_data(0xffff);    //0xffff为发送无效数据

  7.具体的代码:

void init_spi(void)
{
*pSPI_BAUD=; //配置速率为1/4系统时钟 SPI速率 = SCLK/2*SPI_BAUD
*pSPI_FLG |=FLS2; //选择SPISEL2接口作为slave选择引脚
//enable spi,master mode,MSB first,16 bit transfer
//CPOL,CPHA(slave select pin controlled by software)
//start transfer with write of SPI_TDBR
*pSPI_CTL = SPE|MSTR|CPHA|CPOL|SIZE|0x0001;
} uint16_t spi_send_read_data(uint16_t data)
{
uint16_t i; *pSPI_FLG &= ~FLG2; //将SPISEL2拉到0
*pSPI_TDBR = data; //将数据送入SPI传输数据寄存器
while(*pSPI_STAT & TXS); //查看SPI传输状态是否完成,用示波器测试要花费一个CLK周期; //读过程
while(!(*pSPI_STAT & RXS));//查看SPI传输状态是否有数据需要接收
i = *pSPI_RDBR; //读取数据
*pSPI_FLG |= FLG2; //将SPISEL2拉到1,完成数据传输
return i;
}

 

   

Blackfin DSP(五):BF533的SPI接口的更多相关文章

  1. Blackfin DSP(八):1D DMA与音频处理模板

    1.DMA产生的背景 在许多需要使用DSP 的场合,一般都需要大量的数据搬移工作,而如果每次数据搬移都由DSP 内核来参与完成,将大大占用DSP 内核的处理时间,从而严重影响其信号处理能力.因此,Bl ...

  2. Blackfin DSP(七):用SPORT口模拟SPI

    1.问题的提出 当系统从SPI device启动时,若SCLK = 133M,则SPI的最大速度为33M.然而,有一些串行的flash设备能更快的运行,因此,如果我们使用SPORT口,它的最大速度为S ...

  3. BF533的SPORT接口

    BF533的SPORT接口 1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCL ...

  4. 自定义AXI总线形式SPI接口IP核,点亮OLED

    一.前言 最近花费很多精力在算法仿真和实现上,外设接口的调试略有生疏.本文以FPGA控制OLED中的SPI接口为例,重新夯实下基础.重点内容为SPI时序的RTL设计以及AXI-Lite总线分析.当然做 ...

  5. flash读写学习笔记与spi接口及简单测试验证(三)

    FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...

  6. SPI接口在LCD上的应用

    ​小分辨率的LCD,比如QQVGA,QCIF,QVGA等,广泛应用于功能手机和穿戴设备(比如手表)上.这类小分辨率的LCD,除了支持并行接口(比如i80),一般也会支持串行接口.在实际产品中广泛运用的 ...

  7. 嵌入式物联网之SPI接口原理与配置

    本实验采用W25Q64芯片 W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb.该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件.W25Q64将8M字节的容量分为 ...

  8. spi接口的ds1302时钟芯片控制在lcd1602上显示

    spi接口的ds1302时钟芯片控制在lcd1602上显示                                                                        ...

  9. CC3000 SPI接口编程介绍

    CC3000 SPI 操作: CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI:通信模式如下图: CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟 CSn:低 ...

随机推荐

  1. asp.net mvc处理css和js版本问题

    当服务的修改了js和css内容后,发布到IIS服务器上,总是导致客户端内容显示不正确,原因是客户端存在缓存,还是加载的原来的js和css问题. 在css或js后面添加版本号,例如: <scrip ...

  2. IT公司100题-28-整数的二进制表示中1的个数

    问题描述: 输入一个整数n,求n的二进制表示中,一共有多少个1.例如n=8,二进制表示为00001000,二进制表示中有1个1.     分析: 如果一个数n不为0,那么n-1的二进制表示,与n的二进 ...

  3. 搭建mysql5.626及如何去官网下载历史版本数据库

    MySQL官网下载历史版本 网上搜索MySQL官网 2 查询所有的归档文件   点击进入服务器列表   列表中默认只有Windows 版本的,可选择其它版本,但无法进行查询   查看网页元素   发现 ...

  4. 在服务器端将XML转换成HTML

    以下是在服务器上转换XML文件所需要的简单源代码: <% 'Load the XML set xml = Server.CreateObject("Microsoft.XMLDOM&q ...

  5. SQL实践中的50句

    一个项目涉及到的50个Sql语句(整理版)--1.学生表Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程 ...

  6. ubuntu auto install update

    sudo apt-get update sudo apt-get dist-upgrade 32bit mode sudo dpkg --add-architecture i386

  7. PureLayout和Masonry比较

    一年前那时我做iOS开发,为了自动布局适配多种屏幕,我一般使用Masonry,后来偶然地在一个视频教程中发现老师使用了UIView+Autolayout(现在作者改名为PureLayout)自动布局, ...

  8. 2016 - 1 - 23 json解析

    一: json   1. 什么是json 1.1 json是一种轻量级的数据格式,一般用于数据交互. 1.2 服务器返回给客户端的数据,一般都是JSON或者XML格式(文件下载除外).   2. JS ...

  9. 【转】谈谈Google Polymer以及Web UI框架的未来

    原文转自:http://www.csdn.net/article/2013-05-27/2815450-google-polymer 摘要:开发者Axel Rauschmayer在自己的博客上详解了G ...

  10. Day19_IO第一天

    1.异常 1.概念      程序出现不正常的情况 2.异常体系(掌握)      Throwable           |-Error                               ...