首先,根据逻辑分析仪与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等通讯协议进行解析,对于软硬件调试非常便利。
|