七颗咖啡豆 发表于 2014-11-24 16:08

DSP5402_MCBSP_ADC0809分享了

/*-----------------------------------------
硬件接线
CS0<-CLKX0   
WR0<-CLKR0
RD0<-FSX0
INTR0->FSR0
----------------------------------------*/
#ifndef _MCBSP_ADC0809_h_
#define _MCBSP_ADC0809_h_
#include "mcbsp54.h"
voidDelay_MS(unsigned int   ms)//5ms
{
   unsigned int i,j;
   for(i=0;i<ms;i++)
      {
       for(j=0;j<80;j++) {; }
      }
}
//
int ADC_V()//0XBFFF地址线直接硬件配置
{

int intr1 = 1;
int DATA = 0, *P;
MCBSP_RX_RESET(0);
MCBSP_TX_RESET(0);//McBSP working in restoration
MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b00);// cs=0 wr=0 rd=0
Delay_MS(4);
intr1 = 1 ;
MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b00); //cs=0 wr=0 rd=0
Delay_MS(4);
MCBSP_SUBREG_BITWRITE(0,PCR_SUBADDR,CLKRP,CLKRP_SZ,1);
//MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b01);//cs=0 wr=1rd=0
Delay_MS(4);
while(1==intr1)//Waiting for conversion to complete
{
MCBSP_SUBREG_BITREAD(0,PCR_SUBADDR,FSRP,1);
intr1=FSRP;
}
Delay_MS(4);
MCBSP_SUBREG_BITWRITE(0,PCR_SUBADDR,CLKXP,CLKXP_SZ,1);
//MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b03); //cs=1 wr=1 rd=0
Delay_MS(4);
MCBSP_SUBREG_BITWRITE(0,PCR_SUBADDR,CLKXP,CLKXP_SZ,0);
//MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b01); //cs=0 wr=1 rd=0
P=(int*)0xbFFF;
   DATA = *P ;
   DATA = DATA & 0X00FF ;
   Delay_MS(30);
   MCBSP_SUBREG_BITWRITE(0,PCR_SUBADDR,FSXP,FSXP_SZ,1);
//MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b09); //cs=0 wr=1 rd=1
Delay_MS(4);
MCBSP_SUBREG_BITWRITE(0,PCR_SUBADDR,CLKXP,CLKXP_SZ,1);
//MCBSP_SUBREG_WRITE(0,PCR_SUBADDR,0x3b0b); //cs=1 wr=1 rd=1
Delay_MS(4);
return DATA;
}
int ADC_I()//7FFF,地址线直接硬件配置
{

int intr1 = 1;
int DATA = 0, *P;
MCBSP_RX_RESET(1);
MCBSP_TX_RESET(1);//McBSP working in restoration
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b00);//stop ADC cs=0 wr=0 rd=0
Delay_MS(4);
intr1 = 1 ;
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b00); //cs=0 wr=0 rd=0
Delay_MS(4);
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b01);//cs=0 wr=1rd=0
Delay_MS(4);
while(1==intr1)//Waiting for conversion to complete
{
MCBSP_SUBREG_BITREAD(1,PCR_SUBADDR,FSRP,1);
intr1=FSRP;
}
Delay_MS(4);
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b03); //cs=1 wr=1 rd=0
Delay_MS(4);
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b01); //cs=0 wr=1 rd=0
P=(int*)0x7FFF;
      DATA = *P ;
   DATA = DATA & 0X00FF ;
   Delay_MS(30);
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b09); //cs=0 wr=1 rd=1
Delay_MS(4);
MCBSP_SUBREG_WRITE(1,PCR_SUBADDR,0x3b0b); //cs=1 wr=1 rd=1
Delay_MS(4);
return DATA;
}

七颗咖啡豆 发表于 2014-11-24 16:11

弱弱的并行程序,把mcbsp当GPIO用的。 硬件调试通过了的
串行还在研究。

zhangmangui 发表于 2014-11-24 22:04

在5509上将McBSP当做IO口用过    只是有些只能输出或只能输入
页: [1]
查看完整版本: DSP5402_MCBSP_ADC0809分享了