




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
普中STM32开发板带您进入ARM世界 SPI FLASH实验 普中STM32开发板带您进入ARM世界 本讲主要内容1 SPI介绍2 SPI配置步骤3 EN25Qxx介绍4 硬件电路5 编写SPI FLASH控制程序 普中STM32开发板带您进入ARM世界 1 SPI介绍1 1SPI简介SPI的全称是 SerialPeripheralInterface 意为串行外围接口 是Motorola首先在其MC68HCXX系列处理器上定义的 SPI接口主要应用在EEPROM FLASH 实时时钟 AD转换器 还有数字信号处理器和数字信号解码器之间 SPI是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 普中STM32开发板带您进入ARM世界 SPI内部结构简易图SPI主要特点有 可以同时发出和接收串行数据 可以当作主机或从机工作 提供频率可编程时钟 发送结束中断标志 写冲突保护 总线竞争保护等 普中STM32开发板带您进入ARM世界 SPI总线有四种工作方式 通过时钟极性 CPOL 和时钟相位 CPHA 区分 普中STM32开发板带您进入ARM世界 STM32F1的SPI接口提供两个主要功能 支持SPI协议或I2S音频协议 STM32F1的SPI时钟最高可以到36MHz 支持DMA功能 STM32F1的SPI内部结构图 普中STM32开发板带您进入ARM世界 1 标号1 SPI接口引脚STM32F1芯片有多个SPI外设 它们的SPI通讯信号引出到不同的GPIO引脚上 使用时必须配置到这些指定的引脚 SPI1是挂接在APB2总线上 而SPI2和SPI3挂接在APB1总线上 2 标号2 时钟控制逻辑SCK线的时钟信号 由波特率发生器根据 控制寄存器CR1 中的BR 0 2 位控制 该位是对fpclk时钟的分频因子 对fpclk的分频结果就是SCK引脚的输出时钟频率 计算方法如下 普中STM32开发板带您进入ARM世界 3 标号3 数据控制逻辑 4 标号4 整体逻辑控制 普中STM32开发板带您进入ARM世界 2 SPI配置步骤具体步骤如下 SPI相关库函数在stm32f10 x spi c和stm32f10 x spi h文件中 1 使能SPI及对应GPIO端口时钟并配置引脚的复用功能RCC APB2PeriphClockCmd RCC APB2Periph GPIOB ENABLE RCC APB1PeriphClockCmd RCC APB1Periph SPI2 ENABLE GPIO InitStructure GPIO Pin GPIO Pin 13 GPIO Pin 14 GPIO Pin 15 GPIO InitStructure GPIO Mode GPIO Mode AF PP PB13 14 15复用推挽输出GPIO InitStructure GPIO Speed GPIO Speed 50MHz GPIO Init GPIOB 普中STM32开发板带您进入ARM世界 2 初始化SPI 包括数据帧长度 传输模式 MSB和LSB顺序等voidSPI Init SPI TypeDef SPIx SPI InitTypeDef SPI InitStruct typedefstruct uint16 tSPI Direction 设置SPI的单双向模式uint16 tSPI Mode 设置SPI的主 从机端模式uint16 tSPI DataSize 设置SPI的数据帧长度 可选8 16位uint16 tSPI CPOL 设置时钟极性CPOL 可选高 低电平uint16 tSPI CPHA 设置时钟相位 可选奇 偶数边沿采样uint16 tSPI NSS 设置NSS引脚由SPI硬件控制还是软件控制uint16 tSPI BaudRatePrescaler 设置时钟分频因子uint16 tSPI FirstBit 设置MSB LSB顺序uint16 tSPI CRCPolynomial 设置CRC校验的表达式 SPI InitTypeDef 普中STM32开发板带您进入ARM世界 SPI Direction 用于设置SPI的通信方向 可设置为双线全双工 SPI Direction 2Lines FullDuplex 双线只接收 SPI Direction 2Lines RxOnly 单线只接收 SPI Direction 1Line Rx 单线只发送模式 SPI Direction 1Line Tx SPI Mode 用于设置SPI工作在主机模式 SPI Mode Master 或从机模式 SPI Mode Slave 这两个模式的最大区别为SPI的SCK信号线的时序 SCK的时序是由通讯中的主机产生的 若被配置为从机模式 STM32的SPI外设将接受外来的SCK信号 SPI DataSize 用于设置SPI通信的数据帧长度 可以选择8位 SPI DataSize 8b 或者16位 SPI DataSize 16b SPI CPOL 用于设置时钟极性 可设置为高电平 SPI CPOL High 或低电平 SPI CPOL Low SPI CPHA 用于设置时钟相位 也就是选择在串行同步时钟的第几个跳变沿 上升或下降 数据被采样 可以为SPI CPHA 1Edge 在SCK的奇数边沿采集数据 或SPI CPHA 2Edge 在SCK的偶数边沿采集数据 普中STM32开发板带您进入ARM世界 SPI NSS 用于设置NSS引脚的使用模式 可以选择为硬件模式 SPI NSS Hard 与软件模式 SPI NSS Soft 在硬件模式中的NSS信号由SPI硬件自动产生 而软件模式则需要我们使用相应的GPIO端口来控制 SPI BaudRatePrescaler 用于设置波特率分频因子 分频后的时钟即为SPI的SCK信号线的时钟频率 可设置为fpclk的2 4 6 8 16 32 64 128 256分频 SPI FirstBit 用于设置数据传输顺序是MSB位在前还是LSB位在前 SPI CRCPolynomial 用于设置CRC校验多项式 提高通信可靠性 普中STM32开发板带您进入ARM世界 本章实验配置代码如下 SPI InitTypeDefSPI InitStructure SPI InitStructure SPI Direction SPI Direction 2Lines FullDuplex 设置SPI单向或者双向的数据模式 SPI设置为双线双向全双工SPI InitStructure SPI Mode SPI Mode Master 设置SPI工作模式 设置为主SPISPI InitStructure SPI DataSize SPI DataSize 8b 设置SPI的数据大小 SPI发送接收8位帧结构SPI InitStructure SPI CPOL SPI CPOL High 串行同步时钟的空闲状态为高电平SPI InitStructure SPI CPHA SPI CPHA 2Edge 串行同步时钟的第二个跳变沿 上升或下降 数据被采样SPI InitStructure SPI NSS SPI NSS Soft NSS信号由硬件 NSS管脚 还是软件 使用SSI位 管理 内部NSS信号有SSI位控制 普中STM32开发板带您进入ARM世界 SPI InitStructure SPI BaudRatePrescaler SPI BaudRatePrescaler 256 定义波特率预分频的值 波特率预分频值为256SPI InitStructure SPI FirstBit SPI FirstBit MSB 指定数据传输从MSB位还是LSB位开始 数据传输从MSB位开始SPI InitStructure SPI CRCPolynomial 7 CRC值计算的多项式SPI Init SPI1 根据SPI InitStruct中指定的参数初始化外设SPIx寄存器 普中STM32开发板带您进入ARM世界 3 使能 开启 SPIvoidSPI Cmd SPI TypeDef SPIx FunctionalStateNewState 4 SPI数据传输voidSPI I2S SendData SPI TypeDef SPIx uint16 tData uint16 tSPI I2S ReceiveData SPI TypeDef SPIx 5 查看SPI传输状态FlagStatusSPI I2S GetFlagStatus SPI TypeDef SPIx uint16 tSPI I2S FLAG 使用较多的是发送完成标志 SPI I2S FLAG TXE 和接收完成标志 SPI I2S FLAG RXNE SPI I2S GetFlagStatus SPI1 SPI I2S FLAG TXE 普中STM32开发板带您进入ARM世界 3 EN25QXX介绍EN25QXX是大容量SPIFLASH产品 EN25Q64的容量是64Mb 8M字节 EN25Q128的容量为128Mb 16M字节 该系列还有EN25Q08 16 32 64等 我们PZ6806L开发板上使用的是EN25Q64 PZ6806D开发板使用的是EN25Q128 学习这个芯片可以参考华邦公司的W25Q128芯片 因为它们是完全兼容的 所以我们以W25Q128进行介绍 W25Q128将16M的容量分为256个块 Block 每个块大小为64K字节 每个块又分为16个扇区 Sector 每个扇区4K个字节 W25Q128的最小擦除单位为一个扇区 也就是每次必须擦除4K个字节 这样我们需要给W25Q128开辟一个至少4K的缓存区 这样对SRAM要求比较高 要求芯片必须有4K以上SRAM才能很好的操作 W25Q128的擦写周期多达10W次 具有20年的数据保存期限 支持电压为2 7 3 6V W25Q128支持标准的SPI 还支持双输出 四输出的SPI 最大SPI时钟可以到80Mhz 双输出时相当于160Mhz 四输出时相当于320M 普中STM32开发板带您进入ARM世界 4 硬件电路本实验使用到硬件资源如下 1 D1指示灯 2 K UP和K DOWN按键 3 串口1 4 TFTLCD模块 5 SPI 6 外部FLASH EN25QXX 普中STM32开发板带您进入ARM世界 EN25QXX与STM32F1的连接电路
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年挖掘机租赁协议参考样本
- 个人汽车租用合同范本
- 中国高三试题及答案
- 八年级物理上册质量和密度单元测试教科版
- 初三概率知识点与练习1
- 语言系的毕业论文范文
- 2025物流运输合同样本
- 2024财务第二季度工作计划(4篇)
- 2024年学生会的工作总结范本(4篇)
- 煤矿专业毕业论文
- 高中生物开学第一课课件 高一生物(人教版)必修1
- 送配电线路工(送电)-初级工模拟题含答案(附解析)
- 供应商物流管理办法规定
- 2025新食品安全法及修订解读企业应对新规培训课件
- 儿童糖尿病酮症酸中毒诊疗指南解读 2
- JJG 264-2025谷物容重器检定规程
- 中国足协D级教练员理论培训大纲
- 实验室人员培训
- 人工流产护理查房
- 部编五年级上册语文教案全册表格版
- 2025血管内导管相关性血流感染预防与诊治指南
评论
0/150
提交评论