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.

[参考译文] TMS320F28379D:同时使用 DAC A 和 DAC B

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1059417/tms320f28379d-use-dac-a-and-dac-b-at-the-same-time

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

大家好、

我实现了 TMS320f228379D LAB11、运行良好。  

但我想同时使用 DAC A 和 DAC B。
我对这项工作作了如下编辑(修改):

  ADC 数据将从 Aa3和 AA4引脚读取。
  从 Aa3和 AA4引脚读取的 ADC 数据将分别作为来自 AA0和 AA1引脚的 DAC 数据进行传输。
但我无法从 AA0引脚获取 DAC 数据。

我的 DAC 配置部分如下所示;

空 InitDac (空)

asm (" EALLOW");//启用 EALLOW 受保护寄存器访问

CpuSysRegs.PCLKCR16.bit.DAC_A=1;
DacaRegs.DACCTL.ALL = 0x0001;
DacaRegs.DACVALS.ALL = 0x0000;// DACVALS =位11-0、位15-12保留
DacaRegs.DACOUTEN .bit.DACOUTEN = 1;// DAC 输出使能、0=禁用、1=使能

DacaRegs.DACLOCK.ALL = 0x0000;//写入1来锁定(一旦置1就不能被清零)


CpuSysRegs.PCLKCR16.bit.DAC_B = 1;
DacbRegs.DACCTL.ALL = 0x0001;
DacbRegs.DACVALS.ALL = 0x0800;// DACVALS =位11-0、位15-12保留
DacbRegs.DACOUTEN .bit.DACOUTEN = 1;// DAC 输出使能、0=禁用、1=使能

DacbRegs.DACLOCK.ALL = 0x0000;//写入1以锁定(一旦置1就无法清除)

asm (" EDIS");//禁用 EALLOW 受保护寄存器访问

}// InitDac()结束

我感谢任何提示和建议。

此致...

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

    您好!

    您是否尝试运行 c2000Ware 下的任何 DAC 示例? 您可以从这些示例中检查 DAC 的基本配置。

    位置: C:\ti\c2000\C2000Ware_4_00_00_00\device_support\f2837xd\examples\CPU1

    示例: buffdac_enable、 buffdac_ramp、 buffdac_random、 buffdac_square、buffdac_sine_dma

    如果您在尝试这些示例时遇到任何问题、请告诉我。

    谢谢
    Vasudha

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

    您好!

    我检查了您提到的示例、但我遇到了以下问题。
    仅使用 DACA 或仅使用 DACB 即可将数据传输到输出、但 CCS 停止工作

    当尝试同时从两个 DAC (DACA 和 DACB)输出时。

    此外、DAC 配置代码如下所示、

    空 InitDac (空)

    asm (" EALLOW");//启用 EALLOW 受保护寄存器访问


    CpuSysRegs.PCLKCR16.bit.DAC_B = 1;//启用 DAC_B 时钟
    DacbRegs.DACCTL.bit.DACREFSEL = 1;//使用 ADC 基准
    DacbRegs.DACCTL.bit.LOADMODE = 0;//加载下一个 SYSCLK
    DacbRegs.DACVALS.ALL = 0x0000;//设置中等范围
    DacbRegs.DACOUTEN.bit.DACOUTEN = 1;//启用 DAC

    CpuSysRegs.PCLKCR16.bit.DAC_A = 1;//启用 DAC_A 时钟
    DacaRegs.DACCTL.bit.DACREFSEL = 1;//使用 ADC VREFHI 代替外部信号
    DacaRegs.DACCTL.bit.LOADMODE = 0;//在 SYSCLK 上加载非 PWMSYNC (PWM 尚未启用)
    DacaRegs.DACOUTEN.bit.DACOUTEN = 1;//启用输出
    DacaRegs.DACVALS.ALL = 0;//输出= 0

    DelayU(1000);
    asm (" EDIS");//禁用 EALLOW 受保护寄存器访问

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

    您好!

    您能更详细地解释一下这个问题吗? CCS 在尝试运行两个 DAC 时停止工作意味着什么?  

    谢谢
    Vasudha