TMS320F28335——SPI使用笔记
一、SPI硬件接口

GPIO54 ------- SPISIMOA
GPIO55 ------- SPISOMIA
GPIO56 ------- SPCLK
GPIO57 ------- SPSTEA
配置IO功能:

如上图所示,需要配置IO为SPI模式 只需要写入对应位为 1即可。代码如下
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = ; // Configure GPIO54 as SPISIMOA
GpioCtrlRegs.GPBMUX2.bit.GPIO55 = ; // Configure GPIO55 as SPISOMIA
GpioCtrlRegs.GPBMUX2.bit.GPIO56 = ; // Configure GPIO56 as SPICLKA
GpioCtrlRegs.GPBMUX2.bit.GPIO57 = ; // Configure GPIO57 as SPISTEA
二、设置SPI相关寄存器
SPI寄存器描述文档:http://www.ti.com/lit/ug/sprueu3a/sprueu3a.pdf

1、初始化SPI FIFO相关寄存器
SPIFFTX:FIFO发送寄存器
SPIFFRX:FIFO接收寄存器
SPIFFCT:FIFO控制寄存器
代码如下:
void spi_fifo_init()
{
SpiaRegs.SPIFFTX.all=0xE040;//使能FIFO;清除发送中断标志位;禁止FIFO发送中断;
//发送中断级别定义为0;
SpiaRegs.SPIFFRX.all=0x204f;//清除FF溢出标志位;清除溢出接受中断标志位;禁止
//FF接受中断;接受中断级别为16;
SpiaRegs.SPIFFCT.all=0x0;//SPITXBUF到移位寄存器传送不延迟;
}
2.设置SPI相关寄存器
SPICCR:配置控制寄存器
SPICTL:运行控制寄存器
SPIBRR:波特率寄存器
SPIPRI:优先级控制寄存器
初始化代码:
//初始化SPI函数
void spi_init()
{
SpiaRegs.SPICCR.all =0x004F;// SPI软件复位, 极性位为1(下降沿发送数据), 每次移
//进和移出16位字长度;禁止SPI内部回送(LOOKBACK)功能;
SpiaRegs.SPICTL.all =0x0006; // 使能主机模式,正常相位,使能主机发送,禁止接收
//溢出中断,禁止SPI中断; SpiaRegs.SPIBRR =0x007F; //SPI波特率=25M/128 =195.3KHZ;
SpiaRegs.SPICCR.all =0x00CF;//停止SPI软件复位准备接收或发送;禁止回送模式;
SpiaRegs.SPIPRI.bit.FREE = ; // 自由运行
}
三、使用SPI发送数据
发送数据就比较简单了只需要向 SPITXBUF 写入数据即可。
//发送SPI数据
void spi_xmit(Uint16 a)
{
SpiaRegs.SPITXBUF=a;
}
四 SPIA串口有时钟线有数据输出,但是SIMO IO没有数据输出的问题。

收发数据代码:

SPI配置代码:

由于MSB在前,数据是从高位一位一位的输出,所以在 输出8位的时候需要将数据移到bit15-bit8的位置。
也有可能设置了回环模式也会出现这种情况。发送接收代码如图

TMS320F28335——SPI使用笔记的更多相关文章
- qnx spi 学习笔记
文档还在编辑中,目前排版很乱,边看边写..等写完了编辑 qnx spi 学习 --目前只是看了代码,学的不深入,有错误的地方请联系我 谢谢 spi init spi init应该是分为2条线,一条是 ...
- STM32F407 SPI 个人笔记
概述 SPI ,Serial Peripheral interface,串行外围设备接口 全双工,同步的通信总线,四根线 主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器 ...
- SPI学习笔记1
SPI 简介 SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口.是 Motorola首先在其 MC68HCXX 系列处理器上定义的. SPI ...
- SPI使用笔记ADS1259+AD5676
SPI的通信速率通常比较快.目前用到的ADS1259芯片,可以达到2-4MHz,可能可以更加快.一般spi都是从慢速开始调试,但是具体到某个芯片,应该核对芯片时序图,比如ti的ds1259,数据手册上 ...
- postgresql spi开发笔记
#include "postgres.h" #include "fmgr.h" #include <string.h> #ifdef PG_MODU ...
- flash读写学习笔记与spi接口及简单测试验证(三)
FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...
- PX01关于手机屏SPI触摸调试学习笔记
上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...
- STM32F412应用开发笔记之三:SPI总线通讯与AD采集
本次我们在NUCLEO-F412ZG试验模拟量输入采集.我们的模拟量输入采用ADI公司的AD7705,是一片16位两路差分输入的AD采集芯片.具有SPI接口,我们将采用SPI接口与AD7705通讯.两 ...
- STM32学习笔记(八) SPI总线(操作外部flash)
1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...
随机推荐
- HDU 6191 Query on A Tree(字典树+离线)
Query on A Tree Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Othe ...
- Sql Server2008中自定义函数调用存储过程解决方案
1.开启sql server 2008远程连接 打开sql server配置管理器 配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server ...
- C# Cache缓存的应用
缓存类Cache的使用 直接先上代码 public class CacheHelper { private static string fileName = @"D:\huage.txt&q ...
- php的数组
Array 数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种 ...
- mysql 时间差
SELECT TIMESTAMPDIFF(minute,'2019-01-01 00:00:00', '2019-01-01 01:30:00') 返回结果 90 类推,有 SELECT TIMEST ...
- spring cloud:HystrixDashboard
hystrix-dashboard-server 1. File-->new spring starter project 2.add dependency <parent> < ...
- 《Effective Java》读书笔记 - 8.通用编程
Chapter 8 General Programming Item 45: Minimize the scope of local variables local variables应该在他们要被用 ...
- hdu5988(费用流,对数相乘做加法)
题意:一个网络流的图,有n个点,从1~n,然后m条边,每个点有两个值,一个是人的数量si一个是饭的数量bi.每条m边有容量ci,还有走上去可能踩断电线的概率pi(第一次踩上去没有事,之后都要p概率). ...
- Detectron系统实现了最先进的物体检测算法https://github.com/facebookresearch/Detectron
,包括Mask R-CNN. 它是用Python编写的,支持Caffe2深度学习框架. 不久前,FAIR才开源了语音识别的工具wav2letter,戳这里看大数据文摘介绍<快讯 | Facebo ...
- 555E Case of Computer Network
分析 一个连通块内的肯定不影响 于是我们先缩点 之后对于每个路径 向上向下分别开一个差分数组 如果两个数组同时有值则不合法 代码 #include<bits/stdc++.h> using ...