DAC7724的主要特点
DAC7724是TI公司生产的12位并行输入4通道D/A转换器,该转换器具有以下特征:◇±15V以内的双电源工作;
◇输出电压:VREFL~VREFH,VREF:-10~+10V;
◇采用12位并口输入和4通道隔离输出方式;
◇可以上电自动复位;
◇转换速率快,更新率为1 MHz;
◇工作温度范围在-40~85℃的范围内。
内部结构及引脚说明
结构原理
DAC7724的内部结构如图1所示,它带有双缓冲区的逻辑电路,可以同时更新4个通道的数据,另外,它还具有回读电路,可以读取内部寄存器的内容。器件中的各输入寄存器(Input Register)均为电平触发,并可由A0、A1、












其中,VREFL为负参考电压,VREFH为正参考电压,N为微处理器输出二进制数,N的取值范围是0~4096。
引脚分布图 引脚描述图



时序图

void DAC7724_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIO_C时钟
/*初始化DAC的RW/CS/A1/A0/RESET/LDAC等6个引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11|GPIO_Pin_12| GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//输出频率100M
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;//上拉
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化
/*初始化12位数据线*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1|GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6|
GPIO_Pin_7|GPIO_Pin_8| GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_0| GPIO_Pin_1|GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6| GPIO_Pin_7|
GPIO_Pin_8| GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_11);
/*复位DAC7724*/
GPIO_SetBits(GPIOC,GPIO_Pin_12);
GPIO_ResetBits(GPIOC,GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_13);
}
A0和A1是控制4路DAC输出通道哪一路控制?

2、MCU向12位数据线写数据实现对DAC7724的数字输入(这里以通道A/B为例)
- /* speed 为数字量输入
- * num==1为通道B输出
- * num==0位通道A输出
- */
void DAC7724_Write(u16 speed,u8 num)
{
u8 i;
LDAC=1; //寄存器输出锁存
if(num==1) //判断几号通道输出
A0=1;
speed&=0x0fff;
for(i=0;i<12;i++)
DB(i)=(speed>>i)&0x0001; //数据线赋值
LDAC=0; //关闭寄存器锁存,输出DAC转换值
// GPIO_ResetBits(GPIOC,GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_13);//拉低控制信号
}
注意:
1、LDAC高电平为寄存器锁存状态,不输出DAC转换值,低电平输出DAC转化值。
2、speed范围为0-4095,num=0则为A通道输出,num=1则为B通道输出
3、假如参考电压为10V,则将10V电压等分为4095份,0-4095代表0-10v输出
详细图文见一下链接