[LKS32 软件] SPI FLASH读写操作

[复制链接]
 楼主| lzmm 发表于 2025-6-23 21:51 | 显示全部楼层 |阅读模式
首先,根据逻辑分析仪与SPI FLASH 连线,在Logic软件的 “Device Setting”界面设置测量通道、采样率、测量参考电平和触发条件等选项。


然后,在“Analyzers”添加“SPI”并按照MCU读写SPI FLASH例程中的参数配置SPI选项:
1) MSB 高位数据位先行
2) 8bit数据位
3) 工作模式mode 3 (CPOL=1,CPHA=1)
4) CS片选低电平有效



配置好以上选项后,给开发板上电抓取到如下数据:


接下来我们参考MX25L1636E datasheet Read/Erase/Page program等操作时序图,将逻辑分析仪抓取的数据放大后逐一分析。同时在Logic软件“Analyzers”的data区也可以看到协议的解析内容。

1. Read FLASH JEDCE ID:



协议解析: MOSI发送RDID command“0x9F” ,MISO返回1-byte Manufacturer ID “0xC2”和2-Byte Device ID “0x25 0x15”。读取到FLASH JEDEC ID为“0xC2 0x25 0x15”
Read JEDEC ID时序图及FLASH ID 定义如下:





2. Write Enable:



协议解析:MOSI发送“0x06”command 写使能
在Erase, Program及Write Status Register等操作前均需要先Write Enable。Write Enable 时序图如下:




3. Sector Erase:



协议解析:MOSI发送Sector Erase comand“0x20”+ 24bit Address“0x0000A1”,擦除指定地址“0x0000A1”扇区
Sector Erase 时序图如下:






4. Read Status Register:




协议解析:MOSI发送Read Status Register command“0x05”,MISO返回 Status Register Value
在Sector Erase过程中,会持续读取状态寄存器的值,直到状态寄存器的bit0和bit1位变为“0”,Sector Erase操作结束。Read Status Register时序图及Status Register定义如下:





5. Page Program:



协议解析:MOSI发送Page Program command“0x02”+ 24bit address“0x0000A1”+ data,写入数据到地址“0x0000A1”
在Page Program过程中,同样会持续读取状态寄存器的值,直到状态寄存器的bit0和bit1位变为“0”,Page Program 操作结束。 Page Program 时序图如下:




6. Read Data Bytes:



协议解析:MOSI发送Read command“0x03”+ 24bit address“0x0000A1”,MISO返回“0x0000A1”地址的数据
Read Data Bytes时序如下图:



以上是对读写SPI FLASH的数据抓取及协议分析。 此外使用逻辑分析仪还可以对IIC, UART, CAN, LIN等通讯协议进行解析,对于软硬件调试非常便利。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

413

主题

9133

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部

413

主题

9133

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部