如何用C6748中的MCBSP外设读取ADS1271的数据,采样频率要求50HZ*1024,接线如何,程序的大致流程图是怎样的?
我现在接线如下,始终没有读出来数据,请高手指点!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如何用C6748中的MCBSP外设读取ADS1271的数据,采样频率要求50HZ*1024,接线如何,程序的大致流程图是怎样的?
我现在接线如下,始终没有读出来数据,请高手指点!
程序如下:
void McBSPInit(void)
{
configureMcbsp();
HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_SPCR) = 0; //发送和接受复位
HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_PCR) = HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_PCR)
| MCBSP_PCR_CLKRM //CLKR is an output pin and is driven by the internal sample-rate generator.
| MCBSP_PCR_CLKRP; //Receive data sampled on rising edge of CLKR.
unsigned int FramePeriod;
unsigned char FrameWidth,SampleRate;
FramePeriod = 200;
FrameWidth = 1;
SampleRate = 200;
HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_SRGR) = HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_SRGR)
| MCBSP_SRGR_CLKSM //CLKSM=1,SCLKME=0,McBSP internal input clock.
| ( FramePeriod << MCBSP_SRGR_FPER_SHIFT ) //Range is 1 to 4096 sample-rate generator clock (CLKG) periods.
| ( FrameWidth << MCBSP_SRGR_FWID_SHIFT )
| ( SampleRate << MCBSP_SRGR_CLKGDV_SHIFT ); //Frame width value plus 1 specifies the width of the frame-sync pulse (FSG) during its active period.
unsigned char RevWordLength1;
RevWordLength1 = MCBSP_RCR_RWDLEN1_24BIT;
//RevWordLength2 = MCBSP_RCR_RWDLEN2_24BIT;
HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_RCR) = ( 0 << MCBSP_RCR_RPHASE_SHIFT ) //Single-phase frame
| ( MCBSP_RCR_RCOMPAND_MSB << MCBSP_RCR_RCOMPAND_SHIFT ) //No companding, data transfer starts with MSB first.
| ( MCBSP_RCR_RDATDLY_0BIT << MCBSP_RCR_RDATDLY_SHIFT ) //0-bit data delay
| ( 0 << MCBSP_RCR_RFRLEN1_SHIFT ) //1 word in phase 1
| ( RevWordLength1 << MCBSP_RCR_RWDLEN1_SHIFT ); //Receive word length1 is 24 bits.
Delay(100);
HWREG(SOC_MCBSP_0_CTRL_REGS + MCBSP_SPCR) =
MCBSP_SPCR_RRST //接受使能
| MCBSP_SPCR_GRST;
}
FSR都没有收到信号.