群里各位大大好,小弟做的一个项目中需要用到Flash 芯片:M25P32,所有的驱动已写好,就是存在一个问题,由于数据量特别大,因此回放数据的时候时间特别长,长到无法忍受了。查看芯片手册,发现这款芯片有两种回放数据方式,一是普通回放,二是快速回放。按照时序图,编写程序,发现快速回放和普通回放一样,时间还是很久,不知道哪里出现问题了,下面附上两种回放数据的时序图,和源代码,希望前辈们能指点一下。普通读源代码:
void readsome24(long addr24,uint data_count,uchar *flash_256)
{
uint i;
SET_CS1;
SET_clock;
CLR_CS1;
write_instruction(0x03); //read data bytes
write_addr24(addr24);
for( i=0;i<data_count;i++)
{
*flash_256=readbyte();
flash_256++;
}
SET_CS1;
}
快速回放数据代码:
void readsome24_fast(long addr24,uint data_count,uchar *flash_256)
{
uint i;
SET_clock;
CLR_CS1;
write_instruction_fast(0x0B);
write_addr24_fast(addr24);
write_instruction_fast(0xff);
for( i=0;i<data_count;i++)
{
*flash_256=readbyte_fast();
flash_256++;
}
SET_CS1;
}
|