在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1678|回复: 0

[原创] DSP5402之硬件SP主机I配置

[复制链接]
发表于 2008-5-22 22:28:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:07 编辑

hotpower 发表于 2006-6-22 21:14 DSP 技术 ←返回版面

配置硬件SPI

void SystemObj::McBSP1Init(void)//SPI配置
{
  McBSP1->SPSA = SPCR1;
  McBSP1->SPSD = 0;
//  McBSP1->SPSD &= ~(1 << SPCR1_RRST);//禁止串口接收
  __nop();
  __nop();
  McBSP1->SPSA = SPCR2;
  McBSP1->SPSD = 0;
//  McBSP1->SPSD &= ~(1 << SPCR2_XRST);//禁止串口发送
  __nop();
  __nop();
  McBSP1->SPSA = SPCR1;
  McBSP1->SPSD = (0x03 << SPCR1_CLKSTP);//CLKSTP=11b
  __nop();
  __nop();
  McBSP1->SPSA = PCR;
//  McBSP1->SPSD = (1 << PCR_FSXM) | (1 << PCR_CLKXM)\
//               | (1 << PCR_FSXP) | (1 << PCR_CLKXP);//CLKXP=1,SS=1
  McBSP1->SPSD = (1 << PCR_FSXM) | (1 << PCR_CLKXM)\
                 | (0 << PCR_FSXP) | (1 << PCR_CLKXP);//CLKXP=1,SS=0
  __nop();
  __nop();
  McBSP1->SPSA = SRGR1;
  McBSP1->SPSD = (0x07 << SRGR1_FWID) | (0x80 << SRGR1_CLKGDV);
  __nop();
  __nop();
  McBSP1->SPSA = SRGR2;
  McBSP1->SPSD = (1 << SRGR2_CLKSM);
  __nop();
  __nop();
  McBSP1->SPSA = RCR1;
  McBSP1->SPSD = (0x00 << RCR1_RFRLEN1);//8BIT
  __nop();
  __nop();
  McBSP1->SPSA = XCR1;
  McBSP1->SPSD = (0x00 << XCR1_RFRLEN1);//BIT
  __nop();
  __nop();
  McBSP1->SPSA = RCR2;
  McBSP1->SPSD = (0x01 << RCR2_RDATDLY);
  __nop();
  __nop();
  McBSP1->SPSA = XCR2;
  McBSP1->SPSD = (0x01 << XCR2_RDATDLY);
  __nop();
  __nop();
  McBSP1->SPSA = SPCR2;
  McBSP1->SPSD |= (1 << SPCR2_GRST) | (1 << SPCR2_XRST) | (1 << SPCR2_FRST);
  __nop();
  __nop();
}   


void LedObj:edDisplay(unsigned char cData)
{
static const unsigned char LedTab[] =
{
  ~LedChar0,
  ~LedChar1,
  ~LedChar2,
  ~LedChar3,
  ~LedChar4,
  ~LedChar5,
  ~LedChar6,
  ~LedChar7,
  ~LedChar8,
  ~LedChar9,
  ~LedCharA,
  ~LedCharB,
  ~LedCharC,
  ~LedCharD,
  ~LedCharE,
  ~LedCharF
};

  cData = LedTab[cData & 0xff];
  McBSP1->DXR1 = cData & 0xff;//向595发送串行数据
  __nop();
  __nop();

  McBSP1->SPSA = SPCR2;
  while((McBSP1->SPSD & (1 << SPCR2_XRDY)) == 0) {
    __nop();
    __nop();
  }
}
//注本程序已经过硬件测试.








您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-3-14 13:52 , Processed in 0.019547 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表