[其他模拟产品-信号链]

求一段DAC8760的测试程序

[复制链接]
6221|55
手机看帖
扫描二维码
随时随地手机跟帖
liang_ke|  楼主 | 2014-4-2 23:55 | 显示全部楼层 |阅读模式
这个DA功能有点多,硬件方面官方用个电流隔离器件与MCU通讯,SPI可不可以直接接在STM32的IO口上呢?
求好心人帮帮我.

相关帖子

mmuuss586| | 2014-4-3 08:18 | 显示全部楼层

我看下资料。

使用特权

评论回复
liang_ke|  楼主 | 2014-4-3 08:30 | 显示全部楼层
mmuuss586 发表于 2014-4-3 08:18
我看下资料。

谢谢.

使用特权

评论回复
mmuuss586| | 2014-4-3 08:32 | 显示全部楼层
:D
22.jpg
11.jpg

使用特权

评论回复
mmuuss586| | 2014-4-3 08:36 | 显示全部楼层
liang_ke 发表于 2014-4-3 08:30
谢谢.

可以的。
连任何MCU都可以,看了下电平也没啥问题。
1、最好连STM32的SPI接口吧;
调试的时候,可以先用模拟SPI接口,先调出来;
调完了,把程序改成硬件的SPI接口,要发24位数据,可以用硬件的SPI接口8位模式发送,发3次就可以了。

使用特权

评论回复
mmuuss586| | 2014-4-3 08:37 | 显示全部楼层
补充,用硬件的SPI接口发的会快点,按照2M速率算的话,2uS左右吧

使用特权

评论回复
liang_ke|  楼主 | 2014-4-3 08:51 | 显示全部楼层
mmuuss586 发表于 2014-4-3 08:37
补充,用硬件的SPI接口发的会快点,按照2M速率算的话,2uS左右吧

谢谢你,从资料上看这个器件功能挻强的,还是希望能有个控制程序作为参考.

使用特权

评论回复
mmuuss586| | 2014-4-3 10:45 | 显示全部楼层
liang_ke 发表于 2014-4-3 08:51
谢谢你,从资料上看这个器件功能挻强的,还是希望能有个控制程序作为参考. ...

你程序自己先写吧,有问题了再讨论

使用特权

评论回复
liang_ke|  楼主 | 2014-4-3 10:52 | 显示全部楼层
mmuuss586 发表于 2014-4-3 10:45
你程序自己先写吧,有问题了再讨论

我先把硬件搭起来,CLR 请问是什么意思,

使用特权

评论回复
mmuuss586| | 2014-4-3 11:04 | 显示全部楼层
liang_ke 发表于 2014-4-3 10:52
我先把硬件搭起来,CLR 请问是什么意思,

输出的清0输入,高电平有效。
11.jpg

使用特权

评论回复
liang_ke|  楼主 | 2014-4-4 08:48 | 显示全部楼层
mmuuss586 发表于 2014-4-3 11:04
输出的清0输入,高电平有效。

谢谢你的答复.今天搭起了一个简单的测试电路,还请你再帮忙看一下是否可以.
1.bmp

使用特权

评论回复
mmuuss586| | 2014-4-4 10:12 | 显示全部楼层
CLR脚,最好连到STM32吧,万一有问题。
5V接的啥啊???用内部电源还是外部啊
DVDD-EN悬空,DVDD使用的内部电源

使用特权

评论回复
liang_ke|  楼主 | 2014-4-4 10:40 | 显示全部楼层
本帖最后由 liang_ke 于 2014-4-4 10:43 编辑
mmuuss586 发表于 2014-4-4 10:12
CLR脚,最好连到STM32吧,万一有问题。
5V接的啥啊???用内部电源还是外部啊
DVDD-EN悬空,DVDD使用的内 ...


CLR脚接地就是不想使用输出高阻状态,因为现在只是测试阶段.
5V参考接的是内部电源,测试板搭好后,测量此脚电压5V正常.

DVDD-EN悬空,测试软件阶段应该不受影响,经过测量DVDD端有4.5V电压

使用特权

评论回复
liang_ke|  楼主 | 2014-4-4 11:08 | 显示全部楼层
mmuuss586 发表于 2014-4-4 10:12
CLR脚,最好连到STM32吧,万一有问题。
5V接的啥啊???用内部电源还是外部啊
DVDD-EN悬空,DVDD使用的内 ...

以下是仿SPI写数据的时序,不知有没有问题

void DACx876_Write(u32 dat)
{
        u8 i;
       
        for(i=24;i>0;i--)
        {
                SCK_0;
                LOCK_0;

                if(dat & (1<<i) != 0)
                {
                        DIN_1;
                }
                else
                {
                        DIN_0;
                }

                Delay(1);

                SCK_1;

                Delay(1);
        }
       
        SCK_1;
        LOCK_1;
        DIN_1;
}

使用特权

评论回复
airwill| | 2014-4-4 12:23 | 显示全部楼层
这段代码原理没有错误.
不过初值有问题.
第一次, i=24的时候,
if (dat & (1<<i) != 0) 超出了 24位(bit0~23) 的范围

使用特权

评论回复
liang_ke|  楼主 | 2014-4-4 12:56 | 显示全部楼层
本帖最后由 liang_ke 于 2014-4-4 14:04 编辑
airwill 发表于 2014-4-4 12:23
这段代码原理没有错误.
不过初值有问题.
第一次, i=24的时候,


谢谢指出错误,我改了一下,
void DACx876_Write(u32 dat)
{
        s8 i;

        LOCK_0;

        for(i=23;i>=0;i--)//写24位数据帧,8位地址 + 16位数据
        {
                SCK_0;
               
                if((dat & (1<<i)) != 0)
                {
                        DIN_1;
                }
                else
                {
                        DIN_0;
                }

                Delay(1);

                SCK_1;//SCLK上升沿锁存DIN数据

                Delay(1);
        }
        
        SCK_1;
        LOCK_1;
        DIN_1;
}

使用特权

评论回复
liang_ke|  楼主 | 2014-4-4 16:28 | 显示全部楼层
@mmuuss586
@airwill
多谢二位的帮助,软件基本可以和芯片通讯了
由于这个芯片功能很多,希望两位热心的朋友再次帮助我.谢谢

使用特权

评论回复
mmuuss586| | 2014-4-4 18:41 | 显示全部楼层

使用特权

评论回复
wxlhonker| | 2014-5-12 15:37 | 显示全部楼层
liang_ke 发表于 2014-4-4 16:28
@mmuuss586
@airwill
多谢二位的帮助,软件基本可以和芯片通讯了

你好,请教一下这片子和CPU之间必须隔离吗?不隔离的话有没有不能和输出共地问题啊?另外精度和价格怎么样啊?询了一家零售90不敢用啊:L

使用特权

评论回复
liang_ke|  楼主 | 2014-5-13 13:31 | 显示全部楼层
wxlhonker 发表于 2014-5-12 15:37
你好,请教一下这片子和CPU之间必须隔离吗?不隔离的话有没有不能和输出共地问题啊?另外精度和价格怎么 ...

领导让我做测试,价格不清楚.从测试结果来看,可以用STM32全速读写.输出线性和精度也比较高.外围电路简单.
我测试的时候没有隔离.也是共地输出的.

使用特权

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

本版积分规则

8

主题

32

帖子

0

粉丝