接下来看SPI接收器数据寄存器RXDAT,下表是它的全部位结构,其地址分别为0x40058014(SPI0)、0x4005C014(SPI1)。

(1)第0到15位(RXDAT)为接收器数据,它包含接收的下一个数据,使用的位数由TXCTL/TXDATCTL中的LEN设置。
(2)第16位(RXSSEL0_N)为接收的从机选择位,此字段允许SSEL0引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL0引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(3)第17位(RXSSEL1_N)为接收的从机选择位,此字段允许SSEL1引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL1引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(4)第18位(RXSSEL2_N)为接收的从机选择位,此字段允许SSEL2引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL2引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(5)第19位(RXSSEL3_N)为接收的从机选择位,此字段允许SSEL3引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL3引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(6)第20位(SOT)传输标志开始位,如果是SSEL从无效到有效之后的第一个数据(比如之前所有传输均已结束),则置1,若传输长度大于16位,则此信息可用来识别第一条数据。
(7)第21到31位为保留位,写入时只能写0。

接下来看SPI发送器数据和控制寄存器TXDATCTL,下表是它的全部位结构,其地址分别为0x40058018 (SPI0)、0x4005C018 (SPI1)。

(1)第0到15位(TXDAT)为发送数据,该字段提供待发送数据的1至16位。
(2)第16位(TXSSEL0_N)为发送从机选择位,主机模式下该字段使SSEL0生效,引脚输出默认为低电平有效,SSEL0引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL0已生效,值为1时表示SSEL0未生效。
(3)第17位(TXSSEL1_N)为发送从机选择位,主机模式下该字段使SSEL1生效,引脚输出默认为低电平有效,SSEL1引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL1已生效,值为1时表示SSEL1未生效。
(4)第18位(TXSSEL2_N)为发送从机选择位,主机模式下该字段使SSEL2生效,引脚输出默认为低电平有效,SSEL2引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL2已生效,值为1时表示SSEL2未生效。
(5)第19位(TXSSEL3_N)为发送从机选择位,主机模式下该字段使SSEL3生效,引脚输出默认为低电平有效,SSEL3引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL3已生效,值为1时表示SSEL3未生效。
(6)第20位(EOT)为传输结束,已生效的SSEL将在传输结束时解除生效并至少保持一段时间,这段时间由DLY寄存器中的Transfer_delay值确定。值为0时SSEL未解除生效,此条数据不视为传输结束,SSEL不会在该数据结束时解除生效。值为1时SSEL已解除生效。此条数据视为传输结束。SSEL会在该数据结束时解除生效。
(7)第21位(EOF)为帧结束,两帧之间可以插入延迟,该延迟由DLY寄存器中的FRAME_DELAY值定义。如果FRAME_DELAY值 = 0,则帧结束可能没有特殊意义。该控制可作为支持 帧长度超过16位的一部分。值为0时表示数据未EOF,此条传输数据不视为帧结束。值为1时表示数据EOF,此条数据视为帧结束,导致FRAME_DELAY时间在后续数据发送之前被插入。
(8)第22位(RXIGNORE)为接收忽略,允许数据使用SPI发送时,无需从接收器读取不需要的数据。设置此位可以简化发送过程,并可与DMA一同使用。值为0时表示读取已接收数据。必须读取已接收数据,才能允许传输过程。从机模式下,如果已接收数据未能在接收到新数据前读取,则发生溢出错误。值为1时表示忽略已接收数据。已接收数据被忽略,允许在不读取不需要的已接收数据情况下进行传输。不产生接收器标志。
(9)第23位为保留位,写入时只能写0。
(10)第24到27位(LEN)为数据长度,指定1到16位数据长度,通过多个相继传输可支持16位以上的传输长度,值从0x0到0xF,表示数据传输长度分别1到16位。
(11)第28到31位为保留位,写入时只能写0。

接下来是SPI发送器数据寄存器TXDAT,下表是它的全部位结构,其地址分别为0x4005801C(SPI0)、0x4005C01C(SPI1)。

(1)第0到15位(DATA)为发送数据,该字段提供待发送数据的4至16位。
(2)第16到31位为保留位,写入时只能写0。

接下来看SPI发送器控制寄存器TXCTL,下表是它的全部位结构,其地址分别为0x40058020(SPI0)、0x4005C020(SPI1)。

(1)第0到15位为保留位,写入时只能写0。
(2)第16位(TXSSEL0_N)为发送从机选择0。
(3)第17位(TXSSEL1_N)为发送从机选择1。
(4)第18位(TXSSEL2_N)为发送从机选择2。
(5)第19位(TXSSEL3_N)为发送从机选择3。
(6)第20位(EOT)为传输结束。
(7)第21位(EOF)为帧结束。
(8)第22位(RXIGNORE)为接收忽略。
(9)第23位为保留位,写入时只能写0。
(10)第24到27位(LEN)为数据传输长度。
(11)第28到31位为保留位,写入时只能写0。

