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

[Attiny13] Jak stabilnie wykryć 3.3V jako logiczne 1 przy zasilaniu 5V?

mikmas 30 Mar 2018 14:42 1392 13
  • #1 17137956
    mikmas
    Poziom 18  
    Zrobiłem układ stworzony z 2 "modułów". Pierwszy z attiny13 zasilany jest 5v, drugi - 3.3v. Problem powstał, gdy oba muszą się skomunikować. Ten z 3.3v ma w odpowiednim momencie poinformować o zdarzeniu 5v urządzenie.

    3.3v jest "na skraju" wykrywania logicznej jedynki przez attiny13 i raz jest 1, a czasem 0, przez co układ wariuje. Myślałem, żeby wykrywać to z użyciem ADC, ale jak na złość mam tylko 1 wolny pin i jest nim PORTB1 (AIN0).

    Jak wykryć stabilnie 3.3v? Można by było zrobić prosty układ na tranzystorach, żeby zamieniał 3.3v na 5, ale płytka jest już skończona i musiałbym robić pająka, co bardzo chcę uniknąć. Jeżeli nie będzie żadnego możliwego software-owego rozwiązania to nie będę miał wyjścia.
  • #2 17138012
    krzysiek_krm
    Poziom 40  
    Witam,
    nie możesz ewentualnie "odwrócić logiki" ?
    Będzie to trochę niezgodne ze sztuką, ale może działać.

    Pozdrawiam

    Dodano po 8 [minuty]:

    Pomiędzy układami przydałby się jeszcze szeregowy opornik, może gdzieś go wciśniesz zamiast ścieżki.
  • #3 17138033
    mikmas
    Poziom 18  
    Odwrócenie logiki (reagowanie na 0) nic nie da, bo on czasem 3.3v traktuje jako 1, a czasem jako 0. Nie wiadomo w ten sposób co tak naprawdę ustawił drugi sprzęt
  • #5 17138053
    tronics
    Poziom 38  
    Nie rozumiem, otwieram notę do tiny13 i V(IL) widzę min -0.5V, a max 0.3Vcc czyli dla układu zasilanego z 5V jest to 1.5V, prawda? V(IH) to z kolei 0.6Vcc do Vcc+0.5 czyli dla układu zasilanego z 5V stanem wysokim będzie 3V do 5.5V
    Co za tym idzie 3.3V nie jest na granicy tylko powyżej jej i to z wystarczającym marginesem bezpieczeństwa. Grunt żeby mieć dobrą filtrację i stabilne zasilanie.
  • #6 17138065
    BlueDraco
    Specjalista - Mikrokontrolery
    Wystarczy dioda Schottky katodą do wyjścia układu 3.3V, anoda do wejścia 5V, włączone wewnętrzne podciągnięcie wejścia w układzie 5V.
  • #7 17138067
    krzysiek_krm
    Poziom 40  
    mikmas napisał:
    Odwrócenie logiki (reagowanie na 0) nic nie da, bo on czasem 3.3v traktuje jako 1, a czasem jako 0. Nie wiadomo w ten sposób co tak naprawdę ustawił drugi sprzęt

    Przepraszam, użyłem zbyt daleko idącego skrótu myślowego.
    W tym, który jest 5 V ustawiasz pin jako wejście z pull-upem. W tym, który jest 3.3 V przełączasz pin "wyjściowy" między output-low oraz input (z pull-upem albo bez, trzeba policzyć). Dajesz pomiędzy układami opornik (spróbuj wcisnąć zamiast ścieżki), też trzeba go policzyć.
    Musisz policzyć czy zmieścisz się w gwarantowanych zakresach parametrów. Trzeba policzyć dzielnik Rpullup - Rekstra, zasilany z jednej strony z napięcia 5 V (pull-up) a z drugiej strony albo przez Voutlow albo z napięcia 3.3 V plus napięcie diody zabezpieczającej (żerowanie na tej diodzie, jak już napisałem jest trochę nieładne).
  • #8 17138207
    mikmas
    Poziom 18  
    tronics napisał:
    Nie rozumiem, otwieram notę do tiny13 i V(IL) widzę min -0.5V, a max 0.3Vcc czyli dla układu zasilanego z 5V jest to 1.5V, prawda? V(IH) to z kolei 0.6Vcc do Vcc+0.5 czyli dla układu zasilanego z 5V stanem wysokim będzie 3V do 5.5V
    Co za tym idzie 3.3V nie jest na granicy tylko powyżej jej i to z wystarczającym marginesem bezpieczeństwa. Grunt żeby mieć dobrą filtrację i stabilne zasilanie.

    Może z jakiegoś powodu spada poniżej tych 3v?

    Czyli bez dodatkowych bajerów nie przejdzie? A może dałoby radę użyć to, że na tym porcie jest AIN0?
  • #9 17138392
    BlueDraco
    Specjalista - Mikrokontrolery
    Możesz połączyć bez diody Schottky, ale wtedy zamiast stanu wysokiego musisz sterować w trzeci stan - jako wejście, a w uC zasilanym z 5V włączasz wewnętrzne podciąganie.
  • #10 17138524
    krzysiek_krm
    Poziom 40  
    mikmas napisał:
    A może dałoby radę użyć to, że na tym porcie jest AIN0?

    mikmas napisał:
    ale jak na złość mam tylko 1 wolny pin i jest nim PORTB1 (AIN0)

    Konfiguracja komparatora w tym układzie jest taka, że nic sensownego raczej nie da się zrobić.
  • #11 17139232
    Jacek Rutkowski
    Poziom 28  
    mikmas napisał:
    Zrobiłem układ stworzony z 2 "modułów". Pierwszy z attiny13 zasilany jest 5v, drugi - 3.3v. Problem powstał, gdy oba muszą się skomunikować. Ten z 3.3v ma w odpowiednim momencie poinformować o zdarzeniu 5v urządzenie.

    Możesz ten procesor zasilany 5V zasilić przez diodę aby obniżyć napięcie do 4,3-4,5V?
    Czy potrzebujesz dokładnie 5V?
  • #12 17139707
    mikmas
    Poziom 18  
    Jacek Rutkowski napisał:
    Możesz ten procesor zasilany 5V zasilić przez diodę aby obniżyć napięcie do 4,3-4,5V?
    Czy potrzebujesz dokładnie 5V?

    Raczej dokladnie 5v, bo oprócz procka tym napięciem (na tej samej płytce) są zasilane także urządzenia na USB, których zachowanie ciężko mi przewidzieć po obniżeniu napięcia.

    No nic to pozostaje ingerencja w hardware. Dzięki za pomoc!
  • #13 17139729
    krzysiek_krm
    Poziom 40  
    mikmas napisał:
    No nic to pozostaje ingerencja w hardware. Dzięki za pomoc!

    Nie próbowałeś
    BlueDraco napisał:
    Wystarczy dioda Schottky katodą do wyjścia układu 3.3V, anoda do wejścia 5V, włączone wewnętrzne podciągnięcie wejścia w układzie 5V.

    to w sumie najlepszy pomysł, ingerencja prawie żadna.
    Ewentualnie sterowanie OUTPUT(LOW) / INPUT, może zadziała bez szeregowego rezystora między układami.
  • #14 17140396
    dondu
    Moderator na urlopie...
    mikmas napisał:
    3.3v jest "na skraju" wykrywania logicznej jedynki przez attiny13 i raz jest 1, a czasem 0, przez co układ wariuje. Myślałem, żeby wykrywać to z użyciem ADC, ale jak na złość mam tylko 1 wolny pin i jest nim PORTB1 (AIN0).


    Przeczytaj ten artykuł i zobacz film: http://mikrokontrolery.blogspot.com/2011/04/jak-mikrokontroler-widzi-sygnal-cyfrowy.html





    mikmas napisał:
    Może z jakiegoś powodu spada poniżej tych 3v?


    Pokaż schemat.
REKLAMA