0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:ADI 作者:ADI 2023-01-10 11:08 次阅读

本应用笔记介绍了用于超高速闪存微控制器(如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应用笔记”横幅。当应用程序侦听输入数据时,它会打印“=>”提示。

pYYBAGO81pWAAqfUAAAu1yODOso355.gif?imgver=1

图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 说明了此行为。

poYBAGO81peAJGQuAABtpEOHjqM706.gif?imgver=1

图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 库源码和二进制文件可供下载

审核编辑:郭婷

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

    关注

    48

    文章

    6813

    浏览量

    147672
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89678
  • 应用程序
    +关注

    关注

    37

    文章

    3138

    浏览量

    56423
收藏 人收藏

    评论

    相关推荐

    基于FPGA的超高速FFT硬件实现

    基于FPGA的超高速FFT硬件实现介绍了频域抽取基二快速傅里叶运算的基本原理;讨论了基于FPGA达4 096点的大点数超高速FFT硬件系统设计与实现方法,当多组大点数进行FFT运算时,利用FPGA
    发表于 06-14 00:19

    请问我使用超高速控制器时该怎么处理这些针呢?

    我想使用超高速控制器,但只适用于USB 2。所以我不需要超速引脚或OTG引脚。我该怎么处理这些针呢?投入或离开地面浮动?谢谢乔恩 以上来自于百度翻译 以下为原文I want to use
    发表于 06-12 11:42

    超高速大电流有源滤波LDO控制器

    MIC5190的典型应用:超高速,大电流有源滤波/ LDO控制器。 MIC5190提供超高速,可满足微处理内核,ASIC和其他
    发表于 03-19 10:12

    带有CF,SD,MS和xD连接超高速USB 2.0多槽闪存介质控制器

    EVB-USB2250评估板是一款超高速USB 2.0多槽闪存介质控制器,带有CF,SD,MS和xD连接。 EVB-USB2250评估板演示了独立的
    发表于 06-04 16:34

    具有超高速控制的2MHz PWM 2A降压稳压

    MIC23201的典型应用:具有超高速控制的2MHz PWM 2A降压稳压。 MIC23201是一款高效率2MHz,2A同步降压稳压,具有超高速
    发表于 08-10 09:40

    教你如何去挑选一个超高速的ADC?

    与普通的ADC相比,超高速的ADC有哪些性能?超高速ADC的主要应用领域是什么?如何去挑选一个超高速的ADC?
    发表于 06-22 06:19

    超高速电机控制方式讨论

    超高速10万转电机(1对极)控制方式讨论
    发表于 08-27 08:22

    高速微控制器系列向超高速闪存微控制器的升级

    高速微控制器系列向超高速闪存微控制器的升级 Porting Applications from the High-
    发表于 07-27 23:26 860次阅读

    高速微控制器系列向超高速闪存微控制器的升级

    高速微控制器系列向超高速闪存微控制器的升级 摘要:多种原
    发表于 08-13 13:29 646次阅读

    高速微控制器系列向超高速闪存微控制器的升级

    摘要:多种原因会促使我们把以前使用高速微控制器(DS80C310/DS80C320/DS80C323/DS8xC520)的8051设计升级到新的超高速闪存
    发表于 04-23 10:32 471次阅读

    USB 3.0超高速集线器控制器RTS5411

    USB 3.0超高速集线器控制器RTS5411
    发表于 08-02 10:13 37次下载

    超高速微控制器硬件增强串口功能

    超高速微控制器集成了片上时钟倍频器,可在降低外部晶体时钟频率的情况下提供更高的性能。乘法器可以配置为生成双倍 (2X) 或四倍 (4X) 的内部系统时钟,由 2X/4X 特殊功能寄存器
    的头像 发表于 02-21 16:08 645次阅读
    <b class='flag-5'>超高速</b><b class='flag-5'>微控制器</b>硬件增强串口功能

    使用超高速闪存微控制器实现快速内存传输

    达拉斯半导体超高速闪存微控制器具有双数据指针,具有自动递增/递减和切换选择功能。本应用笔记将采用一个数据指针的原始8051架构与DS89C430和DS89C450的新架构及其更高的数据移动效率进行了比较。本文提供了大量代码示例,
    的头像 发表于 02-21 16:43 667次阅读
    使用<b class='flag-5'>超高速</b><b class='flag-5'>闪存</b><b class='flag-5'>微控制器</b>实现快速内存传输

    DS89C430/DS89C450超高速闪存微控制器存储器接口时序

    达拉斯半导体DS89C430超高速微控制器是一款每机器周期1时钟的器件。DS89C430可直接替代旧的8051架构设计。但是,必须评估内存接口时序。本应用笔记介绍了使用DS89C430微控制器时支持的五种总线模式。
    的头像 发表于 03-01 14:31 1330次阅读
    DS89C430/DS89C450<b class='flag-5'>超高速</b><b class='flag-5'>闪存</b><b class='flag-5'>微控制器</b>存储器接口时序

    超高速微控制器硬件增强串口功能

    本应用笔记介绍了达拉斯半导体DS89C430和DS89C450超高速微控制器的全新串行端口特性。增加时钟倍频器允许用户选择原始频率四分之一的晶体,以产生相同的波特率并降低EMI。
    的头像 发表于 06-13 16:27 471次阅读
    <b class='flag-5'>超高速</b><b class='flag-5'>微控制器</b>硬件增强串口功能