OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2392|回复: 5

小白问问 模数转换器 急急急!

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2019-9-20
在线时间
36 小时
发表于 2019-10-31 17:04:19 | 显示全部楼层 |阅读模式
3金钱
关于ADS1120的,这一段实在不懂,问问大佬
想问问这些是什么,为什么填这些,数据哪里来,则么配置。感谢!!
void CofigAD(unsigned char channel)
{
                 switch(channel)
     {
     case 0: Init_Config[0] = 0x81;
//                                                Init_Config[3] = 0x30;
             break;
     case 1: Init_Config[0] = 0x91;
//                                                Init_Config[3] = 0x50;
             break;
     case 2: Init_Config[0] = 0xA1;
//                                                Init_Config[3] = 0x70;
                                                 break;

                 case 3: Init_Config[0] = 0xB1;
                     
             break;
     }
     Init_Config[1] = 0X00;//Init_Config[1] = 0XC0;
     Init_Config[2] = 0X40;//0X50;//Init_Config[2] = 0X40;
     Init_Config[3] = 0X00;
     WriteRegister(0x00,0x04,Init_Config);
     ReadRegister();
}
void SetChannelPGA(u8 channel, u8 gain)
{
         
   switch(channel)
     {
     case 0:
       if(gain==1)
         channel0[0] = 0x81;

       if(gain==2)
         channel0[1] = 0x83;
       if(gain==4)
         channel0[2] = 0x85;
       if(gain==8)
         channel0[3] = 0x87;
       if(gain==16)
         channel0[4] = 0x89;
       if(gain==32)
         channel0[5] = 0x8B;
       if(gain==64)
         channel0[6] = 0x8D;
       if(gain==128)
         channel0[7] = 0x8F;
       break;
     case 1:
       if(gain==1)
         channel1[0] = 0x91;
       if(gain==2)
         channel1[1] = 0x93;
       if(gain==4)
         channel1[2] = 0x95;
       if(gain==8)
         channel1[3] = 0x97;
       if(gain==16)
         channel1[4] = 0x99;
       if(gain==32)
         channel1[5] = 0x9B;
       if(gain==64)
         channel1[6] = 0x9D;
       if(gain==128)
         channel0[7] = 0x9F;
             break;
     case 2: Init_Config[0] = 0xA1;
             break;
     case 3: Init_Config[0] = 0xB1;
             break;
     }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

227

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3096
金钱
3096
注册时间
2016-4-15
在线时间
350 小时
发表于 2019-10-31 19:03:32 | 显示全部楼层
你需要理解,使得A/D芯片正常工作,需要成功的初始化芯片。并且成功写寄存器,而判断写寄存器成功与否的方法是将写的寄存器里的内容读出来,这个操作叫读寄存器。               
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2019-9-20
在线时间
36 小时
 楼主| 发表于 2019-11-1 10:11:29 | 显示全部楼层
liujie136997963 发表于 2019-10-31 19:03
你需要理解,使得A/D芯片正常工作,需要成功的初始化芯片。并且成功写寄存器,而判断写寄存器成功与否的方 ...

上面的理解了,但是下面那个设置采样和增益的是干什么的?增益不是在上面设置过了吗
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2019-11-1 10:53:33 | 显示全部楼层
读写寄存器而已
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2019-9-20
在线时间
36 小时
 楼主| 发表于 2019-11-1 12:37:23 | 显示全部楼层

对啊上面是读取,但下面不是采样和增益吗,看主函数也没用到
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2019-9-20
在线时间
36 小时
 楼主| 发表于 2019-11-1 13:13:47 | 显示全部楼层
result = result*256+buf[1];
result = result*256+buf[2];
result = result/256;
这三个代表什么呢?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 10:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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