OpenEdv-开源电子网

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

STM32F100片外ADS1248,对寄存器操作不成功,求解…

[复制链接]

1

主题

1

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-3-7
在线时间
0 小时
发表于 2013-3-8 16:33:11 | 显示全部楼层 |阅读模式

代码如下

GPIO定义:
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_11;        //    SCLK、DIN、START
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_Init(GPIOB, &GPIO_InitStructure);

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                                                //    DOUT
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
 GPIO_Init(GPIOB, &GPIO_InitStructure);

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                                //    DRDY
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
 GPIO_Init(GPIOB, &GPIO_InitStructure);

对寄存器操作如下:
void ADS1248WREG(unsigned char regaddr,unsigned char databyte)
{
 ADS1248SPI(0x40+(regaddr&0x0F));
 ADS1248SPI(0X00);
 ADS1248SPI(databyte);
}

unsigned char ADS1248RREG(unsigned char regaddr)
{
 unsigned char r=0X00;
 ADS1248SPI(0x20+(regaddr&0x0F));
 ADS1248SPI(0X00);
 r=ADS1248SPI(0XFF);
 return r;
}

unsigned char ADS1248SPI(unsigned char m)
{
 unsigned char i,r=0;
 for(i=0;i<8;i++) {
  ADS1248_SCLK(1);
  __NOP();__NOP();__NOP();__NOP();__NOP();
  r<<=1;
  if (m & 0x80) ADS1248_SADI(1);
  else  ADS1248_SADI(0);
  __NOP();__NOP();__NOP();__NOP();__NOP();
  ADS1248_SCLK(0);
  __NOP();__NOP();__NOP();__NOP();__NOP();
  if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)>0) r++;
  __NOP();__NOP();__NOP();__NOP();__NOP();
  m<<=1;
 }
 return r;
}

执行AD寄存器写MUX0:
 ADS1248WREG(0X00,0x01);  // MUX0=00 000 001 = 0x01  AIN1
 iads=ADS1248RREG(0X00);

CLK接GND,VREFOUT和VREFCOM接4.7uF,其它电路参照手册。
问题是,往寄存器写数据后,读出来的iads数为0X00,理论应该是0X01;用表和示波器均测得CLK、DIN有数据时电平变化,DOUT无电平变化,是否和代码有关,求解!

Q群:77203167

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-8 19:29:21 | 显示全部楼层
研究下ADS1284的数据手册,检查时序,看看是不是哪里出问题了。 
先通信成功再说。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2011-10-20
在线时间
87 小时
发表于 2013-6-20 14:37:16 | 显示全部楼层
http://dl.21ic.com/download/ads1248-rar-ic-118209.html

这里有个,我下不下来,没积分。要下下来,能不能发我一份,fanguang2003@163.com
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2013-6-1
在线时间
3 小时
发表于 2013-7-28 22:19:44 | 显示全部楼层
回复【楼主位】ROO:
---------------------------------
楼主调出来没有啊?我现在也遇到这个问题了,调一周了都!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 04:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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