Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

INA219 - wyzwalanie ADC triggered

12 Gru 2017 20:58 456 3
  • Poziom 10  
    Witam,
    męczę się z układem INA219, przerobiłem biblioteki i niby coś działa.
    Konfigurację mam z wyzwalaniem ciągłym ADC, więc odczyty pływają (w zależności od delay w wyświetlaniu wyników).
    Doczytałem, że wyzwalanie (triggered) ADC zachodzi od jakiegoś zdarzenia ale mój angielski nie pozwala mi zaleźć w datasheet jaki to event.
    Próbowałem z read_register ale chyba to nie jest to.
    Czy ktoś opanował tą sztukę ?

    Pozdrawiam
  • Pomocny post
    Poziom 29  
    Przyznam, że nie do końca jasno się wyraziłeś o co dokładnie chcesz się zapytać...
    Konwersja jest wyzwalana zapisem odpowiednich danych do bitów 2:0 rejestru konfiguracji (00h). Pokazane jest to w tabeli 6 na stronie 20 w datasheecie.
    Spowób działania jest opisany na stronie 9 w dziale 8.3.1 Basic ADC Functions: "Writing any of the triggered convert modes into the Configuration register (even if the desired mode is already programmed into the register) triggers a single-shot conversion. Table 6 lists the triggered convert mode settings."
    Czyli: Zapis danych do bitów ustawiających tryb pracy INA219 w config register (nawet jeśli żądany tryb jest już wybrany) powoduje jednorazowe rozpoczęcie procesu konwersji.
  • Poziom 10  
    marci4 napisał:
    Przyznam, że nie do końca jasno się wyraziłeś o co dokładnie chcesz się zapytać....

    Istotnie niezbyt precyzyjnie się wyraziłem ale doskonale zrozumiałeś o co mi chodzi.
    Zrobiłem dokładnie jak napisałeś, to znaczy, wpisuję wartość do CONFIG_REG i odczytuję (po opoźnieniu na konwersję - tu: powyżej 550us, konfiguracja - 12bit ADC) CURRENT_REG czy SHUNT_REG i wartości dalej pływają.
    Już nie mam pomysłu co z tym zrobić.
    A poza tym w bibliotekach mam wpis do CALIBRATION_REG = A000h co (wg. datasheeta) odpowiada rezystorowi pomiarowemu (SHUNT) 1 mohm a ja w module mam 0,1 ohm - i też jestem w "kropce" - ale to już jakoś da się przeliczyć w programie.
    edit- z Rshunt już sobie poradziłem
  • Poziom 10  
    Witam ponownie,
    próbowałem już różnych sztuczek z odczytem rejestru 16bitowego.
    Włącznie ze wstawieniem i2c_stop() (zgodnie z datasheet'em) tam gdzie zwykle nie jest to koniecznie i dalej NIC.
    Ale cuda, cuda ogłaszam .....
    Otóż po wielkim wqur... uruchomiłem zestaw z wypiętą tasiemką z programatora ISP
    i .... zadziałało.
    Niezależnie czy w trybie contiguous czy triggered.
    Wartości prądu czasami zmieniają się o 1mA ale to już 'pryszcz'.

    I nie wiem kompletnie jaki wpływ może mieć podłączony programator > przestroga dla wszystkich.
    Pozdrawiam
    temat zamknięty