SPI接口(续二)
接下来看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接口(续二)的更多相关文章
- 自定义AXI总线形式SPI接口IP核,点亮OLED
一.前言 最近花费很多精力在算法仿真和实现上,外设接口的调试略有生疏.本文以FPGA控制OLED中的SPI接口为例,重新夯实下基础.重点内容为SPI时序的RTL设计以及AXI-Lite总线分析.当然做 ...
- SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)
SPI接口扫盲 douqingl@gmail.com 为何要写这篇文档?百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的.wikipedia英文版[注释 ...
- flash读写学习笔记与spi接口及简单测试验证(三)
FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...
- linux驱动基础系列--Linux下Spi接口Wifi驱动分析
前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 .主要是想对spi接口的wifi驱动框架有一个整体的把 ...
- SPI接口的ETH芯片(ENC28J60/W5500)
一 ENC28J60:SPI接口.中断.复位.LED指示.可参看野火相应教程.简单的在单片机中实现网页服务器是参考AVRNET项目,复杂的是用LWIP协议栈.telnet用于用PC的TELNET可以远 ...
- SPI接口在LCD上的应用
小分辨率的LCD,比如QQVGA,QCIF,QVGA等,广泛应用于功能手机和穿戴设备(比如手表)上.这类小分辨率的LCD,除了支持并行接口(比如i80),一般也会支持串行接口.在实际产品中广泛运用的 ...
- 嵌入式物联网之SPI接口原理与配置
本实验采用W25Q64芯片 W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb.该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件.W25Q64将8M字节的容量分为 ...
- 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...
- spi接口的ds1302时钟芯片控制在lcd1602上显示
spi接口的ds1302时钟芯片控制在lcd1602上显示 ...
- CC3000 SPI接口编程介绍
CC3000 SPI 操作: CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI:通信模式如下图: CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟 CSn:低 ...
随机推荐
- Java实现台球游戏的动画实现相关代码
package com.bjsxt;//scr中新建的包packageimport java.awt.*;import javax.swing.*;public class BallGame exte ...
- vite中使用img标签
<img class="icon-logo" :src="iconsUrl[imgName]" alt="" /> const ...
- RabbitMQ的使用介绍
一.RabbitMQ是什么 RabbitMQ是一种常用的消息中间件,是基于AMQP协议,采用erlang语言开发的面向消息服务的中间件,是一个独立的系统应用程序,可以管理服务器计算资源和网络通信.一般 ...
- consul剔除某个服务
curl --request PUT http://ip:端口/v1/agent/service/deregister/服务对应的id地址
- js复选框,三层结构
最终实现效果如下 html+css如下 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 < ...
- webpack5 与webpack4 之间差别
1.terserPlugin webpack4 上需要下载安装 terser-webpack-plugin 插件,并且需要配置,webpack5 上生产模式下默认开启压缩,开发环境也可以按如下配置 / ...
- Selenium私房菜系列7 -- 深入了解Selenium RC工作原理(2)【II】
继续前一篇的问题,为什么Selenium RC中的Selenium Server需要以这种代理服务器的形式存在?其实,这和浏览器的"同源策略"(The Same Origin Po ...
- xh_零基础网站渗透第一部
一.认识常见网站类型 1.1asp:asp是动态服务器页面(active server page)的英文缩写.是微软公司开发的代替cgi脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单 ...
- 若依分离版本+Nginx+docker+jenkins 部署
准备: jenkins node.js 若依前后分离 docker 最终访问地址: 服务端api地址:192.168.66.74:8086 前端页面地址:192.168.66.61:7001 jenk ...
- 记录POI导入时单元格下拉框两种实现方式(excel数据有效性)
如果下拉选项字符少于225 使用方式1 public static HSSFSheet setHSSFValidation(HSSFSheet sheet, String[] textlist, in ...