TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1282读寄存器的问题

这是ADS1282数据手册上的,那个Register mode(PIN=0)需要我们进行配置吗,是在哪里配置啊

user3917511:

貌似是不需要我们进行配置

我以前写的代码,给您参考下,希望对您有帮助。。

void ADS1248_LowLevel_Init(void){  GPIO_InitTypeDef  GPIO_InitStructure;  /*!< ADS1248_SPI Periph clock enable */        /*!< ADS1248_SPI_SCL_GPIO_CLK, ADS1248_SPI_SDA_GPIO_CLK        and ADS1248_SPI_SMBUSALERT_GPIO_CLK Periph clock enable */  RCC_APB2PeriphClockCmd(ADS1248_SPI_CLK_GPIO_CLK | ADS1248_SPI_STR_GPIO_CLK | ADS1248_SPI_RDY_GPIO_CLK, ENABLE);    /*!< Configure ADS1248_SPI pins: CLK SDI */  GPIO_InitStructure.GPIO_Pin = ADS1248_SPI_CLK_PIN  | ADS1248_SPI_SDI_PIN;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  GPIO_Init(ADS1248_SPI_CLK_GPIO_PORT, &GPIO_InitStructure);  /*!< Configure ADS1248_SPI pins: SDO */  GPIO_InitStructure.GPIO_Pin = ADS1248_SPI_SDO_PIN;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  GPIO_Init(ADS1248_SPI_SDO_GPIO_PORT, &GPIO_InitStructure);  /*!< Configure ADS1248_SPI pins: START RESET */  GPIO_InitStructure.GPIO_Pin = ADS1248_SPI_STR_PIN  | ADS1248_SPI_RET_PIN;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  GPIO_Init(ADS1248_SPI_STR_GPIO_PORT, &GPIO_InitStructure);  /*!< Configure ADS1248_SPI pins: CS */  GPIO_InitStructure.GPIO_Pin = ADS1248_SPI_CS_PIN;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  GPIO_Init(ADS1248_SPI_CS_GPIO_PORT, &GPIO_InitStructure);  /*!< Configure ADS1248_SPI pins: READY*/  GPIO_InitStructure.GPIO_Pin = ADS1248_SPI_RDY_PIN;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  GPIO_Init(ADS1248_SPI_RDY_GPIO_PORT, &GPIO_InitStructure);}void ADS1248_Init(void){    ADS1248_LowLevel_Init();    ADS1248_CS_H;    ADS1248_RET_H;    ADS1248_RET_L;    delay(5000000);    ADS1248_RET_H;    delay(5000000);        ADS1248_STR_L;    delay(DELAY_T);    ADS1248_STR_H;}/********************************************************************************************************************* 函数名称: void SPI_SendByte()    Name:   void SPI_SendByte()** 功能描述: 通过SPI接口发送一个字节   Function: send a byte by SPI interface** 输   入: INT8U byte: 发送的字节    Input:   INT8U byte: the byte that will be send** 输出: 无         Output:   NULL** 说明:********************************************************************************************************************/unsigned char SPI_SendByte(unsigned char byte){    unsigned char i,j;    j=0;    ADS1248_CS_L;    SPI_CLK_L;    delay(DELAY_T);    for(i=0;i<8;i++)           //"发数据    {            SPI_CLK_H;       if(byte&0x80)SPI_SDI_H;      else SPI_SDI_L;      byte=byte<<1;      delay(DELAY_T);      j=j<<1;      if(GPIO_ReadInputDataBit(ADS1248_SPI_SDO_GPIO_PORT,ADS1248_SPI_SDO_PIN))j=(j|0x01);     //"读数据      SPI_CLK_L;//      delay(DELAY_T);    }    //ADS1248_CS_H;    return j;}/********************************************************************************************************************* 函数名称: INT8U SPI_RecByte()    Name:   INT8U SPI_RecByte()** 功能描述: 从SPI接口接收一个字节    Function: receive a byte from SPI interface** 输   入: 无         Input:   NULL** 输出: 收到的字节       Output:   the byte that be received********************************************************************************************************************/unsigned char SPI_RecByte(void){    return SPI_SendByte(0XFF);}ADS1248_Init();            //while(aabb)            //{            //             // main(){        ADS1248_Init();                           SPI_SendByte(ADS1248_WREG|0X04);                SPI_SendByte(0X01);                SPI_SendByte(0XA3);                SPI_SendByte(ADS1248_RREG|0X04);                SPI_SendByte(0X01);                data_Buf[3] = SPI_RecByte();}

pan pan1:

回复 user3917511:

你好,首先谢谢你的回答,但是ADS1282并没有CS引脚啊,好像和ADS1248不一样啊

pan pan1:

回复 user3917511:

你好:问一下你这个程序时软件模拟SPI吗?

user3917511:

回复 pan pan1:

我的这个程序就是软件模拟SPI哦。

user3917511:

回复 pan pan1:

ADS1282确实是没有CS引脚。。ADS1282EVM是建立从早期硅例子,ADS1282EVM原理图从来都没有更新以反映的实际操作部分。你会发现25管脚始终被一个下拉电阻拉低,管理的都是拉低通过下拉电阻,本质上把这这个管脚拉低才是为正确的操作。楼主不妨可以试试。。这是代替CS引脚的。。

JiaChuang Chen:

你确定这个是ADS1282datasheet上面的内容?我字ADS1282手册上怎么没有找到这段话?

pan pan1:

回复 JiaChuang Chen:

ADS1282数据手册上的P30

pan pan1:

回复 user3917511:

我的ADS1282的25管脚是DGND啊,

JiaChuang Chen:

回复 pan pan1:

我再P30也没有找到这段话。你的datasheet是TI网站上最新的datasheet吗?能不能附件发一份你用的datasheet?

ADS1282最新数据手册:http://www.ti.com.cn/cn/lit/ds/symlink/ads1282.pdf。

另外,25管脚确实是接地。请不要受到一些随意copy的回复的干扰。

pan pan1:

回复 JiaChuang Chen:

你这个是2013的,我下的是2007版的,

赞(0)
未经允许不得转载:TI中文支持网 » ADS1282读寄存器的问题
分享到: 更多 (0)