硬汉嵌入式论坛

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

[有问必答] STM32F103调试AD7685死活读不出数据

[复制链接]

7

主题

14

回帖

35

积分

新手上路

积分
35
发表于 2018-7-22 13:35:01 | 显示全部楼层 |阅读模式
本帖最后由 sanvlee 于 2018-7-22 13:39 编辑

想采用AD7685做一个16位的数据采集。采用IO模拟SPI,对着芯片数据手册上的3线无忙信号线的模式,死活读不出数据来。下面贴上程序和时序,大家帮忙看看有啥问题!
1.png
以下是程序:

void AD7685_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTA

        //PA4-CNV   PA5-CLK   PA7 SDI(弄busy模式输出高电平即可)
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7);  //PA4/PA5/PA7上拉

}
static void AD7685_ACQ_time(void)
{
        CNV_LOW;
        Delay_us(1);
        CNV_HIGH;
        Delay_us(1);
        CNV_LOW;
        Delay_us(1);
        CNV_HIGH;
}

static void AD7685_CNV_Time(void)
{
        Delay_us(5);
}

static u16 AD7685_ReadData_Time(u16 tData)
{
        u8 i;
        u16 ADData;

        for(i=0; i<16; i++)
        {
                SCK_HIGH;
                CNV_LOW;
                ADData=ADData<<1;     // 每次左移一位,右边补零
                if(SDO)         //每次下降沿到来,读出的是1,则运行下面的语句
                        ADData=ADData|0x01;
                SCK_LOW;
        }
        return ADData;
}

u16 AD7685_oneAcq(u16 tData)
{
        u16 Data = 0;
        AD7685_ACQ_time();
        AD7685_CNV_Time();
        Data = AD7685_ReadData_Time(DUMMY) ;
        Delay_us(1);
        CNV_HIGH;
        return Data;
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-23 00:57:22 | 显示全部楼层
可以参考下我们AD7606的SPI方式,跟这个差不多。
回复

使用道具 举报

7

主题

14

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2018-7-23 22:58:56 | 显示全部楼层
eric2013 发表于 2018-7-23 00:57
可以参考下我们AD7606的SPI方式,跟这个差不多。

好的,谢谢汉哥!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 14:19 , Processed in 0.163682 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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