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

Atmega32 - Podłączenie czujnika na 3.3V do Atmegi 5V

marrrtyn 16 Lis 2013 12:34 2025 6
REKLAMA
  • #1 12957624
    marrrtyn
    Poziom 10  
    Witam.

    Mam zamiar podłączyć czujnik ciśnienia BMP085 (dopuszczalne napięcie 1.8-3.6V) do Atmegi32 zasilanej napięciem 5V. Wzorując się na przykładzie podłączenia karty SD ze strony http://mikrokontrolery.blogspot.com/2011/03/podlaczenie-karty-pamieci-sd.html wykonałem następujący schemat:

    Atmega32 - Podłączenie czujnika na 3.3V do Atmegi 5V

    Stosując działanie R=5V/0,02A=250Ω dobrałem rezystory (tak jak na stronie, którą podałem wyżej) 100Ω oraz 220Ω. Stąd Uwyj=5V*220Ω/(100Ω+220Ω)=3,44V, więc napięcie mieści się w granicy 1.8-3.6V. Maksymalny prąd, pobierany z wyjścia mikrokontrolera wyniesie 15,6mA (przy dopuszczalnym maksymalnym prądzie każdego pinu 40mA podanym w specyfikacji Atmegi). Dodatkowo na linie CLK i CDA dołączyłem rezystory podciągające 4k7Ω, tak jak jest to zalecane w specyfikacji czujnika BMP085. Oczywiście czujnik ciśnienia będzie zasilany napięciem 3.3V (po wcześniejszym wstawieniu stabilizatora napięcia LF33CV). Czy schemat, który przedstawiłem będzie działał poprawnie bez obawy uszkodzenia czujnika BMP085? Pozdrawiam
  • REKLAMA
  • #2 12957682
    excray
    Poziom 41  
    Oczywiście że będzie źle działał. Dlaczego nie podepniesz linii SDA/SCL bezpośrednio pod wejścia ATMEGI? Musisz tylko w programie pamiętać aby nigdy nie ustawiać tych wejść jako wyjścia w stanie wysokim oraz aby nie uruchamiać na nich podciągania. Generalnie wyjście PORTx tych we/wy zawsze musi być równy 0.
  • REKLAMA
  • #3 12957727
    marrrtyn
    Poziom 10  
    Czy aby na pewno? Układ będzie działał na I2C więc transmisja będzie dwukierunkowa.
  • #4 12957732
    excray
    Poziom 41  
    Kolego znasz prawo oma? To oblicz sobie napięcie w punkcie SDA lub SCL układu. Jeśli jest ono mniejsze jak 2V to jest źle. Poza tym zapoznaj się z tym jak działa szyna I2C. To nie jest SPI.
  • REKLAMA
  • #5 12957751
    marrrtyn
    Poziom 10  
    Rozumiem. Czyli wystaczy podciągnięcie rezystorów 4k7Ω z napięcia 3.3V za stabilizatorem do nóżek SDA i SCL oraz nie ustawianie stanu wysokiego na tych wyjściach?
  • Pomocny post
    #6 12957775
    excray
    Poziom 41  
    Tak. "1" logiczne zapewniają oporniki. A "0" wymusza albo układ albo ATMEGA przez zwieranie do masy. Na szynie I2C żaden układ nie ma prawa wystawiać wysokiej "1". Inaczej w przypadku konfliktu - jeden układ wystawia "1" a drugi "0" doszło by do zwarcia. Jeśli sam piszesz obsługę do I2C to musisz o tym pamiętać jak korzystasz z wbudowanego interfejsu to sam interfejs tego pilnuje.
  • REKLAMA
  • #7 12958180
    marrrtyn
    Poziom 10  
    Wszystko działa jak należy, odczytuję prawidłowe wyniki na wyświetlaczu. Dziękuję za pomoc i pozdrawiam.

    Zamykam.
    Dar.El
REKLAMA