打印
[牛人杂谈]

DAC的使用方法

[复制链接]
1782|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heisexingqisi|  楼主 | 2017-4-23 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们以NANO100BN的DAC来说明DAC的用法和特点
 NANO100支持 2个 12-bit DAC 通道
 支持组模式 (2组 DAC 同步更新)
 2 个 DAC 通道同步更新
 Channel 0 决定触发模式
 如果数据更新没有使用 PDMA, 在下一个转换开始之前,软件必须更新好两个
DACx_DAT 寄存器
 有 3种触发方式
 软件
 定时器
 PDMA
 上电稳定时间: 6 us
 DACPWONSTBCNT (14 bit 可编程,单位 PCLK)
 DAC 上电之后,等待 DACPWONSTBCNT+1个 PCLK开始转换
 转换完成时间: 2 us (500k sample/sec)
 WAITDACCONV (8 bit 可调,单位 PCLK),用于 PDMA触发 DAC 时,保证 DAC 转
换完成

沙发
heisexingqisi|  楼主 | 2017-4-23 21:36 | 只看该作者
下面的代码使用软件触发的方式,组模式,不用选择时钟源,时钟源默认为PCLK
void DAC_Init()
{
/* 使能 DAC 时钟 */
CLK->APBCLK |= CLK_APBCLK_DAC_EN_Msk;
/* 配置多功能引脚 PC.6 和 PC.7 用作 DAC */
SYS->PC_L_MFP &= ~(SYS_PC_L_MFP_PC6_MFP_Msk | SYS_PC_L_MFP_PC7_MFP_Msk);
SYS->PC_L_MFP |= SYS_PC_L_MFP_PC6_MFP_DA_OUT0 | SYS_PC_L_MFP_PC7_MFP_DA_OUT1;
/* 关闭PC.6 and PC.7引脚的数字通路 */
GPIO_DISABLE_DIGITAL_PATH(PC, (1 << 6) | (1 << 7));
/* 软件触发 */
DAC_Open(DAC, 0, DAC_WRITE_DAT_TRIGGER);

DAC_Open(DAC, 1, DAC_WRITE_DAT_TRIGGER);
/* 使能 DAC 组模式 */
DAC_ENABLE_GROUP_MODE(DAC);
//  使能 DAC0 中断. 组模式中使能一个通道就可以了 .
DAC_ENABLE_INT(DAC, 0);
NVIC_EnableIRQ(DAC_IRQn);
//  等待两个通道ready
while(DAC_IS_BUSY(DAC, 0) == 1);
while(DAC_IS_BUSY(DAC, 1) == 1);
/* 写第一笔数据到DATA寄存器 */
DAC_WRITE_DATA(DAC, 0, a16Sine[index0]);
DAC_WRITE_DATA(DAC, 1, a16Sine[index1]); //  写通道1将触发 DAC 开始转换
}
/*中断处理函数*/
void DAC_IRQHandler(void)
{
// 清除中断标志
DAC_CLR_INT_FLAG(DAC, 0);
/*写下一笔数据*/
DAC_WRITE_DATA(DAC, 0, a16Sine[index0]);
DAC_WRITE_DATA(DAC, 1, a16Sine[index1]); // 写通道1将触发 DAC 开始转换
index0 = (index0 + 1) % SINE_ARRAY_SIZE;
index1 = (index1 + 1) % SINE_ARRAY_SIZE;
return;
}


使用特权

评论回复
板凳
643757107| | 2017-4-24 10:09 | 只看该作者
NANO100支持 2个 12-bit DAC 通道,双通道啊,可以做立体声。

使用特权

评论回复
地板
huangcunxiake| | 2017-4-24 15:51 | 只看该作者
DAC初始化的方法,很不错,很明白。

使用特权

评论回复
5
xixi2017| | 2017-4-24 21:17 | 只看该作者
一次转换需要2us,速度可以了。

使用特权

评论回复
6
wahahaheihei| | 2017-4-24 22:26 | 只看该作者
一秒500k次的采样速率,没谁了

使用特权

评论回复
7
xixi2017| | 2017-4-25 21:29 | 只看该作者
DAC用的不多,都是用ADC,不过万一用到了呢,还是再看看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

2603

帖子

2

粉丝