找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5035|回復(fù): 2
收起左側(cè)

哪位大佬有ads1220的程序給我發(fā)一下,跪求

[復(fù)制鏈接]
ID:230659 發(fā)表于 2018-7-13 19:28 | 顯示全部樓層 |閱讀模式
2黑幣
ads1220AD采集芯片,我有51驅(qū)動(dòng)程序,但是我不知道最后的數(shù)據(jù)處理怎么做,最好能給我發(fā)一下源程序

回復(fù)

使用道具 舉報(bào)

ID:306259 發(fā)表于 2018-10-23 23:05 | 顯示全部樓層
同求STM32配套的ADS1220驅(qū)動(dòng)程序,郵箱1300853721@qq.com,測(cè)試成功有紅包奉上
回復(fù)

使用道具 舉報(bào)

ID:429205 發(fā)表于 2024-10-24 14:53 | 顯示全部樓層
給你參考看看!!!
這是我測(cè)過(guò) 確定可以運(yùn)行的程式 :
我採(cǎi)用1000sps的速度 讀取電壓與電流 溫度 , 但是因?yàn)樗俣忍? 抓到的資料要做平均喔!!!

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

    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; // 據(jù)速率置1000 SPS  1/1000=1ms x4=4ms,每個(gè)通道1ms速度
    //config[1] = 0xa4; // 據(jù)速率置600 SPS  1/600=1.6ms x4=6.4ms
    //config[1] = 0x4c; // 據(jù)速率置20 SPS   1/200=50msx4=200ms穩(wěn)定但慢,如果不追求速度可以使用
    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
我解釋一下,我在每個(gè)通道會(huì)先下設(shè)定,再用spi模塊讀取回來(lái)的資料
我的spi是自己用底層,參考正點(diǎn)原子早期的做法!!
///////////////////////////////////////////////////////////////////////////////
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;
                }
      }
   }
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表