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.

[参考译文] TLV5638:使用由 F28335的 McBSP 模块模拟的 SPI 与 TLV5638进行通信。

Guru**** 1472385 points
Other Parts Discussed in Thread: TLV5638
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/961045/tlv5638-use-spi-which-simulated-by-the-mcbsp-module-of-f28335-to-communicate-with-tlv5638

器件型号:TLV5638

尊敬的团队:

我的一位客户使用由 F28335的 McBSP 模块模拟的 SPI 与 TLV5638进行通信。

现在 TLV5638芯片可以正常输出 DA 信号、但有一个问题:OUTA 和 OUTA、只能选择一个输出、但不能同时选择两个端口。 根据芯片手册中的输出示例同时进行配置、但只能检测到 OUTA 的数据。 问题可能出在哪?

以下是代码:

void InitMcbspa16位(void)
{
McbspaRegs.RCR1.bit.RWDLEN1=2; // 16位字
McbspaRegs.XCR1.bit.XWDLEN1=2; // 16位字
}

uint16 McBSP_xmit (uint16 McbspTXD)
{
uint16 McbspRXD;
McbspaRegs.DXR1.all=McbspTXD;// McbspTXD=v->xxxx,待发送数据
//McbspaRegs.DXR2.all=McbspTXD;

while (McbspaRegs.SPCR2.bit.XRDY=0)



等待变1 //等待变1,表示发送器准备好 while (McbspaRegs.SPCR2.bit.XEMPTY=1)表示XSR为空//等待变0,表示接收器准备好
等待RBR退满

接收到的数据 while (McbspaRegs.Mspa.TXFFST!= 0)/ Mcspr1.dsps = 1 (while

)/Mcsprfr1.bspr1.bspr1.mspr1)/ mspr1 (while (mcsprfr1.bspr1.bspr1)/ mspr1)/mcsprfr1 (mspr1)/msprfr1)/msprfr1 (while (Mcsprfr1)/ mcsprrrrrrrrrr1)/ msprfr1 (mcbspr1)/msprfrfr1)/ mspr1 (msprfrfr1)/ mcbsprfr1 (

此致

InitMcbspa16位()
   McbspaRegs.RCR1.bit.RWDLEN1=2     // 16位字
   McbspaRegs.XCR1.bit.XWDLEN1=2     // 16位字
 
UINT16 McBSP_xmit (UINT16 McbspTXD)
      UINT16 McbspRXD;
   McbspaRegs.DXR1.all=McbspTXD//  McbspTXD=v->xxxx待发送数据
//     McbspaRegs.DXR2.all=McbspTXD;
   
      while (McbspaRegs.SPCR2.bit.XRDY==0)  等待变1 //μ s表示发送器准备好
      while (McbspaRegs.SPCR2.bit.XEMPTY==1)等待变0 //μ s表示XSR为空
//     while (McbspaRegs.MFFTX.bit.TXFFST!=0){}
 
      while (McbspaRegs.SPCR1.bit.RRDY =等待变1){}//μ s表示接收器准备好
//     while (McbspaRegs.SPCR1.bit.RFULL!= 1)等待RBR退满//μ s
//     while (McbspaRegs.MFFRX.bit.RXFFST!= 1){} //等待 McBSP_SPI 接收
      McbspRXD=McbspaRegs.DRR1.all//接收到的数据
      RETURN (McbspRXD);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我没有资格审查您发布的代码。 但是、要更新两个 DAC、请按照以下步骤操作。 您可以相应地编写代码。

    假设您希望使用1.024V 的内部基准电压、并希望同时更新 DAC A 和 DAC B

    1. 将基准电压设置为1.024V (控制寄存器)

    2. 将 DAC B 的数据写入缓冲器

    3. 写入新的 DAC A 值并同时更新 DAC A 和 B

    在 DAC 的 D0数据字被采样后、两个输出在上升时钟边沿上被更新。

    此致、

    AK