Ацп ads1220

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем jr.Bush, 7 июл 2020.

  1. jr.Bush

    jr.Bush Нерд

    Добрый день уважаемые форумчане, не люблю просить о помощи но приходится, помогите разобраться с АЦП ADS1220 в интернете практически нет примеров скетчей его использования, проблема заключается в том, что по умолчанию он измеряет напряжение в диапазоне от -2.5 до +2.5в. а мне нужно измерять однополярное напряжение в диапазоне от 0 до 5в. судя по разделу 8.5 в документации данный ацп имеет такую возможность, но я не могу разобраться с параметрированием.https://pdf1.alldatasheet.com/datasheet-pdf/view/816026/TI1/ADS1220IPW.html
     
  2. parovoZZ

    parovoZZ Гуру

    Переключаешься на внешний референс. VrefN сажаешь на ноль, VrefP на необходимое напряжение (только не на шину питания!)
     
    Igor68 нравится это.
  3. jr.Bush

    jr.Bush Нерд

    А как переключить на внешний референс если в даташите нет информации по командам и синтаксису
     

    Вложения:

    • image.jpg
      image.jpg
      Размер файла:
      1,4 МБ
      Просмотров:
      282
  4. parovoZZ

    parovoZZ Гуру

    Вот прямая ссылка на даташит
    https://www.ti.com/lit/ds/symlink/ads1220.pdf
    Все регистры (а их там всего четыре) описаны в главе 8.6
    Как программировать описано в главе 8.5
     
    Daniil нравится это.
  5. jr.Bush

    jr.Bush Нерд

    Получается, что мы переключаем схему в режим дифференциального измерения и смотрим разницу между нулем и сигналом?
     
  6. parovoZZ

    parovoZZ Гуру

    А там есть не_дифференциальный режим? Смотрел по диагонали, возможно, что не увидел.
     
  7. jr.Bush

    jr.Bush Нерд

    Что то я не понимаю дифференциальное измерение это разница между двумя независимыми каналами, которое мне не нужно, и вообще используется в ОЧЕНЬ редких случаях, но есть во всех АЦП. А именно в этом АЦП еще биполярное питание по умолчанию прикрутили, которое также используется реже чем однополярное,
    Чем же я так согрешил, что нельзя просто подключить и снимать сигнал.
     
  8. jr.Bush

    jr.Bush Нерд

    Код (C++):

    #include "Protocentral_ADS1220.h"
    #include <SPI.h>

    #define PGA 1                 // Programmable Gain = 1
    #define VREF 2.048            // Internal reference of 2.048V
    #define VFSR VREF/PGA
    #define FSR (((long int)1<<23)-1)

    #define ADS1220_CS_PIN    10
    #define ADS1220_DRDY_PIN  9

    Protocentral_ADS1220 pc_ads1220;
    int32_t adc_data;

    void setup()
    {
        Serial.begin(9600);

        pc_ads1220.begin(ADS1220_CS_PIN,ADS1220_DRDY_PIN);

        pc_ads1220.set_data_rate(DR_330SPS);
        pc_ads1220.set_pga_gain(PGA_GAIN_32);
        pc_ads1220.select_mux_channels(MUX_AIN0_AIN3);  //Configure for differential measurement between AIN0 and AIN3

        pc_ads1220.Start_Conv();  //Start continuous conversion mode
    }

    void loop()
    {
        adc_data=pc_ads1220.Read_WaitForData();

        float Vout = (float)((adc_data*VFSR*1000)/FSR);     //In  mV

        delay(300);

        Serial.print("Vout in mV : ");
        Serial.print(Vout);
        Serial.print("  32bit HEX : ");
        Serial.println(adc_data,HEX);
    }
     
  9. jr.Bush

    jr.Bush Нерд

    настроил на измерение сигнала между ain0 и ain3 подключил сигнальный на ain0 и общий на ain3 серийный порт выходит на предел 2048, оно и не удивительно ведь сигнал у меня 2.5 вольта.
     
  10. parovoZZ

    parovoZZ Гуру

    Не надо свои Arduino знания проецировать на всё остальное. Как раз таки дифф-АЦП используется чаще и двухполярное питание тоже. А вот Arduino в промышленности не используется никак. А это основной рынок производителей электроники.
     
    Daniil нравится это.
  11. parovoZZ

    parovoZZ Гуру

  12. Daniil

    Daniil Гуру

    Надо сидеть и читать дашик (см. 9.1.3 и 8.5.2), за вас это никто не сделает.
    Ничего отличного от советов паровоза не найдёте.

    как не нужно? Напряжение - это разница потенциалов, по определению. АЦП этим и занимается измерением разницы потенциалов.
    Один из диф входов можно посадить на землю? Можно считать, что его потенциалом будет 0? Тогда разница меж диф входов будет напряжение поданное на его второй вход.
    слишком много эмоций. Хотя, можете разработать ацп для своего узкого круга задач и продавать по 5шт/год. Выгодно?
    схема? Какие опорники? Какое питание? Как настроено ацп? Как вам помочь? Без запятых ничего не понятно. 2048? Ацп должно выдавать 24 бита, его пределы это от 8.388608E6 до 8.388607E6 (по кругу). Я не берусь даже рассчитывать, что означает "предел 2048, оно и не удивительно ведь сигнал у меня 2.5 вольта".
    Лучше переходите на hex формат чисел, так будет несколько понятнее.
     
  13. jr.Bush

    jr.Bush Нерд

    не могу даже представить что эти примеры выводят и с какого входа, но спасибо
    до этого ацп пользовался ads1115 все прекрасно понятно, как настраивать, куда подключать, вопросов не возникало, вот только разрядности не хватило,
    все, что есть по этому модулю это один даташит, нет примеров использования в проектах, такое ощущения что я один из 5 купивших этот модуль.
    есть простая задача заставить ads1220 отцифровывать аналоговый сигнал от 0 до 5в.
    могу ли я перевести эту тему в раздел "куплю проект", и сколько это может стоить, раз у меня не хватает знаний воплотить задуманное придется платить.
     
  14. parovoZZ

    parovoZZ Гуру

    @jr.Bush
    из каких краёв?
     
  15. jr.Bush

    jr.Bush Нерд

    Московская область Химки.
     
  16. parovoZZ

    parovoZZ Гуру

    есть такое понятие, как эффективная разрядность. Как правило, она составляет 80% от максимальной. Т.е. если АЦП 10 бит, то нет никакого практического смысла их все снимать: последний бит - это шум квантования, предпоследний - это уход нуля, нелинейность АЦП и пр. Для 24 бит эффективное количество бит будет равняться 19-20. Но даже их надо уметь приготовить. Необходимо девственно чистое питание АЦП, абсолютно стабильный и не шумный опорник. Тщательное разведение аналоговых и цифровых земель. Иначе эти 19-20 бит легко превратятся в 12-14.
     
  17. parovoZZ

    parovoZZ Гуру

    Далековато, а модуля у меня такого нет.
     
  18. jr.Bush

    jr.Bush Нерд

    этого достаточно.
    сигнал берется с SCA100T-D02 в дальнейшем SCA103T-D04 имеет достаточно высокую чистоту и частоту.