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

[Rozwiązano] [Attiny13] Pull-up resistor, a wrażliwość drugiego układu na >3v

mikmas 24 Lut 2020 20:49 888 11
REKLAMA
  • #1 18491564
    mikmas
    Poziom 18  
    Planuję podłączyć raspberrypi GPIO pod attiny13 i wysyłać (do attiny) dane. RPI ma porty na 3v, natomiast układ z uC - 5v. Komunikacja będzie jednostronna, ale logiczne 1 w RPI jest spokojnie powyżej łapania logicznego 1 w drugim, więc żadnych konwerterów nie potrzebuję.

    Wątpliwość pojawiła się w momencie chęci podpięcia pull-up resistor. Wg dokumentacji jego oporność to 34.4kΩ, więc teoretycznie nie powinno nic spalić. Jednak czy na pewno?

    Pytanie "przy okazji" czy dobrze programowo "włączam" pull-upa (zawsze dawałem po prostu fizyczny opornik):
    DDR=0, PORT=0xFF i odczytywanie via PIN?
  • REKLAMA
  • #2 18491744
    n6210
    Poziom 29  
    w sumie to skoro chodzi o 1 pin to nawet tak:
    DDRB &= _BV(PBX);
    PORTB |= _BV(PBX);
    stan = PINB & _BV(PBX);

    _BV to makro z GCC (1<<PBX)
    PBX to numer koncowki np.: PB4 (czyli fizyczny pin nr.3)

    Rozpiska pinów:
    [Attiny13] Pull-up resistor, a wrażliwość drugiego układu na >3v
  • REKLAMA
  • Pomocny post
    #3 18492310
    BlueDraco
    Specjalista - Mikrokontrolery
    Będzie dobrze. Przy wstrzykiwaniu w wejście 50 uA nic układowi nie grozi.
  • #4 18492348
    n6210
    Poziom 29  
    Pullup możesz włączyć pytanie jednak po co ? RPi na porcie GPIO ma diody ESD więc i tak dioda odprowadzi prąd z pullup-a do zasilania RPi.
  • REKLAMA
  • #5 18492719
    linuxtorpeda
    Poziom 26  
    Z tego względu w celu zabezpieczenia wejścia przed nadmiernym prądem można dać rezystor szeregowo między logiką 5V a 3V, aniżeli równolegle, tj. pullup między wejściem a zasilaniem.
  • #6 18492747
    n6210
    Poziom 29  
    Jak dla mnie rezystor nie jest konieczny tylko ATTiny13 (5V) niech ustawi pin wejściowy w HiZ, a RPi (3V3) niech uzywa push-pull do sterowania i tyle. Ostatecznie jakby się okazało, że coś nie tak z poziomami napięć (wątpię) to można dodać diodę shotkyego w szereg żeby przesunąć poziomy napięć do góry o te ~0.4V, choć to wszystko raczej zbędne kombinacje.
  • #7 18493401
    mikmas
    Poziom 18  
    n6210 napisał:
    Pullup możesz włączyć pytanie jednak po co ? RPi na porcie GPIO ma diody ESD więc i tak dioda odprowadzi prąd z pullup-a do zasilania RPi.

    Problem w tym, że Raspberrka może być wyłączona lub port może w ogóle "wisieć", a bit startu chciałbym, aby był na stanie niskim. Dopiero jak RPi będzie pewna, że chce coś wysłać to aby tam był cały czas stan wysoki (stąd pomysł z pull-upem od strony t13)

    linuxtorpeda napisał:
    Z tego względu w celu zabezpieczenia wejścia przed nadmiernym prądem można dać rezystor szeregowo między logiką 5V a 3V, aniżeli równolegle, tj. pullup między wejściem a zasilaniem.

    Impulsy będą szły tylko od RPi do attiny (3v->5v), więc opornik szeregowo jeszcze bardziej zbije mi napięcie
  • #8 18493445
    n6210
    Poziom 29  
    Ok to jakieś uzasadnienie. Spokojnie włącz sobie pull-up tylko pytanie czy RPi ma być wyłączony czy odłączony, bo wyłączony może znacznie obciążać port Tiny13 i nie wiadomo jakie tam będzie wtedy napięcie. Sprawdź, bo w takich sytuacjach separacja np. tranzystorem czasem okazuje sie konieczna.
  • #9 18493467
    BlueDraco
    Specjalista - Mikrokontrolery
    Zastanawiam się, ilu Kolegów piszących w tym wątku zrozumiało pytanie Autora i zastanowiło się nas sensownością swoich odpowiedzi.
    Autor steruje wyjściem ATtiny w konfiguracji udającej otwarty dren, czyli AT nigdy nie poda stanu wysokiego na RPi - wypływ prądu będzie żaden. Brak możliwości latch-up, brak możliwości wysysania prądu przez RPi, brak potrzeby rezystora szeregowego. Kropka.
  • Pomocny post
    #10 18493879
    n6210
    Poziom 29  
    Autor pisał że steruje wejsciem Attiny, na którym chce mieć domyślnie stan wysoki bez względu na obecność czy zasilanie RPi. Stąd chęć posiadania tam pull-up. Jeżeli jest inaczej. Niech się wypowie.
    Ps. Uwielbiam taki pouczający, ton w momencie gdy samemu najwyraźniej nie czytało się dyskusji :)
  • REKLAMA
  • #11 18503082
    mikmas
    Poziom 18  
    Podłączyłem z pull-upem z wszystko zatrybiło. T13 bez problemów odczytuje komendy z raspberry, a raspberry - jak widać - nie spaliła się od pull-upa :). Dzięki za pomoc
  • #12 18503084
    mikmas
    Poziom 18  
    Podłączyłem z pull-upem z wszystko zatrybiło. T13 bez problemów odczytuje komendy z raspberry, a raspberry - jak widać - nie spaliła się od pull-upa :). Dzięki za pomoc

    Dodano po 1 [minuty]:

    Muszę coś napisać, aby zamknąć temat, mimo że ostatni post jest mój.

Podsumowanie tematu

Użytkownik planował podłączyć Raspberry Pi GPIO do ATtiny13, aby przesyłać dane, z uwzględnieniem różnicy napięć (3V dla RPi i 5V dla ATtiny). Pojawiły się wątpliwości dotyczące zastosowania rezystora pull-up, którego oporność wynosi 34.4kΩ. Uczestnicy dyskusji potwierdzili, że podłączenie pull-upa jest bezpieczne, a także zasugerowali, że RPi ma diody ESD, które mogą chronić przed nadmiernym prądem. Wskazano również na możliwość użycia rezystora szeregowego dla dodatkowego zabezpieczenia. Ostatecznie użytkownik potwierdził, że podłączenie z pull-upem działa poprawnie, a komunikacja między urządzeniami przebiega bez problemów.
Podsumowanie wygenerowane przez model językowy.
REKLAMA