找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5001|回复: 2
打印 上一主题 下一主题
收起左侧

哪位大佬有ads1220的程序给我发一下,跪求

[复制链接]
跳转到指定楼层
楼主
ID:230659 发表于 2018-7-13 19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2黑币
ads1220AD采集芯片,我有51驱动程序,但是我不知道最后的数据处理怎么做,最好能给我发一下源程序

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:306259 发表于 2018-10-23 23:05 | 只看该作者
同求STM32配套的ADS1220驱动程序,邮箱1300853721@qq.com,测试成功有红包奉上
回复

使用道具 举报

板凳
ID:429205 发表于 2024-10-24 14:53 | 只看该作者
给你参考看看!!!
这是我测过 确定可以运行的程式 :
我採用1000sps的速度 读取电压与电流 温度 , 但是因为速度太快, 抓到的资料要做平均喔!!!

void MODULE_ADS1220_INIT(void)
{
    // 复位ADS1220
    uint8_t resetCommand = 0x06;
    SPI_WriteBlock_ADS1220(&resetCommand, 1);
    delay_ms(5); // 等待复位完成

    uint8_t config[2];

    // 配置寄存器0:增益、MUX等
    config[0] = 0x40; // (寄存器0)
    config[1] = 0x00; // 增益置1,MUX置AINP = AIN0, AINN = AIN1
    SPI_CS_ClrVal_ADS1220;
    SPI_WriteBlock_ADS1220(config, 2);
    SPI_CS_SetVal_ADS1220;
    delay_ms(1); // 等待配置生效

    // 配置寄存器1:1000 SPS
    config[0] = 0x44; //(寄存器1)
    config[1] = 0xc4; // 据速率置1000 SPS  1/1000=1ms x4=4ms,每個通道1ms速度
    //config[1] = 0xa4; // 据速率置600 SPS  1/600=1.6ms x4=6.4ms
    //config[1] = 0x4c; // 据速率置20 SPS   1/200=50msx4=200ms穩定但慢,如果不追求速度可以使用
    SPI_CS_ClrVal_ADS1220;
    SPI_WriteBlock_ADS1220(config, 2);
    SPI_CS_SetVal_ADS1220;
    delay_ms(1); // 等待配置生效

    // 配置寄存器2:
    config[0] = 0x48; //寄存器2)
    config[1] = 0x50;
    SPI_CS_ClrVal_ADS1220;
    SPI_WriteBlock_ADS1220(config, 2);
    SPI_CS_SetVal_ADS1220;
    delay_ms(1); // 等待配置生效

    // 配置寄存器3:
    config[0] = 0x4C; //寄存器3)
    config[1] = 0x00;
    SPI_CS_ClrVal_ADS1220;
    SPI_WriteBlock_ADS1220(config, 2);
    SPI_CS_SetVal_ADS1220;
    delay_ms(1); // 等待配置生效

    uint8_t startConversionCommand = 0x08;
    SPI_CS_ClrVal_ADS1220;
    SPI_WriteBlock_ADS1220(&startConversionCommand, 1);
    SPI_CS_SetVal_ADS1220;
    delay_ms(1);
}
///////////////////////////////////////////////////////////////////////////////
//ad1220 have 4 channel ch1 ch2 ch3 ch4
我解释一下,我在每个通道会先下设定,再用spi模块读取回来的资料
我的spi是自己用底层,参考正点原子早期的做法!!
///////////////////////////////////////////////////////////////////////////////
void MODULE_ADS1220_1_1(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch1_a, 2);
                        SPI_CS_SetVal_ADS1220;
                        delay_us(4);
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch1_b, 1);
                        delay_us(4);
                        SPI_CS_SetVal_ADS1220;
}
void MODULE_ADS1220_1_2(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_MOSI_SetVal_ADS1220;
                        SPI_ReadBlock_ADS1220(SPI_ReadData_ch1, 3);
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch1_1 = SPI_ReadData_ch1[0];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch1_2 = SPI_ReadData_ch1[1];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch1_3 = SPI_ReadData_ch1[2];
                        SPI_CS_SetVal_ADS1220;
                        ADS1220_CH1_CALlCUATION();
}
void MODULE_ADS1220_2_1(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch2_a, 2);
                        SPI_CS_SetVal_ADS1220;
                        delay_us(4);
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch2_b, 1);
                        delay_us(4);
                        SPI_CS_SetVal_ADS1220;
}
void MODULE_ADS1220_2_2(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_MOSI_SetVal_ADS1220;
                        SPI_ReadBlock_ADS1220(SPI_ReadData_ch2, 3);
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch2_1 = SPI_ReadData_ch2[0];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch2_2 = SPI_ReadData_ch2[1];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch2_3 = SPI_ReadData_ch2[2];
                        SPI_CS_SetVal_ADS1220;
                        ADS1220_CH2_CALlCUATION();
}
void MODULE_ADS1220_3_1(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch3_a, 2);
                        SPI_CS_SetVal_ADS1220;
                        delay_us(4);
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch3_b, 1);
                        delay_us(4);
                        SPI_CS_SetVal_ADS1220;
}
void MODULE_ADS1220_3_2(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_MOSI_SetVal_ADS1220;
                        SPI_ReadBlock_ADS1220(SPI_ReadData_ch3, 3);
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch3_1 = SPI_ReadData_ch3[0];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch3_2 = SPI_ReadData_ch3[1];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch3_3 = SPI_ReadData_ch3[2];
                        SPI_CS_SetVal_ADS1220;
                        ADS1220_CH3_CALlCUATION();

}
void MODULE_ADS1220_4_1(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch4_a, 2);
                        SPI_CS_SetVal_ADS1220;
                        delay_us(4);
                        SPI_CS_ClrVal_ADS1220;
                        SPI_WriteBlock_ADS1220(SPI_WriteData_ch4_b, 1);
                        delay_us(4);
                        SPI_CS_SetVal_ADS1220;

}
void MODULE_ADS1220_4_2(void)
{
                        SPI_CS_ClrVal_ADS1220;
                        SPI_MOSI_SetVal_ADS1220;
                        SPI_ReadBlock_ADS1220(SPI_ReadData_ch4, 3);
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch4_1 = SPI_ReadData_ch4[0];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch4_2 = SPI_ReadData_ch4[1];
                        bmu.MCU_ads1220_CH.ads1220_3VAL.ads1220_ch4_3 = SPI_ReadData_ch4[2];
                        SPI_CS_SetVal_ADS1220;
                        ADS1220_CH4_CALlCUATION();
}

