当前位置:首页 > > 充电吧
[导读]去年的时候调了一下2410的SPI,很晕,但最后还是通了,今天简单记录一下大概的过程。 按着我的惯例先引用一段网络上的文章来预热一下。引用:概况:S3C2410X的连续外围设备接口(SPI)能连接电路

去年的时候调了一下2410的SPI,很晕,但最后还是通了,今天简单记录一下大概的过程。 

按着我的惯例先引用一段网络上的文章来预热一下。

引用:

概况:

S3C2410X的连续外围设备接口(SPI)能连接电路实现连续数据传递。S3C2410X包含2个SPI,,每个都分别有两个8位转移寄存器用于数据的传输和接收。在一个SPI进行数据传递时,同步传送数据并连续输出数据。在某一频率的8位连续数据由它相应的通讯控制寄存器设置所决定。假如你只发送数据,接收数据就能设为哑元。反之,如果你只想接收数据,你应该发送设为哑元'1'数据。

S3C2410有4个与SPI传输有关的I/O信号引脚:SCK(SPICLK0,1)、MISO(SPIMISOO,1)数据线,MOSI(SPIMOSIO,1)和低电平有效的/SS(nSS0,1)引脚(输入)。

特点

与SPI协议(Ver.2.11)兼容

8位移位寄存器输出

8位移位寄存器接收

8位预分频逻辑

查询,中断,DMA传输模式

 
SPI操作

采用SPI接口, S3C2410X可发送/接收与外部设备同步的8位数据。一个串行时钟线与两条用来移位和采样信息的数据线同步。 当SPI为主机时,发送频率可以通过为SPPREn寄存器设置合适的值来控制。你可以通过调整波特率数据寄存器的值来修改它的频率。当SPI为从机时,其它的主机提供时钟。当编程者向SPTDATn寄存器写字节数据时,SPI的收/发将会同时开始。在其它情况下,在向SPTDATn寄存器写入字节数据时要把nSS激活。


编辑程序


当向SPTDATn寄存器写入字节时,如果ENSCK和SPCONn被设置的话,SPI就开始传输

你可以使用一上典型的程序来操作一个SPI卡。

编程SPI模式,基本遵循这些基本步骤:

1.       设置波特率寄存器(SPPREn)

2.       设置SPCONn以选择合适的SPI模式。

3.        写数据0xFF到SPTDATn10次以初始化MMC或SD卡。.

4.       设置GPIO引脚使其具有nSS功能,低电平时使MMC或SD卡有效。

5.       发送数据:检查发送准备樗是否为1,如果为1 的话就开始向SPTDATn写数据。

6.       接收数据(1):SPCONn的 TAGD 位禁用 = 正常模式

    :向SPTDATn 写0xFF,然后测试REDY,再从读缓存中读取数据。

7.       接收数据:SPCONn的TAGD位 能用 = 自动接收垃圾数据模式。

    :测试REDY,然后从读缓存中读取数据。

8.       设置GPIO引脚使其具有nSS功能,高电平时使MMC或SD卡有效。


通过DMA发送的步骤

1.       SPI的配置为DMA模式

2.       DMA合适设置

3.       SPI请求DMA服务

4.       DMA向SPI发送一个字节数据.

5.        SPI向卡里发送数据

6.       返回到步骤3直到DAM计数变为0

7.       用SMOD位把SPI设置为中断或查询模式

 
通过DMA接收的步骤

1.       把SPI设置为DMA以SMOD位开始,并且设置TAGD位.

2.       全适配置 DMA

3.       SPI从卡里接收一字节数据

4.       SPI请求DMA服务

5.       DMA从SPI接收数据

6.        自动的向SPIDATn写数据0xFF

7.        回到步骤4至DAM计数变为0

8.       用SMOD位把SPI配置为查询模式,并且清TAGD位

9.       如果SPSTAn的REDY 标志被设置,就读取最后的字节数据

 
注:

总接收的数据 = DAM TC 值+在查询模式下的最后值.

DAM接收的第一个数据是哑元,所以使用者可以忽略它

SPI 从机接收模式和B模块

 
如果SPI从机接收模式有效和SPI模块被设成B模块,SPI操作将会失败。

READY信号这一内部信号将在SPI_CNT达到0之前变成高电平。因此,在DMA模式中,DATA_READ信号应该在最后一个数据结束之前产生。

注意

1)      DMA模式:这种模式不能在SPI从机接收模式和B模块下使用。

2)      查询模式:在SPI从机接收模式和B模块下DATA_READ信号应该推迟SPICLK的一个相位。

3)      中断模式:在SPI从机接收模式和B模块下DATA_READ信号应该推迟SPICLK的一个相位。

SPI特殊寄存器

SPI控制寄存器

SPI状态寄存器

SPI引脚控制寄存器

如果SPI系统使能时,除nSS引脚外的其它引脚的方向通过SPCONn的MSTR位来控制。nSS引脚的方向总是输入。

当SPI为主机时,nSS引脚用来检查由SPPIN的ENMUL位提供的多主机错误信号,另一个GPIO应该选择从机。

如果SPI被设置为从机,nSS引脚奖被一个主机选择为从机。

SPIMISO和SPIMOSI数据引脚用来发送和接收串行数据。当SPI为主机时,SPIMISO是数据输入引脚,SPIMOSI是数据输出引脚,SPICLK(SCK)是时钟输出线。当SPI为从机时,这些引脚执行相反的功能。在多主机系统中,SPICLK(SCK)、SPIMOSI、SPIMISO将被分别的配置在一个体系中。

当其它的SPI设备作为从机选择S3C2410 的SPI为从机时,一个主机SPI可以发出一个多主机错误信号。当这个信号被探测到,将会立刻发生下面所说的事情。但是如果你想探测到这种信号的话必须事先设置SPPINn的ENMUL位。

 
1.       SPCONn的MSTR位被强制为0来启动从机模式。

2.       SPSTAn的MULF标志位被置位,一个SPI中断会产生。

 

 

这个是我从网上搜到的一篇可以说是2410datasheet    SPI部分简单翻译的文章,不过感觉不是很好,最好是过完一遍后再去读英文的文档,那个才是“根本”,才能看得懂,看得明白。

不过下面还是比出一个比较好的文章,介绍得很全。其中有臭氧层子的东西,也有寄存器的介绍,这样设置起来也比较容易,毕竟最干的、最实际的、最精华的地方还是在这里嘛。如下:

SPI接口概述

 SPI接口:SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司开发的一种同步串行外设接口标准。
 SPI接口信号:有4个信号:数据发送、数据接收、时钟和片选。在时钟信号的作用下,发送的同时,接收对方发来的数据;也可以只发送、或者只接收。SPI的波特率可以达到20Mb/s以上。
  S3C2410 ARM9有2个SPI接口,既可以作为主SPI使用,也可以作为从SPI使用。
 主要特点:
 与SPI 协议 (ver. 2.11) 兼容;
 8位发送移位寄存器;
 8位接收移位寄存器;
 8位预分频器;
 具有查询、中断、DMA传输模式。

   


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