• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: 其他
  • 标签: SPI  ADC  

资源简介

ADS1118 是一款高精度的低功耗16 位模数转换器(ADC)。该器件采用超小型无引线X2QFN-10 封装或超薄小外形尺寸VSSOP-10 封装,具备测量最常见传感器信号所需的全部功能。ADS1118 集成了可编程增益放大器(PGA)、电压基准、振荡器和高精度温度传感器。凭借这些功能以及2V 至5.5V 的宽电源电压范围,ADS1118 非常适用于功率及空间受限型传感器测量应用。

资源截图

代码片段和文件信息

#include “ads1118.h“

//mode 1:read mode 0:write
uint32_t ads1118_write_read(uint16_t data uint8_t mode)
{
uint8_t  i = 0;
uint32_t write_data = 0 read_data = 0;

if(mode == 1)data |= 0x8000;
write_data = (data<<16)|data;  //32bit = 16bit * 2

ADS1118_CS_L;

for(i = 0; i < 32; i++)
{
ADS1118_SCLK_L;
if(write_data&0x80000000)ADS1118_MOSI_H;
else ADS1118_MOSI_L;

ADS1118_SCLK_H;
write_data <<= 1;

read_data <<= 1;
ADS1118_SCLK_L;
if(ADS1118_MISO_READ)read_data |= 0x01;
}
ADS1118_CS_H;

return read_data;
}

//collect_mode:selct channel ref:selct FSR
int ads1118_read_adc_data(uint8_t collect_mode uint8_t ref)
{
    int data = 0;
    uint16_t Config_Value = 0x008b;                     //默认低8位,DOUT带上拉电阻

    switch(collect_mode)
    {
    case 0:  Config_Value += 0x0000;break;    //AINP = AIN0 and AINN = AIN1 (default)
    case 1:  Config_Value += 0x1000;break;    //AINP = AIN0 and AINN = AIN3
    case 2:  Config_Value += 0x2000;break;    //AINP = AIN1 and AINN = AIN3
    case 3:  Config_Value += 0x3000;break;    //AINP = AIN2 and AINN = AIN3
    case 4:  Config_Value += 0x4000;break;    //AINP = AIN0 and AINN = GND
    case 5:  Config_Value += 0x5000;break;    //AINP = AIN1 and AINN = GND
    case 6:  Config_Value += 0x6000;break;    //AINP = AIN2 and AINN = GND
    case 7:  Config_Value += 0x7000;break;    //AINP = AIN3 and AINN = GND
    default : break;
    }
    switch(ref)
    {
    case 0:  Config_Value += 0x0000;break;    //000 : FS = ±6.144V(1)
    case 1:  Config_Value += 0x0200;break;    //001 : FS = ±4.096V(1)
    case 2:  Config_Value += 0x0400;break;    //002 : FS = ±2.048V(1)
    case 3:  Config_Value += 0x0600;break;    //003 : FS = ±1.024V(1)
    case 4:  Config_Value += 0x0800;break;    //004 : FS = ±0.512V(1)
    case 5: case 6: case 7: Config_Value += 0x0a00;break;    //005 : FS = ±0.256V(1)
    default : break;
    }

data = ads1118_write_read(Config_Value 1);

return data;
}

//ads1118 init 
void ads1118_init(void)
{
//config adc: [7:5]100 = 128SPS AINP = AIN0 and AINN = GND FS = ±6.144V(1)
ads1118_write_read(0x408B 0);
}

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

     文件       2220  2018-05-22 14:26  ads1118\ads1118.c

     文件        345  2018-05-22 14:40  ads1118\ads1118.h

     目录          0  2018-05-22 14:27  ads1118

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

                 2565                    3


评论

共有 条评论