IMX6ULL裸机篇之SPI实验-SPI主控寄存器

news2025/2/13 12:46:51

一.   SPI主控寄存器

IMX6ULL 芯片的 SPI接口叫做 ECSPI,支持全双工、主丛可配置。

本文学习 IMX6ULL-阿尔法开发板SPI中控芯片的 SPI寄存器部分。后续代码实现需要配置 SPI相关的寄存器。

二.   SPI主控的寄存器配置

1.   SPI主控芯片寄存器

(1)  RXDATA寄存器为接收到的数据。

关于RXDATA寄存器而言,这里读取数据时,一定要等待RR位置1(即状态位)后,才可以读取数据。

TXDATA寄存器为发送数据寄存器。

这两个寄存器都是32位寄存器。但是,我们一般使用低8位,因为SPI通信时,我们是一个字节一个字节进行传输的。

(2)  CONREG寄存器为配置寄存器。

bit0置1,使能SPI。

Bit3置1,表示当向TXFIFO写入数据以后马上开启SPI突发访问,也就是发送数据。

Bit7:4设置 SPI通道主从模式,bit7为通道3,bit4为通道0,我们使用到了SS0,也就是通道0,因此需要设置bit4为1。

Bit8:11 是设置是时钟分频用的,Bit12:15也是设置时钟分频用。 (关于时钟分频数的配置在后面会进行详细的介绍!!!) 

Bit19:18设置为00,我们使用到SS0,也就是通道0。

Bit31:30设置突发访问长度,我们设置为7,也就是8bit突发长度,一个字节。

(3)  CONFIGREG寄存器为配置寄存器。

bit0为PHA,设置为 0,表示 串行时钟的第一个跳变沿开始采集数据。

bit4:7位表示设置时钟极性。bit4为PO,设置为0,表示SCLK空闲的时候为低电平。

Bit8设置0。

Bit12设置 为0。

Bit16设置为0,表示空闲的时候数据线为高。

Bit20设置为0,表示SCLK空闲的时候为低。

(4)  STATREG寄存器:为状态寄存器。

bit0表示TXFIFO为空,我们在发送数据之前要等待TXFIFO为空,即等待bit0为1。

Bit3表示RXFIFO是否有数据,为1的时候示RXFIFO至少有1个字的数据,我们在接收数据的时候要等到bit3为1。

(5)  PERIODREG寄存器采用周期控制寄存器。

bit14:0设置wait states时间,我们设置为0X2000。

Bit15设置wait states的时钟源为SPI CLK,将此位设置0。
Bit21:16表示片选信号的延时,可设置0-63,这里设置为0.

2.  时钟配置

时钟分频设置需要参考 "时钟章节" 中的时钟树部分。

从时钟树可以看出:

SPI时钟源最终来源于pll3_sw_clk=480MHz/8=60MHz。

CSCDR2寄存器:

bit18:设置为 0,则 ECSPI时钟源为 60MHz

bit24:19:设置为0,表示1分频,最终进入到 SPI外设的时钟源为 60MHz

ECSPI_CONREG寄存器:

ECSPI模块还需要对时钟进行两级分频,由ECSPI_CONREG寄存器设置。

Bit15:12设置前级分频,可以设置0~0xf,表示1~16分频。

Bit11:8设置2级分频,设置2^n分频,n=0~15.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DVWA-Command Injection

大约 命令注入攻击的目的是在易受攻击的应用程序中注入和执行攻击者指定的命令。 在这种情况下,执行不需要的系统命令的应用程序就像一个伪系统外壳,攻击者可能会使用它 作为任何授权的系统用户。但是,命令的执行权限和环境与 Web 服务具有的…

【MySQL】创建和管理表

创建和管理表 标识符命名规则MySQL中的数据类型创建和管理数据库使用数据库修改数据库 创建表语法方式一方式二 修改表向表中追加一个列修改一个列重命名一个列删除一个列 重命名表方式一方式2; 删除表清空表 存储数据是处理数据的第一步 。只有正确地把数据存储起来&#xff0…

基于卫星星历计算卫星在CGCS2000大地坐标系中的坐标

