超高速闪存微控制器软件SPI

描述

本应用笔记介绍了用于超高速闪存微控制器(如DS89C430和DS89C450)的软件(bitbang)SPI库。对库的应用程序接口及其功能说明进行了说明。该应用程序接受串行输入并在Crystalfontz LCD上显示文本。

介绍

超高速微控制器系列使用单时钟周期内核,在相同的时钟频率下,其速度比传统 8051 快 12 倍。超高速微控制器系列的成员包括不同数量的内部闪存和MOVX SRAM,以实现简单的系统设计。这些微控制器具有多种特性,包括两个全双工串行端口、三个定时器计数器、四个双向 I/O 端口和六个外部中断源。虽然它们没有硬件串行外设接口(SPI)端口,但可以通过软件轻松模拟。

本应用笔记使用用于超高速微控制器的全功能软件SPI主站和一个简单的应用程序,利用它来控制Crystalfontz LCD(www.crystalfontz.com)。

应用概述

该应用程序接受来自标准串行终端程序的串行端口 0 上 57,600 波特(使用 33MHz 晶体时)的 ASCII 数据。数据被回显到终端并存储在数据存储器中,直到检测到回车;然后累积的文本将显示在LCD上。此应用中使用的LCD是具有低速SPI接口的Crystalfontz SKD204-634 V2.0串行LCD。它连接到DS89C430,如图1所示。复位后,终端上将打印“DS89C430软件SPI应用笔记”横幅。当应用程序侦听输入数据时,它会打印“=>”提示。

微控制器

图1.接线图。

软件 SPI 库

此应用程序使用的软件 SPI 库是一个高度可配置的 SPI 主站,具有以下功能:

四种SPI时钟模式

8 位和 16 位字传输

SPI 时钟拉伸

可选原子传输

该库支持的四种SPI时钟(SPI_CLK)模式由CKPHA和CKPOL定义。CKPOL 位定义 SPI 时钟的空闲状态,CKPOL = 0 力SPI_CLK空闲低电平,而 CKPOL = 1 力SPI_CLK空闲高电平。CKPHA 改变了用于信号传输数据的边缘。当 CKPHA = 0 时,SPI_CLK的第一个边指定从站和主站何时应对其输入进行采样。当 CKPHA = 1 时,SPI_CLK的第二个边指定何时采样。当 CKPHA = 1 时,主站和从站应在第一个边沿的输出上显示其数据SPI_CLK。这允许数据有足够的保留时间。当 CKPHA = 0 时,当从属选择 (SS) 行变为活动状态时,数据应变为有效。请注意,大多数设备要求在 CKPHA = 0 时使用 SS 行以允许正确的计时,而当 CKPHA = 1 时,SS 可能是可选的。图 2 说明了此行为。

微控制器

图2.SPI 时序图。

数据作为数据存储器中的字节数组发送到SPI库。在 8 位字模式下,这些字节一次传输一个。在 16 位字模式下,将传输两个字节,但此操作仅使用请求数量的一次传输。请注意,在本文档中,“word”的长度可能为 8 位或 16 位,具体取决于所选模式。

为了连接到较慢的SPI从站,可以使用SPI_CLK拉伸将每段SPI_CLK周期增加1μs。

SS信号是可选的,因为并非所有SPI设置都需要SS信号。大多数 SPI 器件期望 SS 的活动状态为低电平,但其他器件则要求高电平作为活动状态。某些 SPI 设备期望 SS 信号在每次字传输同步后变为非活动状态。

为了便于原子传输,可以在传输时禁用中断。

软件 SPI 库接口

与SPI库的接口如下。要传输的数据必须作为数组位于数据存储器的连续部分中。该库要求数据指针零 (dptr0) 指向要传输的数据的开头。要传输的字数应放在 R3、R2、R1 和 R0 中,R3 是 MSB。所需的拉伸值应放置在 R4 中。SPI库的选项应放置在R5中,其位值定义为:

 

R5.0 - 中联 设置为 1 - SPI_CLK 空闲高
R5.1 - 中发 设置为 1 - 在第二个SPI_CLK边上传输
R5.2 - 字模式 设置为 1 - 使用 16 位字传输
R5.3 - 无偏斜 设置为 1 - 在传输期间关闭中断
R5.4 - 使用SS 设置为 1 - 在传输过程中使用 SS 行
R5.5 - 同步SS 设置为 1 - 每个单词后使 SS 处于非活动状态
R5.6 - 反转SS 设置为 1 - SS 线路处于高电平有效
R5.7 - 未定义  

 

设置所有寄存器后,通过调用 xmitSPI 函数开始传输。传输完成后,每次单词传输期间读取的数据将位于为传输传递的数据数组中的相应单词位置。请注意,在调用 xmitSPI 后,dptr0 将指向传输数组的开头,但指向的数据将更改。

代码列表:软件SPI和Crystalfontz LCD浏览器

此应用程序是使用 Keil μVision2 构建的,但只需稍作修改,即可使用任何 8051 汇编程序。应用程序和 SPI 库源码和二进制文件可供下载。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分