Blackfin通过4个引脚与EEPROM相连,分别是:MOSI,MISO,SCK,SPISS(Master Out Slave In,Master In Slave Out,Serial Peripheral Interface Clock Signal,SPI Slave Select)。片选信号线为PF10。这里,EEPROM只能工作于从模式。所以Blackfin工作于主模式,按以下顺序操作:
1、写SPI0_FLG,设置SPI标志选择位,并保证从设备未被选中;
2、写SPI0_BAUD寄存器,设置波特率;
3、写SPI0_CTL寄存器,设置系统,使能SPI;
4、写SPI0_FLG,片选EEPROM。
对于EEPROM的操作来说,操作码如下图所示:

DSP的程序对读或是写的操作顺序为
1、初始化SPI0;(按上面的顺序初始化)
2、写使能;
3、写入读/写操作码;
4、写高位地址;
5、写低位地址;
6、读/写操作;
7、结束访问。(拉低片选信号)
程序经验证成功。
后续工作:测试一次读或写操作最可支持多少字节,编写函数加载DSP程序。
续(6.30):
通过SPI口对EEPROM一次只能读写32个字节,据此,我编写了读写EEPROM的函数,原形如下:
int BF_ReadSPI ( int offset, unsigned char * pBuf, int bytes );
int BF_WriteSPI ( int offset, unsigned char * pBuf, int bytes);
函数先根据bytes数目,定义quot和resid,其中bytes = quot*32 + resid。每一个quot和剩余的resid都执行一次完整的操作。函数经过100字节的数组试验,成功。
1809

被折叠的 条评论
为什么被折叠?



