ADS1255驱动心得

ADS1255是一款高精度、低噪声的24位模拟-数字转换器(ADC),通常用于工业自动化、医疗仪器和传感器测量等领域。它具有多通道输入、低功耗和内置的PGA(可编程增益放大器)等特点,适用于需要高精度信号采集的应用。

当涉及到ADS1256时,一些重要的特性包括:

1. **高分辨率**:ADS1256具有24位的分辨率,可提供极高的精度,适用于需要准确测量小信号的应用。

2. **低噪声**:它采用了一系列降低噪声的技术,包括内部可编程增益放大器和数字滤波器,以确保输出数据的精确性和稳定性。

3. **多通道输入**:ADS1256可以同时采集多个通道的信号,这使得它非常适用于需要同时监测多个传感器或信号源的系统。

4. **SPI接口**:它通过SPI(Serial Peripheral Interface)与微控制器或其他数字设备通信,这种接口简单而灵活,易于集成到各种系统中。

5. **低功耗**:ADS1256设计为低功耗,这使得它适用于需要长时间运行或依赖于电池供电的应用。

6. **内部参考电压**:它内置了基准电压源,可以提供稳定的参考电压,以确保采集到的数据精确无误。

这些特性使得ADS1256成为许多需要高精度信号采集的应用的理想选择。

在阅读Datasheet后,首先配置SPI,SPI可用软件高低电平模拟,或者有硬件入口时直接用cubemx配置,根据数据手册配置增益和传输速率:

typedef enum
{
	ADS1255_GAIN_1			= (0),	
	ADS1255_GAIN_2			= (1),	
	ADS1255_GAIN_4			= (2),
	ADS1255_GAIN_8			= (3),	
	ADS1255_GAIN_16			= (4),	
	ADS1255_GAIN_32			= (5),	
	ADS1255_GAIN_64			= (6),
	
  ADS1255_GAIN_MAX		= (7),	/* 7 ch */
}ADS1255_GAIN_E;

typedef enum
{
	ADS1255_30000SPS = 0,
	ADS1255_15000SPS,
	ADS1255_7500SPS,
	ADS1255_3750SPS,
	ADS1255_2000SPS,
	ADS1255_1000SPS,
	ADS1255_500SPS,
	ADS1255_100SPS,
	ADS1255_60SPS,
	ADS1255_50SPS,
	ADS1255_30SPS,
	ADS1255_25SPS,
	ADS1255_15SPS,
	ADS1255_10SPS,
	ADS1255_5SPS,
	ADS1255_2d5SPS,

	ADS1255_DRATE_MAX
}ADS1255_DRATE_E;

配置寄存器地址以及命令指令

enum
{
	
	REG_STATUS = 0,	// x1H
	REG_MUX    = 1, // 01H
	REG_ADCON  = 2, // 20H
	REG_DRATE  = 3, // F0H
	REG_IO     = 4, // E0H
	REG_OFC0   = 5, // xxH
	REG_OFC1   = 6, // xxH
	REG_OFC2   = 7, // xxH
	REG_FSC0   = 8, // xxH
	REG_FSC1   = 9, // xxH
	REG_FSC2   = 10, // xxH
};


enum
{
	CMD_WAKEUP  = 0x00,	// Completes SYNC and Exits Standby Mode 0000  0000 (00h)
	CMD_RDATA   = 0x01, // Read Data 0000  0001 (01h)
	CMD_RDATAC  = 0x03, // Read Data Continuously 0000   0011 (03h)
	CMD_SDATAC  = 0x0F, // Stop Read Data Continuously 0000   1111 (0Fh)
	CMD_RREG    = 0x10, // Read from REG rrr 0001 rrrr (1xh)
	CMD_WREG    = 0x50, // Write to REG rrr 0101 rrrr (5xh)
	CMD_SELFCAL = 0xF0, // Offset and Gain Self-Calibration 1111    0000 (F0h)
	CMD_SELFOCAL= 0xF1, // Offset Self-Calibration 1111    0001 (F1h)
	CMD_SELFGCAL= 0xF2, // Gain Self-Calibration 1111    0010 (F2h)
	CMD_SYSOCAL = 0xF3, // System Offset Calibration 1111   0011 (F3h)
	CMD_SYSGCAL = 0xF4, // System Gain Calibration 1111    0100 (F4h)
	CMD_SYNC    = 0xFC, // Synchronize the A/D Conversion 1111   1100 (FCh)
	CMD_STANDBY = 0xFD, // Begin Standby Mode 1111   1101 (FDh)
	CMD_RESET   = 0xFE, // Reset to Power-Up Values 1111   1110 (FEh)
};
static const uint8_t s_tabDataRate[ADS1255_DRATE_MAX] =
{
	0xF0,		
	0xE0,
	0xD0,
	0xC0,
	0xB0,
	0xA1,
	0x92,
	0x82,
	0x72,
	0x63,
	0x53,
	0x43,
	0x33,
	0x20,
	0x13,
	0x03
};


static const float s_PGA_Rate[ADS1255_GAIN_MAX] =
{
	1.0,	  
	2.0,
	4.0,
	8.0,
	16.0,
	32.0,
	64.0,
};

编写BSP_ADS1255_ReadDanAdc()函数获取返回的数据,再进行处理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值