接下来看SPI分频器寄存器DIV,下表是它的全部位结构,其地址分别为0x40058024(SPI0)、0x4005C024(SPI1)。

(1)第0到15位(DIVVAL)为速率分频器值,指定SPI的PCLK分频值,从而在主机模式下产生SPI时钟速率。
DIVVAL为-1编码,以便PCLK/1数值为0,PCLK/2数值为1,直至PCLK/65536中的最大可能分频值0xFFFF。
(2)第16到31位为保留位,写入时只能写0。

最后看SPI中断状态寄存器INTSTAT,下表是它的全部位结构,其地址分别为0x40058028(SPI0)、0x4005C028(SPI1)。

(1)第0位(RXRDY)为接收器就绪标志。
(2)第1位(TXRDY)为发送器就绪标志。
(3)第2位(RXOV)为接收器溢出中断标志。
(4)第3位(TXUR)为发送器下溢中断标志。
(5)第4位(SSA)为从机选择生效。
(6)第5位(SSD)为从机选择解除生效。
(7)第6到31位为保留位,写入时只能写0。

至此,所有SPI接口用到的寄存器全部介绍完毕,后面将会以一个实例来具体说明SPI接口的应用。

--待续--

SPI接口(续二)的更多相关文章

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

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

  2. SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)

    SPI接口扫盲   douqingl@gmail.com   为何要写这篇文档?百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的.wikipedia英文版[注释 ...

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

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

  4. linux驱动基础系列--Linux下Spi接口Wifi驱动分析

    前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 .主要是想对spi接口的wifi驱动框架有一个整体的把 ...

  5. SPI接口的ETH芯片(ENC28J60/W5500)

    一 ENC28J60:SPI接口.中断.复位.LED指示.可参看野火相应教程.简单的在单片机中实现网页服务器是参考AVRNET项目,复杂的是用LWIP协议栈.telnet用于用PC的TELNET可以远 ...

  6. SPI接口在LCD上的应用

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

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

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

  8. 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]

    我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...

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

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

  10. CC3000 SPI接口编程介绍

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

随机推荐

  1. CSS:布局篇_用flex布局实现两边顶宽中间自适应(圣杯布局&双飞翼布局)

    CSS:布局篇_用flex布局实现两边顶宽中间自适应(圣杯布局&双飞翼布局) <!DOCTYPE html> <html> <head> <title ...

  2. Linux - tar 命令详解 (压缩,解压,加密压缩,解密压缩)

    压缩tar -czvf /path/to/file.tar.gz file  (第一个参数:文件压缩的位置和名字  第二个参数:需要压缩的文件) 解压 tar -xzvf /path/to/file. ...

  3. Ubuntu docker安装、验证、卸载

    卸载Docker CE 卸载Docker CE软件包: sudo apt-get purge docker-ce 主机上的图像,容器,卷或自定义配置文件不会自动删除.要删除所有图像,容器和卷: sud ...

  4. 2022-05-10内部群每日三题-清辉PMP

    1.项目经理管理的一个项目不断面临挑战.发起人经常无法做出决定,存在大量预算超支,团队成员不断从项目离职,高级管理层没有提供实际的支持.项目经理应该怎么做? A.与团队一起开会,以确定造成这些问题的原 ...

  5. 微信带参数的小程序码生成并上传到七牛云(java)

    在大家看正式内容之前请耐心的听我把这段话说完:我冒昧的猜一下,你为了解决问题估计已经看了很多文章了,如果这边文章能给你带来帮助,不胜荣幸,如果有错误也请批评指正,共同进步,我之前在完成这个功能之前,从 ...

  6. Java 复习篇2---jdk

    jdk 文件: bin 该路径下存放了各种工具命令, 其中重要的有javac 和Java conf: 改路径下存放了相关配置文件 include: 该路径下存放了一些平台特定的头文件 jmods; 该 ...

  7. 「postOI」以另一种方式证明 FWT

    记号 \(\otimes\) 代表或/与/异或卷积: \(\oplus\) 代表"拼接",例如 \(A\oplus B\) 即将 \(B\) 接在 \(A\) 的后面: \(+,- ...

  8. 自己写的java教程,免费分享

    自己写的一套java教程,主要用于内部培训使用,有需要的可以直接免费下载: http://it.zhenzikj.com/download/java.zip 一共写了3套: java语言基础.网络开发 ...

  9. 实验一 Python程序设计入门 20203412马畅若

    课程:<Python程序设计>班级: 2034姓名: 马畅若学号:20203412实验教师:王志强实验日期:2021年4月13日必修/选修: 公选课 实验一 (一)实验内容 1.熟悉Pyt ...

  10. 4、Hadoop初识