目录 一、北斗系统概述 1.空间星座 2.坐标系统 3.时间系统 二、实验目的 三、实验内容 四、实验过程 五、实验结果 一、北斗系统概述 1.空间星座 北斗卫星导航系统简称北斗系统,英文缩写为 BDS,其空间星座由 5 颗地球静止轨道(GEO&…

​“前端已死”甚嚣尘上,全栈工程师卷到起飞

海量应届生入场,坑位却还是那多。具备前后端开发能力的全栈工程师兴起,不仅能够开发前端,还能够处理后端业务逻辑和数据库等技术,还能掌握整个软件开发的细节。企业自然会更愿意招聘全栈工程师,说白了,卷啊…

springboot整合quartz实现定时任务动态增删改查

springboot整合quartz quartz介绍Quartz 核心概念 使用依赖配置文件启动类quartz工具类job业务用到的对象类接口service实现类测试 quartz介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。…

【CMake 入门与进阶(6)】 CMakeLists.txt 部分常用变量(附使用代码)

变量也是 cmake 中的一个重头戏,cmake 提供了很多内置变量,每一个变量都有它自己的含义,通过这个链接地址cmake-variables(7) — CMake 3.5.2 Documentation可以查询到所有的内置变量及其相应的介绍,如下所示: 在这一份…

App移动端测试 —— Monkey的日志

Monkey的日志对于分析脚本的执行情况十分必要。 Monkey 日志由以下几部分组成: 测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比。” 正文内容从这里开始(可直接省略,亦可配图说明)。 01—Mon…

使用python批量处理工作簿和工作表

案例01 批量新建并保存工作簿 将for语句与xlwings模块相结合,就可以轻松实现批量创建工作簿 import xlwings as xw # 导入xlwings模块 app xw.App(visibleTrue,add_bookFalse) # 启动Excel程序,但不新建工作簿 for i in range(6):workbook app.books…

Pyinstaller 快速找出所需库的方法

目录 【auto-py-to-exe】第三方库 使用【auto-py-to-exe】逐步尝试 1.什么文件都不添加,选择项目与单目录后直接打包 2.直接运行生成的exe文件 3.定位所需的包 4.--add-data 和 --hidden-import 打包为一个exe文件 【auto-py-to-exe】第三方库 其是pyinstaller操…

【头歌-Python】9.1 X射线衍射曲线绘制(project)第3~4关

第3关:X 射线衍射曲线峰值 任务描述 本关任务:读文件中的数据绘制线图形并加绘制峰值。 相关知识 为了完成本关任务,你需要掌握: python 读取文件中的数据使用 matplotlib 绘制图形 python 读取文件 python读取文件可以用以…

6.volatile与JMM

volatile与JMM 6.1 被volatile修饰的变量有两大特点 特点: 可见性 有序性:有排序要求,有时需要禁重排 内存语义: 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中 当读一个vol…

Linux:ftp服务 (vsftpd)

我的ftp服务器为centos7 使用yum安装的vsftpd软件 (如果你需要离线yum库,而不会搭建可以查看) Linux:rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客 安装软件 配置环境 其次是Linux的防火墙和selinu…

写一个Orillusion编辑器(伪)

界面效果 思路 bootstrap控制界面效果jquery动态修改界面内容[Add]增加一个box[Play]导出play.html,打开play.html就可以看到程序运行效果 编辑器代码 <!DOCTYPE html> <html> <!-- TODO 1. 序列化数据,保存工程 2. 反序列化数据,打开工程 --><head>…

Python实现ACO蚁群优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁群优化算法(Ant Colony Optimization, ACO)是一种源于大自然生物世界的新的仿生进化算法&#xff0c…

腾讯安全SOC+荣获“鑫智奖”,助力金融业数智化转型

近日&#xff0c;由金科创新社主办&#xff0c;全球金融专业人士协会支持的“2023鑫智奖第五届金融数据智能优秀解决方案评选”榜单正式发布。腾讯安全申报的“SOC基于新一代安全日志大数据平台架构的高级威胁安全治理解决方案”获评“鑫智奖网络信息安全创新优秀解决方案”。 …

大数据分析平台释疑专用帖

大数据分析平台是大数据时代&#xff0c;企业数字化运营决策的一大关键平台&#xff0c;但初次接触大数据分析平台时&#xff0c;大家必然是问题多多的&#xff0c;本文将就几个比较常见的问题进行总结回答&#xff0c;希望对正在了解、选型大数据分析平台的大家有所帮助。 首…

Qt学习08:文本输入类与快捷键

文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 QLineEditQTextEditQTextCursor QPlainTextQKeySequenceEdit QLineEdit QLineEdit是最基本的输入控件&#xff0c;常用于短行的文本输入。 构造函数 QLineEdit(const QString &contents, QWidget *parent …

07_scrapy的应用——获取电影数据(通过excel保存静态页面scrapy爬虫数据的模板/通过数据库保存)

0、前言: 一般我们自己创建的一些python项目,我们都需要创建虚拟环境,其中会下载很多包,也叫做依赖。但是我们在给他人分享我们的项目时,不能把虚拟环境打包发送给别人,因为每个人电脑系统不同,我们可以把依赖导出为依赖清单,然后别人有了我们的依赖清单,就可以用一条…

[网络工程师]-网络规划与设计-网络测试运行和维护(二)

4、局域网测试 局域网测试主要是检验网络是否为应用系统提供了稳定、高效的网络平台,如果网络系统不够稳定,网络应用就不可能快速稳定。对于常规的以太网进行系统测试,主要包括系统连通性、链路传输速率、吞吐率、传输时延、丢包率及链路层健康状况测试等基本功能测试。 4.…

用那种方式安装 ThinkPHP 5.0?

简单介绍 ThinkPHP是一个免费开源的&#xff0c;快速、简单的面向对象的轻量级PHP开发框架&#xff0c;是为了敏捷WEB应用开发和简化企业应用开发而诞生的。 ThinkPHP5.0版本是一个颠覆和重构版本&#xff0c;采用全新的架构思想&#xff0c;引入了更多的PHP新特性&#xff0c…