创龙DSP6748的DAC例程研究

Posted 乔海权_429512***杭州

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创龙DSP6748的DAC例程研究相关的知识,希望对你有一定的参考价值。

1. 创龙DSP6748开发板驱动TL5724这个DAC,输出指定的电压值,此程序是使用 IO 口模拟 SPI 实现与 TL5724 模块的数据交互。

2. 首先是初始化PSC函数

void PSCInit(void)
{// 使能 GPIO 模块
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
}

2. DAC的读写函数

    // 管脚复用配置
    GPIOBankPinMuxSet();
    ConfigAD5754R();
    // 输出电压配置
    cstr = DAC_Register | DAC_Channel_A | DACOut(3, 10);
    WriteToAD5754RViaSpi(&cstr);

3. GPIO的配置

    HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x80000000);
    HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
    HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);

    // 配置管脚为输出状态
    GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT);   // GPIO6[2]
    GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_OUTPUT);  // GPIO6[7]
    GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT);   // GPIO2[10]
    GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT);    // GPIO2[11]
    GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT);   // GPIO2[13]

    // LDAC
    GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); // LDAC
    GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW);  // CLK
    GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
    GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // SYNC

4. 其实读写都是模拟的GPIO而已

void WriteToAD5754RViaSpi(int *RegisterData)
{
    int ValueToWrite = *RegisterData;
    int i;
    // SPI start
    SET_SYNC();
    delay(10);
    CLR_SYNC();     // bring CS low
    delay(1);
    // Write out the ControlWord
    for(i = 0; i < 24; i++)
    {    
        SET_SCLK();
        delay(5);

        if(0x800000 == (ValueToWrite & 0x800000))
        {
            SET_SDIN();      //Send one to SDI pin
        }
        else
        {
            CLR_SDIN();      //Send zero to SDI pin
        }
        delay(5);
        CLR_SCLK();
        delay(5);
        ValueToWrite <<= 1;    //Rotate data
        delay(5);
    }
    // SPI ends
    SET_SYNC();
    delay(10);
}

5. 插上子板卡,烧写程序,测试,用万用表量下电压,对比串口输出的电压值换算一下。

 

以上是关于创龙DSP6748的DAC例程研究的主要内容,如果未能解决你的问题,请参考以下文章

如何理解dspc6748的例程

创龙DSP6748开发板LED闪烁

创龙DSP6748开发板测试-第一篇(未完)

创龙DSP6748学习之RS485收发

哪位大神有广州创龙tms320c6748开发例程源码,帮忙发下,谢谢了

创龙DSP6748开发板SYS/BIOS的LED闪烁-第2篇