星期一, 十二月 10, 2007

s3c2410 _spi概述

概况:

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

S3C24104个与SPI传输有关的I/O信号引脚:SCK(SPICLK01)MISO(SPIMISOO1)数据线,MOSISPIMOSIO1)和低电平有效的/SS(nSS01)引脚(输入)

特点

SPI协议(Ver.2.11)兼容

8位移位寄存器输出

8位移位寄存器接收

8位预分频逻辑

查询,中断,DMA传输模式

 

 

SPI操作

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

 

编辑程序

 

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

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

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

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

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

3.        写数据0xFFSPTDATn10次以初始化MMCSD卡。.

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

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

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

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

7.       接收数据:SPCONnTAGD 能用 = 自动接收垃圾数据模式。

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

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

 

 

通过DMA发送的步骤

1.       SPI的配置为DMA模式

2.       DMA合适设置

3.       SPI请求DMA服务

4.       DMASPI发送一个字节数据.

5.        SPI向卡里发送数据

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

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

 

通过DMA接收的步骤

1.       SPI设置为DMASMOD位开始,并且设置TAGD.

2.       全适配置 DMA

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

4.       SPI请求DMA服务

5.       DMASPI接收数据

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

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

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

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

 

:

总接收的数据 = 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引脚外的其它引脚的方向通过SPCONnMSTR位来控制。nSS引脚的方向总是输入。

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

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

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

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

 

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

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

概况:

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

S3C24104个与SPI传输有关的I/O信号引脚:SCK(SPICLK01)MISO(SPIMISOO1)数据线,MOSISPIMOSIO1)和低电平有效的/SS(nSS01)引脚(输入)

特点

SPI协议(Ver.2.11)兼容

8位移位寄存器输出

8位移位寄存器接收

8位预分频逻辑

查询,中断,DMA传输模式

 

 

SPI操作

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

0 意見: