Hi,
I want to test SPI data flash IC to validate memory corruption issue.
I am using TMS320F2802(C2000 Piccolo LaunchPad Evaluation kit) interfaced with AT45DB321 SPI data flash IC.
System Configuration :
IDE : Code Composer Studio ( Version: 6.0.1.00040 )
Internal oscillator : 60 Mhz ( LSPCLK )
SPI Clock(max. up to) : 15 Mhz
SPI Block : A
Mode : Polling mode
At less than 5 Mhz , I am able to read/write data flash chip successfully over SPI.
Problem Statement :
- I am not able to communicate with SPI data flash on 5 and above 5 Mhz SPI clock frequency.
Please find the captured erroneous wave from :
- 1 Mhz : image 1MHz.png;(Yellow: MOSI, Blue: Clk, Pink: MISO, Green: CS) Behaves as expected
- 5 Mhz : image 5MHz.png; (Yellow: MOSI, Blue: Clk, Pink: MISO, Green: CS) Erroneous behavior
- 10 Mhz : image 10MHz.png; (Yellow: MOSI, Blue: Clk, Pink: MISO, Green: CS) Erroneous behavior
- Chip Select pin driving issue(see image Chip_select.jpg): In AT45DB321_StatusRegisterRead1 function I put the break point at the start and do step over to debug step by step. So for every step when it sends data on SPI, chip select becomes low to high automatically even though I am not handling chip select in between.(In image Yellow: CS, Blue: Clk, Green: MOSI )
Code Brief : Attached source code zip file- DFS528_MULCK.7z
- Basic initialization done like CLK,CPU,Flash ,GPIO and SPI etc.
- GPIO configuration / Initialization
- SPI Initialization
- Function called AT45DB321_StatusRegisterRead1 : In these function I am reading data flash chip status register. (Cmd 0xD7)
- After that I am writing data and reading data.
Can you please provide your valuable inputs for same?FilesToUpload.7z