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

Jak zasilić konwerter 3.3-5V dla I2C z urządzenia mającego tylko 12V?

robiw 04 Sie 2016 17:38 2847 37
Najlepsze odpowiedzi

Jak zasilić konwerter poziomów I2C 3,3–5 V, gdy urządzenie ma tylko 12 V, i czy zamiast stabilizatora wystarczy dzielnik napięcia?

Nie musisz wytwarzać 5 V z 12 V, jeśli po stronie magistrali są już rezystory podciągające — w układzie open-drain to one ustalają poziom „1”, więc strona wysokonapięciowa BSS138 nie potrzebuje osobnego napięcia referencyjnego [#15848937][#15849032] Jeśli jednak podciągania nie ma i naprawdę potrzebujesz 5 V, nie używaj dzielnika jako zasilania, tylko stabilizator/LDO z 12 V [#15851178] W opisywanym radiu Opla wygląda na to, że podciąganie jest w oryginalnym wyświetlaczu, a radio samo nie podciąga linii, więc po stronie ATmegi z 3,3 V może wystarczyć własne podciąganie do 3,3 V, o ile radio uzna to za stan wysoki [#15850045][#15850674] Trzeba jednak sprawdzić, czy radio poprawnie rozpoznaje poziom ACK przy 3,3 V, bo z obserwacji wynika, że „High” może wymagać ponad 4 V [#15850045][#15851018]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
  • #1 15848896
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Witam,
    Mam urządzenie I2C, które dysponuje sygnałami w logice 5V i chcę je podłączyć do procesora AVR zasilanego 3.3V. Jak wiadomo, najprościej zastosować dobrze znany konwerter na tranzystorach BSS138. Konwerter ten potrzebuje jednak referencji 5V dla "jednej ze stron". Niestety urządzenie moje nie udostępnia na zewnątrz "sygnału" 5V tylko 12V, w związku z czym pytanie czy z tych 12V trzeba dać jakiś stabilizator by "utworzyć" referencję 5V dla konwertera, czy też wystarczy zwykły dzielnik napięcia, który z 12V da 5V? Z góry dzięki za odpowiedź...robiw
  • #2 15848937
    Konto nie istnieje
    Poziom 1  
  • #3 15848964
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Ale podciągające po każdej ze stron muszą przecież być? Poza tym, przypuszczam, że po stronie urządzenia, czyli po stronie 5V, te rezystory i tak są, a nie mogę modyfikować tego układu... robiw

    Dodano po 20 [minuty]:

    Hmm, to mnie się wydaje, że jest odwrotnie patrząc na schemat konwertera BSS138. Jeśli w urządzeniu I2C 5V są rezystory podciągające do 5V to ja nie potrzebuję ich stosować u siebie, więc nie potrzebuję referencji 5V...jeśli ich nie ma to właśnie potrzebuję? robiw
  • #4 15849032
    Konto nie istnieje
    Poziom 1  
  • #6 15849058
    Konto nie istnieje
    Poziom 1  
  • #7 15849064
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Sprawdzę...r

    Dodano po 9 [minuty]:

    Swoją drogą, przez zapominalstwo, podłączyłem go (logika 5V) do ATmegi zasilanej 3.3V (linie podciągane do 3.3V)... nie mogłem nawiązać transmisji... ciekawe, czy porty wejściowe ATmegi nie ucierpiały....robiw
  • #8 15849171
    Konto nie istnieje
    Poziom 1  
  • #9 15849233
    Konto nie istnieje
    Konto nie istnieje  
  • #10 15850009
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Hej,
    DS'a nie ma, bo to zwyczajnie radio Opla (napisałem wcześniej z pośpiechu, że to wyświetlacz). Do tego radia, które ma interfejs zbliżony do I2C, chcę podłączyć zwykł wyświetlacz alfanumeryczny. Radio najprawdopodobniej nie ma na liniach SDA, SCL i MRQ (dodatkowy sygnał) rezystorów podciągających, gdyż miernik pokazuje napięcie w granicach 0.2, zaś oscyloskop "śmieci", jednak widać w tych "śmieciach" sygnał zegarowy SCL - mowa o pomiarach na samym radioodbiorniku z odłączonym, oryginalnym wyświetlaczem. Gdy wyświetlacz podłączony, przebiegi "nabierają" kształtów z logiką na poziomie 5V. Wniosek z tego, że rezystory podciągające są w wyświetlaczu. Pytanie w takim razie, czy ATmega podłączona do tego radia musi mieć konwerter, czy też zwykłe podciąganie do 3.3V (po stronie procka) wystarczy, hmm? Nie mogłem nawiązać komunikacji przy bezpośrednim połączeniu (nie mogłem "złapać" sekwencji START, wszystko zrobione na ISR'ach i ext ints) i rezystorach 3.3V, ale być może winna była funkcja ISR lub też fakt, że na jedno wejść ATmegi "szedł" sygnał 5V (informujący o załączeniu radia)... robiw

    Dodano po 9 [minuty]:

    ...choć z drugiej strony, skoro radio nie ma rezystorów podciągających a tylko i wyłącznie zapisuje dane do wyświetlacza (poza, sygnałem ACK, który musi przeczytać) to takie podłączenie bez konwertera ATmegi zasilanej 3.3V z rezystorami po stronie ATmegi podciągającymi do 3.3V powinno w zupełności wystarczyć...robiw
  • #11 15850045
    Konto nie istnieje
    Poziom 1  
  • #12 15850110
    Konto nie istnieje
    Konto nie istnieje  
  • #13 15850488
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    niveasoft napisał:
    Tak sobie obserwuję od miesięcy Twoje zmagania...


    Oj bardzo słabo obserwujesz ;-). Przez ostatnich kilka lat "popełniłem" kilka układów, które współpracują z TID-em (wyświetlaczem Opla) i nie miałem z tym jakiś większych problemów:
    Sterownik klimatyzacji Opel TID (2007), TID-termostat (2008) i TIDex (2013)...także ostatnie miesiące nie mają kompletnie znaczenia. Tym razem, jednak, chcę TID'a zastąpić zwykłym LCD alfanumerycznym, czyli jest to działanie w drugą stronę...stąd pytanie o interface...

    atom1477 napisał:
    No jeżeli radio tylko wysyła to powinno wystarczyć podciągnięcie do 3.3V.
    Oczywiście pod warunkiem że 3.3V będzie przez radio odczytywane jako stan wysoki, bo inaczej mogą być problemy z odczytem bitów ACK.


    Hmm, bity ACK to przecież ściągnięcie SDA do ZERA, więc wartość napięcia, do którego podciągana jest linia SDA nie powinna mieć w zasadzie znaczenia. Co zaś się tyczy samego protokołu to już bardzo dawno temu Dario Carluccio dokładnie go opisał:

    http://wiki.carluccio.de/index.php/Opel_TID

    Co prawda pisze tutaj, że:

    Spannung für High: >4V
    Spannung für Low: <1V

    ...co znaczyłoby, że te 3.3V nie wystarczy i potrzebne jest podciąganie do 5V...no, ale to są jego obserwacje...które nie dają 100% pewności, bo zdarzyło mi się, że moje układy pewnych typów TID'a nie chciały obsłużyć - tych bardzo starych, pewnie to kwestia timingów.

    Moje zrzuty transmisji pomiędzy radiem a TID'em wyglądają następująco (Salae), co potwierdza poniekąd ustalenia Dario:

    Sekwencja Power On Test - po włączeniu radia (sygnał AA staje się równy 12V) - służąca sprawdzeniu magistrali:

    Jak zasilić konwerter 3.3-5V dla I2C z urządzenia mającego tylko 12V?

    Początek transmisji (TID potwierdza swoją obecność poprzez ściągnięcie SDA po trzecim ściągnięciu MRQ do ZERA):

    Jak zasilić konwerter 3.3-5V dla I2C z urządzenia mającego tylko 12V?

    I obrazek, który potwierdza fakt, iż Slave (wyświetlacz TID) potwierdza każdy bajt (adres, czy bajt danych) niezależnie od tego, czy jest adresowany do niego (czy zgadza się adres):

    Jak zasilić konwerter 3.3-5V dla I2C z urządzenia mającego tylko 12V?

    Także protokół znam, choćopracowanie Carluccio, mimo, że bardzo cenne nie jest 100% pewne... jednak zapytanie w tym wątku dotyczyło zupełnie czegoś innego... konwertera i potrzeby podciągania... Generalnie "odpalę" mojego Slave'a (LCD zastępujący TID'a) w logice 5V a potem zobaczę, co trzeba zrobić, by działał na 3.3V. Tak naprawdę, zupełnie na szybko, jużuruchomiłem emulator TID'a na LCD...jednak działał on poprawnie (dekodował ramkę) dopóki był wpięty w transmisję (czyli do radia podłączony był TID a mój układ "obserwował" tylko dane). Po odłączeniu TIDa...przestawał poprawnie dekodować transmisję...ale soft pisałem na szybko, z ciekawości czy zadziała...

    robiw
  • #14 15850504
    Konto nie istnieje
    Konto nie istnieje  
  • #15 15850514
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Nie ma problemu, ja nie biorę do siebie takich rzeczy ;-). Po prostu tym razem zastanawiam się nad konwerterem, choć pewnie powinienem to sprawdzić w praktyce i nie byłoby tematu hehe. Niemniej jednak, przez skórę, czuję, że z tym interface to nie będzie tak różowo, jak opisał to Carluccio....bo TID'y mają rożnych producentów i choćby TIDex działał dotychczas każdemu...aż tu ktoś mi pisze, że u niego nie działa...podmieniamy TID'a na innego, nowszy model (na szczęście jest tani) i działa...a oryginalne radio...działa z każdym, niezależnie od tego czy stary, czy nowy i czy 8-znakowy czy 10-znakowy...no, ale Opel wie najlepiej, jak to zostało zrobione...

    Także póki co, emulator działał (soft zrobiony na ISR'ach dla każdego z sygnałów: SDA, SCL, MRQ i AA)...ale do czasu dopóki tylko nasłuchiwał transmisji pomiędzy radiem a TID'em...no i dopóki był na 5V... Swoją drogą te emulatory programowe na PC-tanie mają otwartego kodu? robiw
  • #16 15850550
    Konto nie istnieje
    Poziom 1  
  • #18 15850589
    Konto nie istnieje
    Poziom 1  
  • #19 15850619
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Robię emulator oryginalnego wyświetlacza TID. Radio wysyła dane do tego wyświetlacza, tylko i wyłącznie, wyświetlacz tylko wystawia ACK (nie wysyła żadnych danych). Oryginalny wyświetlacz (TID) pracuje w logice 5V, więc jak jest podłączony do radia to wszystkie sygnały są w logice 5V, bo jak sprawdziłem sygnały niepodłączonego radia (SCL, SDA, MRQ) nie sądo niczego podciągnięte. Ja chcę do radia podłączyć wyświetlacz alfanumeryczny na 3.3V...robiw
  • #20 15850648
    Konto nie istnieje
    Konto nie istnieje  
  • #22 15850674
    Konto nie istnieje
    Poziom 1  
  • #23 15850712
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    atom1477 napisał:
    Czyli problem nie istnieje chyba że czegoś dalej nie rozumiem.


    Chyba niezbyt jasno tłumaczę. Mamy radio Opla, które nadaje w specyfikacji podobnej do I2C (wcześniej załączyłem stosowne linki i przebiegi): sygnały AA, MRQ, SDA, SCL. Typowo, radio to współpracuje z wbudowanym, dedykowanym wyświetlaczem ()TID, który to linie SDA, SCL, MRQ podciąga do 5V. Wyrzucam ten wyświetlacz i chcę podłączyć do tego radia ATmegę zasilaną z 3.3V, która to obsługuje własny, wbudowany wyświetlacz LCD (też zasilany 3.3V), na którym chcę wyświetlać dane z radia otrzymane przy udziale tej magistrali. Do obsługi linii AA, MRQ, SCL i SDA wykorzystuję w ATmedze przerwania zewnętrzne... Radio wyłącznie wysyła dane do wyświetlacza, nic nie odczytuje z niego, poza sygnałem ACK...robiw
  • #24 15850736
    Konto nie istnieje
    Konto nie istnieje  
  • #26 15850762
    Konto nie istnieje
    Konto nie istnieje  
  • #28 15850874
    Konto nie istnieje
    Poziom 1  
  • #30 15850944
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na zasilenie konwertera I2C z 12V do 5V, aby połączyć urządzenie I2C z logiką 5V z procesorem AVR zasilanym 3.3V. W dyskusji poruszono kwestie dotyczące podciągania linii SDA i SCL oraz konieczności użycia stabilizatora lub dzielnika napięcia. Ustalono, że jeśli w urządzeniu I2C są rezystory podciągające do 5V, to nie ma potrzeby ich stosowania po stronie procesora. Użytkownik planuje podłączyć wyświetlacz alfanumeryczny do radia Opla, które wysyła dane, a nie odbiera. Wskazano, że ATmega może działać na 3.3V, o ile radio akceptuje ten poziom jako stan wysoki. Dyskutowano również o możliwościach użycia diod oraz LDO do konwersji napięcia.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA