• 大小: 3.15M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-21
  • 语言: C/C++
  • 标签: ADS1263  ads  AD  程序  驱动  

资源简介

ADS1263驱动程序+电路图

资源截图

代码片段和文件信息

// *  ADS1263 SPI接口寄存器操作逻辑:1、向ADS1263写入操作寄存器地址
//                               2、写入操作的寄存器数量(连续地址个数-1,当需要读取5个寄存器时,应该写入 4)
//                               3、连续读取或写入数据
// *  ADC数据的读取采用命令读取方式,ADS1263内部两个ADC的读取流程请详阅DATASHEET Page121的Figure 160.两个ADC数据的读取顺序取决于配置的转换速度
//    首先读取转换速度快的ADC。
// *  在任何情况下,AIN的输入需要在0-5V之间。
// *  ADS1263可通过TDACP与TDACN寄存器在AIN6于AIN7上输出测试电压,例如:初始化代码的TDACP寄存器写入0x80时,在AIN6引脚上输出2.5V
// *  ADS1263具有两个可编程电流源(误差最大值为4%),在初始化代码中,IDACMUX寄存器写入0xB9、IDACMAG寄存器写入0x06时,则将内部IDAC1输出至AIN9
//    电流为1000uA。
// *  运行本程序 采集在AIN0 AIN1之间的电压信号,测试悬空信号源时许将AIN0或AIN1其中一个与REFOUT 链接,确保提供一个稳定的共模电平
//    程序配置增益为1,测量范围为+-2.5V,变量Voltage 为转换结果,单位为伏特
//    程序配置为20sps更新率。

#include“stm32f10x_conf.h“

#define ADS1263_RESET_H GPIO_SetBits(GPIODGPIO_Pin_6)
#define ADS1263_RESET_L GPIO_ResetBits(GPIODGPIO_Pin_6)
#define ADS1263_START_H GPIO_SetBits(GPIODGPIO_Pin_5)
#define ADS1263_START_L GPIO_ResetBits(GPIODGPIO_Pin_5)
#define ADS1263_CS_H GPIO_SetBits(GPIODGPIO_Pin_4)
#define ADS1263_CS_L GPIO_ResetBits(GPIODGPIO_Pin_4)
#define ADS1263_SCLK_H GPIO_SetBits(GPIODGPIO_Pin_3)
#define ADS1263_SCLK_L GPIO_ResetBits(GPIODGPIO_Pin_3)
#define ADS1263_DIN_H GPIO_SetBits(GPIODGPIO_Pin_2)
#define ADS1263_DIN_L GPIO_ResetBits(GPIODGPIO_Pin_2)
#define ADS1263_DOUT GPIO_ReadInputDataBit(GPIODGPIO_Pin_0)
#define ADS1263_DRDY GPIO_ReadInputDataBit(GPIODGPIO_Pin_1)

void RCC_Configuration(void);
void NVIC_Configuration(void);
void GPIO_Configuration(void);
void Delay(uint32_t nCount);
void ADS1263_WRITE(uint8_t data);
void ADS1263_reset(void);
uint32_t ADS1263_READ(void);//读取数据函数,返回32Bit 整形
uint8_t ADS1263_READ_REG(void);//读取寄存器函数,返回1 Byte
void ADS1263_INIT(void);

uint8_t ADS1263_ID;
uint8_t REG[27];
uint8_t STATUS;
uint32_t ADC1_DATAADC2_DATA;
int32_t ADC1_DATA_temp;
double VoltageVoltage_temp;
int main(void)
{
  RCC_Configuration();
  GPIO_Configuration();
  NVIC_Configuration();
  Delay(0xffff);
  
  ADS1263_INIT();//ADS1263初始化
  
  /*
  //此处为读取ADS1263全部寄存器,存于REG[]数组中
  ADS1263_RESET_H;
  ADS1263_CS_L;
  ADS1263_WRITE(0x20);//00100000
  ADS1263_WRITE(0x1a);
  for(uint8_t a=0;a<27;a++)
  {
    REG[a]=ADS1263_READ_REG();
  }
  ADS1263_CS_H;
  */
  
  
  ADS1263_CS_L;
  //ADS1263_WRITE(0x08);//START1 command,当START引脚为低电平时,可由此命令启动ADC1的转换。
  ADS1263_WRITE(0x0c);//START2 command
  while(1)
  {
    while(ADS1263_DRDY);
    ADS1263_WRITE(0x12);//读取ADC1
    STATUS=ADS1263_READ_REG();
    ADC1_DATA=ADS1263_READ();
    
    /*
    ADS1263_WRITE(0x14);//读取ADC2
    STATUS=ADS1263_READ_REG();
    ADC2_DATA=ADS1263_READ();
    */
    ADC1_DATA=ADC1_DATA^0x80000000;
    ADC1_DATA_temp=ADC1_DATA-0x80000000;
    Voltage_temp=ADC1_DATA_temp*2.5;
    Voltage=Voltage_temp/0x80000000;//Voltage为转换得到的电压值
  }
}




void Delay(uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}


void ADS1263_INIT(void)
{
  ADS1263_RESET_H;
  Delay(0x1fffff);//等待至少65535个ADC时钟
  ADS1263_START_L;//停止ADC转换,避

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    2812035  2019-03-03 22:45  ADS1263资料\ads1263.pdf

     文件       7452  2019-07-10 22:49  ADS1263资料\ADS1263参考程序\main.c

     文件    1646017  2019-08-23 22:16  ADS1263资料\ADS1263模块说明书.pdf

     目录          0  2019-08-23 22:08  ADS1263资料\ADS1263参考程序

     目录          0  2019-08-23 22:16  ADS1263资料

----------- ---------  ---------- -----  ----

              4465504                    5


评论

共有 条评论