SPI接口SPI0-史上最直白的ica教程

时间:2024-06-23 16:19:37
【文件属性】:

文件名称:SPI接口SPI0-史上最直白的ica教程

文件大小:5.26MB

文件格式:PDF

更新时间:2024-06-23 16:19:37

LPC23XX 中文资料

广州周立功单片机发展有限公司 第16章 SPI接口SPI0 LPC23xx 用户手册 ©2008 Guangzhou ZLGMCU Development CO., LTD 307 为从机时,它的 I/O 口只有在被有效的 SSEL 信号选择时才有效。 16.4.2 主机操作 下面的步骤描述了 SPI 设置为主机时如何处理数据传输。该处理假设任何之前的数据传 输已经结束。 1.将 SPI 时钟计数寄存器设置为所需要的时钟率。 2.将 SPI 控制寄存器设置为所需要的设定。 3.将要发送的数据写入 SPI 数据寄存器。该写操作启动 SPI 数据传输。 4.等待 SPI 状态寄存器中的 SPIF 位置位。SPIF 位将在 SPI 数据传输的最后一个周期之 后置位。 5.读取 SPI 状态寄存器。 6.从 SPI 数据寄存器中读出接收到的数据(可选) 7.如果有更多数据需要发送,则跳到第 3 步。 注:读或写 SPI 数据寄存器来清零 SPIF 状态位。因此,如果不执行可选的 SPI 数据寄存器读操作, 则需要执行该寄存器的写操作以清零 SPIF 状态位。 16.4.3 从机操作 下面的步骤描述了 SPI 设置为从机时如何处理数据传输。该处理假设任何之前的数据传 输已经结束。要求驱动 SPI 逻辑的系统时钟速度至少 8 倍于 SPI。 1.将 SPI 控制寄存器设置为所需要的设定。 2.将要发送的数据写入 SPI 数据寄存器(可选)。注意这只能在从机 SPI 传输没有进行 时执行。 3.等待 SPI 状态寄存器中的 SPIF 位置位。SPIF 位将在 SPI 数据传输的最后一个采样时 钟沿后置位。 4.读取 SPI 状态寄存器。 5.从 SPI 数据寄存器中读出接收到的数据(可选)。 6.如果有更多数据需要发送,则跳到第 2 步。 注:读或写 SPI 数据寄存器来清零 SPIF 状态位。因此,至少需要执行一个该寄存器的读或写操作来 清零 SPIF 状态位。 16.4.4 异常状况 读溢出 当 SPI 模块内部读缓冲区包含处理器没有读出的数据,而新的传输已经完成,那么这时 候就会发生读溢出。状态寄存器中的 SPIF 位置位表示读缓冲区包含了有效数据。当一次传 输结束时,SPI 模块需要将接收到的数据移到读缓冲区。如果 SPIF 位有效(读缓冲区已满), 则新接收到的数据将会丢失,而状态寄存器的读溢出 (ROVR)位将被激活。 写冲突 我们在前面提到过,在 SPI 模块总线接口与内部移位寄存器之间没有写缓冲区。这样在 SPI 数据传输过程中不应向 SPI 数据寄存器写入数据。不能向 SPI 数据寄存器写入数据的时 间从传输启动时开始,直到 SPIF 有效时读取状态寄存器为止。如果在这段时间内写 SPI 数


网友评论