硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7716|回复: 4
收起左侧

【安富莱】DAC8501 16位DAC模块 双路输出 SPI接口 供电3.3-5.0V

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2014-2-12 20:53:35 | 显示全部楼层 |阅读模式
产品名称:DAC8501 16位DAC模块
型号:DAC8501E

产品规格:
供电电压 : 2.7 - 5.5V  【3.3V供电时,输出电压也可以到5V】
通道数: 2路  (通过2片DAC8501E实现)
输出电压范围 : 0 - 5V    【零位 < 0.020V, 满位 > 4.970V】
分辨率: 16位
功耗 :  小于10mA MCU接口 :高速 SPI (30M) 支持 3.3V和5V单片机
DAC输出模拟带宽:350KHz
DAC输出响应: 10uS 到 0.003% FSR

产品特点:
1、输出和供电电压无关;模块内带升压电路和5V基准。
2、自适应单片机的电平(2.7 - 5V 均可以)
3、输出电压轨到轨,最高电压可以到 4.970V 以上。

DAC8501E芯片数据手册下载地址:http://www.ti.com.cn/product/cn/dac8501?247SEM
淘宝购买的地址:点击进入

1.jpg
2.jpg

编程非常简单,SPI是单向的,只需要: CS  MOSI  SCK 三根IO
C函数如下,请客户自己移植到不同的单片机系统。


/*
*********************************************************************************************************
*   函 数 名: DAC8501_SendData
*   功能说明: 向SPI总线发送24个bit数据。
*   形    参: _ch, 通道,
*            _data : 数据
*   返 回 值: 无
*********************************************************************************************************
*/
void DAC8501_SendData(uint8_t _ch, uint16_t _dac)
{
    uint8_t i;
    uint32_t data;

    /*
        DAC8501.pdf page 12 有24bit定义

        DB24:18 = xxxxx 保留
        DB17: PD1
        DB16: PD0

        DB15:0  16位数据

        其中 PD1 PD0 决定4种工作模式
              0   0  ---> 正常工作模式
              0   1  ---> 输出接1K欧到GND
              1   0  ---> 输出100K欧到GND
              1   1  ---> 输出高阻
    */

    data = _dac;/* PD1 PD0 = 00 正常模式 */

    if (_ch == 0)
    {
        CS1_0();
    }
    else
    {
        CS2_0();
    }

    /* DAC8501 SCLK时钟高达30M,因此可以不延迟 */
    for(i = 0; i < 24; i++)
    {
        if (data & 0x800000)
        {
            MOSI_1();
        }
        else
        {
            MOSI_0();
        }
        SCLK_1();
        data <<= 1;
        SCLK_0();
    }
   
    if (_ch == 0)
    {
        CS1_1();
    }
    else
    {
        CS2_1();
    }
}
回复

使用道具 举报

23

主题

1404

回帖

1473

积分

至尊会员

积分
1473
发表于 2014-2-13 10:41:28 | 显示全部楼层
不错,顶一下
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2017-4-4 19:13:41 | 显示全部楼层
[s:150]
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2023-1-12 20:35:28 | 显示全部楼层
大佬,我想请教一下,DAC我用SPI的例程运行,正弦波不是从原点开始输出的,波形有办法从原点开始输出吗?我尝试过输出前重启TIM6,但是效果并不理想
IMG_0198.HEIC.JPG
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-1-13 14:42:30 | 显示全部楼层
启源丶 发表于 2023-1-12 20:35
大佬,我想请教一下,DAC我用SPI的例程运行,正弦波不是从原点开始输出的,波形有办法从原点开始输出吗?我 ...

从原点输出怎么理解,空闲的时候输出个电平值?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 16:06 , Processed in 0.184078 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表