logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

INA219 - Jakie zdarzenie wyzwala ADC w trybie triggered?

zbynio_k 12 Gru 2017 20:58 669 3
REKLAMA
  • #1 16886520
    zbynio_k
    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
  • REKLAMA
  • Pomocny post
    #2 16887056
    marci4
    Poziom 31  
    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.
  • REKLAMA
  • #3 16888537
    zbynio_k
    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
  • #4 16892506
    zbynio_k
    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
REKLAMA