Other Parts Discussed in Thread: C2000WARE
Dear TI Community Experts and Engineers,
I am currently developing a project based on the TI TMS320F28335 and need to use Microchip's AT45DB641E-SHN (64Mbit SPI DataFlash) as the data storage medium.
I have completed the hardware connections, but have encountered challenges in software driver development and have been unable to find detailed example code specifically for this chip combined with the TI platform. I hope to receive guidance from the community.
1. My Specific Working Environment
- MCU Model: TMS320F28335
- Development Environment: Code Composer Studio (CCS) 9.3.0
- Programming Language: C
- Hardware Connections: Flash has been connected to the MCU's SPI module according to the datasheet:
- CS → GPIO19
- SCK → GPIO18
- SI → GPIO16 (SPISIMOA)
- SO → GPIO17 (SPISOMIA)
- WP and RESET pins have been pulled up to 3.3V through 10kΩ resistors
2. Research and Attempts I Have Completed
- Read the AT45DB641E datasheet and understand its page architecture (1056 bytes/page) and basic instruction set
- Searched TI's Resource Explorer and GitHub but found no directly usable driver programs
- Attempted to write a low-level driver based on generic SPI read/write functions, but encountered issues during chip initialization and ID identification
[Supplemental Key Information]: I first attempted to send the standard Read Device ID command (0x9F), but the returned data was all 0xFF or 0x00, making it impossible to correctly identify the chip (the expected Manufacturer ID should be 0x1F).
[Supplemental Key Information]: To test basic read/write operations, I subsequently attempted a simple "buffer write-read" operation:
- Writing data to main memory buffer 1: Sent write command 0x82 0x00 0x02 0x01 (buffer address) followed by data 0x53
- Reading data from the same buffer: Sent read command 0x01 0x00 0x02 0x00
- Problem: The data read back was not the expected 0x53, but other values or all zeros
Is there any reference-worthy AT45DB641E driver program or example code for the TMS320F28335? Specifically, how to correctly initialize the SPI peripheral to match the timing requirements of this chip?