///////////////////////////////////////////////////////////////////////////////////////
//MODULE_ADS1220_1TO4 is ch1 ch2 ch3 ch4 spi command
///////////////////////////////////////////////////////////////////////////////////////
void MODULE_ADS1220_1TO4(void)
{
if(ch1to4_setup==0x00)
{
//ch1//////////////////////////////////////////////////////////////////////////////
        SPI_WriteData_ch1_a[0]=0x40;SPI_WriteData_ch1_a[1]=0x80;SPI_WriteData_ch1_b[0]=0x08;
        if(ch1_setup1to4==0)
        {
                MODULE_ADS1220_1_1();
                ch1_setup1to4=1;
        }
        if(ch1_setup1to4==1)
        {
           if(DRDY_PIN_IS_LOW)
           {
                MODULE_ADS1220_1_2();
                ch1_setup1to4=0;
                ch1to4_setup=0x01;
          }
        }
  }

if(ch1to4_setup==0x01)
{
//ch2////////////////////////////////////////////////////////////////////////////
        SPI_WriteData_ch2_a[0]=0x40;SPI_WriteData_ch2_a[1]=0x90;SPI_WriteData_ch2_b[0]=0x08;
        if(ch2_setup1to4==0)
        {
                MODULE_ADS1220_2_1();
                ch2_setup1to4=1;
        }
        if(ch2_setup1to4==1)
        {
                if(DRDY_PIN_IS_LOW)
                {
                MODULE_ADS1220_2_2();
                ch2_setup1to4=0;
                ch1to4_setup=0x02;
                }
     }
  }

if(ch1to4_setup==0x02)
{
//ch3//////////////////////////////////////////////////////////////////////////////
        SPI_WriteData_ch3_a[0]=0x40;SPI_WriteData_ch3_a[1]=0xa0;SPI_WriteData_ch3_b[0]=0x08;
        if(ch3_setup1to4==0)
        {
                MODULE_ADS1220_3_1();
                ch3_setup1to4=1;
        }
        if(ch3_setup1to4==1)
        {
                if(DRDY_PIN_IS_LOW)
                {
                MODULE_ADS1220_3_2();
                ch3_setup1to4=0;
                ch1to4_setup=0x03;
                }
    }
}

if(ch1to4_setup==0x03)
{
//ch4//////////////////////////////////////////////////////////////////////////////
        SPI_WriteData_ch4_a[0]=0x40;SPI_WriteData_ch4_a[1]=0xb0;SPI_WriteData_ch4_b[0]=0x08;
        if(ch4_setup1to4==0)
        {
                MODULE_ADS1220_4_1();
                ch4_setup1to4=1;
        }
        if(ch4_setup1to4==1)
        {
                if(DRDY_PIN_IS_LOW)
                {
                MODULE_ADS1220_4_2();
                ch4_setup1to4=0;
                ch1to4_setup=0x00;
                }
      }
   }
}
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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