DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 386|回复: 0
打印 上一主题 下一主题

基于PIC单片机与串行闪存的SPI接口设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 18:23:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引  言PIC单片机以性能稳定、品种众多等特点在工业控制、仪器仪表、家电、通信等领域得到广泛应用。虽然很多型号自身集成了存储器,但在很多情况下难以满足系统对大容量存储的要求,需要外扩非易失性的存储器。与并行Flash存储器相比,串行Flash存储器占用MCU引脚少,体积小,易于扩展,接线简单,工作可靠,故而越来越多地应用在各类电子产品和工业测控系统中。本文主要讨论PIC16F877A单片机与串行闪存M25P16之间的SPI通信,在要求大容量数据存储且MCU引脚资源有限的情况下具有实用价值。1  SPI工作原理SPI(Serial Peripheral Interface)是一种常用的串行通信协议,用于MCU系统与外围设备的通信,可用来连接存储器、A/D转换器、D/A转换器、实时时钟、LCD驱动器、传感器,甚至其他处理器。SPI主要使用4个信号:MOSI(主机输出/从机输人)、MISO(主机输入/从机输出)、SCK(串行时钟)和CS(片选)。其中,SCK由主机产生,作为传输的同步时钟,控制所有数据传输。主机通过触发从设备的CS决定二者之间的SPI传输是否能够进行。主机和外设都包含1个串行移位寄存器。主机通过向自己的SPI串行寄存器写入1个字节来发起1次传输,然后通过MOSI信号线将数据传给外设,同时外设将自己移位寄存器中的内容通过MISO信号线返回给主机,如图1所示。这样,两个移位寄存器中的内容就交换了。也就是说,外设的写操作和读操作是同步完成的。在实际应用中,如果只进行写操作,则主机只需忽略收到的字节即可;如果主机要读外设的数据,必须发送1个字节来引发从机的传输,发送的这个字节可以是任意数据。

2  M25P16简介M25P16是16 Mb的串行闪存,具有先进的写保护机制,支持速度高达50 MHz的SPI总线的存取操作。该存储器有32个扇区,每个扇区256页,每页256字节。工作电压范围2.7~3.6 V,工作温度范围-40~+85℃。数据保存长达20年,每个扇区可擦写/编程100 000次。M25P16支持的操作指令共有12条。指令格式为:

其中,8位的命令字是必需的,地址、哑元以及数据字节的有无和长度会因指令的不同而有所差别,详情如表1所列。所有的命令码、地址、串行输入/输出的数据,均是高位在前,低位在后。

对M25P16操作时,先选中芯片(即片选信号S拉低),然后串行输入操作指令字节,紧接着串行输入地址字节(0或3字节),必要时还要加入哑读字节,最后串行输入/输出数据字节,然后把片选信号拉高,之后M25P16启动内部控制逻辑,自行完成相应的操作。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-3 14:38 , 耗时 0.085233 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表