资源简介
TI公司的DSP28335采用SPI方式读取FM25CL64,根据其数据表,利用地址自增原理,简化了读写时间。
代码片段和文件信息
// TI File $Revision: /main/2 $
// Checkin $Date: April 29 2005 11:08:24 $
//###########################################################################
//
// FILE: DSP281x_Spi.c
//
// title: DSP281x SPI Initialization & Support Functions.
//
//###########################################################################
// $TI Release: DSP281x Header Files V1.11 $
// $Release Date: September 26 2007 $
//###########################################################################
#include “DSP281x_Device.h“ // DSP281x Headerfile Include File
#include “DSP281x_Examples.h“ // DSP281x Examples Include File
#include “dspCtrl.h“
//---------------------------------------------------------------------------
// InitSPI:
//---------------------------------------------------------------------------
// This function initializes the SPI(s) to a known state.
//
void InitSpi(void)
{
// Initialize SPI-A:
EALLOW;
SpiaRegs.SPICCR.all=0x0007; //16-bit character No Loopback mode
//SpiaRegs.SPICTL.all=0x0017; //Interrupt enabled Master/Slave XMIT enabled
SpiaRegs.SPICTL.all=0x0006; //Interrupt disabled
//SpiaRegs.SPISTS.all=0x0000;
SpiaRegs.SPIBRR = 3; // Baud rate 30Mhz /(3 + 1) = 7.5MHz
SpiaRegs.SPIPRI.all = 0x30; // free run
Init_Spi_GPIO();
SpiaRegs.SPICCR.all=0x0087;//使SPI退出复位状态
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;
SpiaRegs.SPICTL.bit.CLK_PHASE = 1;
EDIS;
//tbd...
}
void Init_Spi_GPIO(void)
{
EALLOW;
GpioMuxRegs.GPFMUX.all |= 0x0f;
GpioMuxRegs.GPFMUX.bit.SPISTEA_GPIOF3 = As_GPIO;
GpioMuxRegs.GPFDIR.bit.GPIOF3 = OUT_DIR;
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
EDIS;
}
Uint16 EEPROM_Read(Uint16 address)
{
Uint16 data;
GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
SpiWrite(READ);
SpiWrite(address & 0xff00);
SpiWrite(address<<8);
data = SpiWrite(0x00);
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
return data;
}
void EEPROM_Write_Enable(void)
{
GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
SpiWrite(WREN);
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
}
void EEPROM_Write(Uint16 addressUint16 data)
{
Uint16 i;
EEPROM_Write_Enable();
GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
SpiWrite(WRITE);
SpiWrite(address & 0xff00);
SpiWrite(address<<8);
SpiWrite(data << 8);
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
}
Uint16 EEPROM_Read_Status()
{
Uint16 i1data;
GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
SpiWrite(RDSR);
data = SpiWrite(0x00);
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
//判断SPI发送准备好
return data;
}
Uint16 SpiWrite(Uint16 data)
{
Uint16 ret;
SpiaRegs.SPITXBUF = data;
while(Spi_RxReady() == 0);
ret = SpiaRegs.SPIRXBUF;
return ret;
}
Uint16 Spi_TxReady(void)
{
Uint16 in;
if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG == 1)
{
in = 0;
}
else
{
in = 1;
}
return(in);
}
Uint16 Spi_RxReady(void)
{
Uint16 im;
if(SpiaRegs.SPISTS.bit.INT_FLAG == 1)
{
im
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3241 2008-07-23 20:32 08643012812_fm25cl64\DSP281x_Spi.c
文件 6565 2008-07-23 20:12 08643012812_fm25cl64\DSP281x_Spi.h
文件 142 2008-07-23 20:27 08643012812_fm25cl64\main.c
目录 0 2013-03-25 10:25 08643012812_fm25cl64
----------- --------- ---------- ----- ----
10166 5
- 上一篇:webBrowser 禁用消息框alert 并且获得内容
- 下一篇:电子琴(汇编)
相关资源
- DSP28335 75KW变频器全部控制程序
- DSP28335的I2C例程
- DSP28335电机控制程序
- dsp28335pcb封装
- DSP28335的PID程序
- DSP28335中的SCI串口应用
- dsp28335AD7606程序
- 基于DSP28335和485的SCI通信
- DSP28335 中pwm 定时器中断设置
- 实现对占空比的随时可调代码
- CCS6.2版本Dsp28335工程(包含基本模块的
- DSP28335 SCI中用FIFO完成485收发通信
- DSP28335 三相SVPWM程序
- DSP28335控制DHT11温湿度传感器
- 三电平SVPWM.rar
- F28335最小系统原理图.PDF
- TI-DSP28335-CAN中文使用手册
- DSP28335扩展SRAM和AD板PCB加原理图
- DSP28335完整invter电机控制程序
- 基于DSP28335的PWM程序
- spwm-dsp28335
- DSP28335SVPWM.pdf
- 基于DSP28335生成spwm源程序 三相120度移
- AD采样及读取程序
- DSP28335 AD7606源码.rar
- DSP28335开发板最小系统
- 基于DSP28335的四路PWM移相代码
- 基于DSP28335的4路PWM移相程序
- DSP28335生成SPWM波形源代码
- DSP28335学习经验分享
评论
共有 条评论