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.
您好!
我看到您提到过、如果我们希望发送多字帧、可以使用外部 GPIO 作为芯片选择引脚。 如何设置 McBSP 以忽略 FSX?
Rohit。
// McBSP 寄存器设置 pmcbsp->reg->SPCR2.all = 0x0000;//重置 fs 发生器、采样率发生器和发送 器 pmcbsp->reg->SPCR1.all = 0x0000;//复位接收器、右对齐字、数字回路中断。 //发送帧同步是由// 采样率发生器 pmcbsp->reg->pcr.bit.fsxM = 1在内部生成的; //接收帧同步是由采样率发生器 pmcbsp->reg->pcr.bit.fSRM = 1提供的; //内部 MCLKR 是由 Mcpcmbbspr 的采样率发生器驱动 的;pcmbcmbbspr = 1; //内部 CLKX 由 McBSP pmcbsp->reg->pcr.bit.CLKXM = 1的采样率发生 器驱动;// SCLKME 与 CLKSM 位一起用于选择输入//时钟。 pmcbsp->reg->pcr.bit.SCLKME= 0; pmcbsp->reg->RCR2.bit.RDATDLY = 1;// FSX 设置时间1在主控模式中。 0表示从机模式(接收) pmcbsp->reg->XCR2.bit.XDATDLY= 1;// FSX 设置时间1在主控模式中。 0对于从机模式(发送) pmcbsp->reg->SPCR1.bit.CLKSTP= 2;// SPI 模式,无延迟 pmcbsp->reg.bit.CLKXP= 0;//低非活动状态,上升沿上的 xmit pmcbbsp->pcr.bit.clk.clksp=0;pmrbrrrrrrrrbrrfr.rbrfp0 = 1 = rmrrmrrrrrbrrrrrbrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrbrrrrrrbp1;pbrmcrbrrrrrrrbrrrrrrrrrbrrrrrrrrbrbrrrrrrrrbr //设置读取字长 pmcbsp->rcr1.bit.rWDLEN1 = 2; //设置写入字长 pmcbsp->reg->xcr1.bit.XrgleN1 = 2; pmcbsp->SRGR2.bit.CLKSM = 1;//将 rmrrrrrrbst=rrrrrrg1 ;pmrrrrrrrbprgr2 = rmrrrrrrrrgrgr2 = 1;// prmrrmrrrrrrmrrrrrrrrrrrrrrrrrrrrrrrrgrgrgr2 = 1 = rmrmrmrmrmrgrgrrrmrgrgrgr1 = 1 = 1 = 1;// prmrrmrrrrrrrmrrrrrr //从重置 pmcbsp->reg->SPCR2.bit.frst 释放 RX;//帧同步发生器复位 延迟()
您好!
不确定这是属于这个帖子还是应该被移动、但我正在尝试在一个芯片选择周期内发送16位数据、但 McBSP 似乎每次将其分解为32位。 您能不能建议会出现什么问题?
Rohit。
Mark、您好!
我将示例程序与我的配置一起使用、它按预期工作。 请参阅屏幕截图。 我很困惑可能会发生什么情况。
Rohit。
McbspbRegs.SPCR2.all = 0x0000; //重置 FS 发生器,采样率 //发生器和发送器 McbspbRegs.SPCR1.all = 0x0000; //重置接收器,右对齐字, //发送帧同步由内部生成 //采样率发生器 McbspbRegs.pcr.bit.FSXM = 1; //接收帧同步由采样率发生器提供 McbspbRegs.pcr.bit.FSRM = 1; //内部 MCLKR 由 McBSP 的采样率发生器驱动 McbspbRegs.pcr.bit.CLKRM = 1; //内部 CLKX 由 McBSP 的采样率发生器驱动 McbspbRegs.pcr.bit.CLKXM = 1; // SCLKME 与 CLKSM 位结合使用以选择输入 //时钟。 McbspbRegs.pcr.bit.SCLKME = 0; //McbspbRegs.pcr.bit.FSXP = 1; McbspbRegs.RCR2.bit.RDATDLY = 1;// FSX 设置时间1在主控模式中。 0表示从机模式(接收) McbspbRegs.XCR2.bit.XDATDLY = 1;// FSX 设置时间1在主控模式中。 0表示从机模式(发送) McbspbRegs.SPCR1.bit.CLKSTP= 2;// SPI 模式、无延迟 McbspbRegs.pcr.bit.CLKXP= 0;//低非活动状态,在上升沿上发送 McbspbRegs.pcr.bit.CLKRP = 0;// rcv 下降沿 McbspbRegs.RCR1.bit.RWDLEN1 = 2; // 32位字 McbspbRegs.XCR1.bit.XWDLEN1 = 2; // 32位字 McbspbRegs.SRGR2.bit.CLKSM = 1;// CLKSM=1 McbspbRegs.SRGR1.all =(uint16)(((200/2)+ 0.5f); McbspbRegs.SPCR2.bit.GRST = 1; //启用采样率发生器 delay_loop(); //等待至少2个 SRG 时钟周期 McbspbRegs.SPCR2.bit.XRST = 1; //从复位中释放 TX McbspbRegs.SPCR1.bit.RRST = 1; //从复位中释放 RX McbspbRegs.SPCR2.bit.frst = 1; //帧同步发生器复位