- UID
- 79854
- 性别
- 男
|
Blackfin有2个独立的串行外设接口(SPI),分别是SPI0和SPI1。在HAWK-35评估板中,Blackfin通过SPI0与EEPROM相连,在Blackfin上电的时候,初始化DSP芯片。今天,开始测试通过Blackfin对EEPROM进行读写,这样以后就可以把自己的初始化程序写到EEPROM中,使Blackfin按自己的要求进行初始化。
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字节的数组试验,成功 |
|