创龙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. 插上子板卡,烧写程序,测试,用万用表量下电压,对比串口输出的电压值换算一下。

 

posted @ 2018-03-03 15:09  429512065  阅读(1309)  评论(0编辑  收藏  举报