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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 1805|回复: 0

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

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

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

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

×
本帖最后由 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();
  }
}
//注本程序已经过硬件测试.








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

本版积分规则

关闭

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

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

GMT+8, 2025-8-16 12:37 , Processed in 0.017492 second(s), 7 queries , Gzip On, Redis On.

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