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

[AtMega16] Stan niski na jednym z pinów wcale nie jest niski

bajerybajery 06 Wrz 2008 10:29 2025 15
REKLAMA
  • #1 5510417
    bajerybajery
    Poziom 10  
    Witam, potrzebuje porady. Kupiłem ostatnio AtMega16 i napisałem program do sterowania diodami. Podłączyłem diody bezpośrednio do wszystkich nóżek portu C i uruchomiłem mikrokontroler. Wszystko ładnie miga i ogólnie jest super poza jednym wyjątkiem - dioda na pinie PC0 (SCL) leciutko (słabiej niż w stanie wysokim) świeci nawet jak podam stan niski (diody mają za zadanie świecić jak podam stan wysoki). Dioda nie powinna świecić w stanie niskim (inne diody zachowują się poprawnie - nie świecą). Niestety nie mam innego mikrokontrolera na stanie, dlatego kieruje się do was z szybką radą - powiedźcie czy jest prawdopodobne, że od nowości był uszkodzony tylko jeden pin w porcie C?
  • REKLAMA
  • Pomocny post
    #2 5510423
    zenon75
    Poziom 18  
    Wszystko jest możliwe.Narazie zamień diody.
  • REKLAMA
  • #3 5510661
    autoservice
    Poziom 20  
    ...właśnie, zamień te diodę z iną diodą, jak będzie to samo to uwalony procek... no chyba, że jakimś cudem włącza się alternatywna funkcja sprzętowego I2C i coś tam knoci ale to mało prawdopodobne...sprawdź miernikiem jakie jest napięcie w stanie niskim i wysokim.
    Pzdr.
  • #4 5510996
    teedd
    Poziom 19  
    Witaj.
    Stan niski na wyjściu logicznym wcale nie oznacza, że na tym wyjściu jest 0V. I dlatego dioda może ci się lekko świecić.
    Jak sterujesz tymi diodami? Po tym co napisałeś i po objawach podejrzewam, że do wyjścia portu masz podłączoną anodę diody, w szereg z diodą rezystor a katoda do masy. Spróbuj anodę diody podłączyć do zasilania, szeregowo z diodą rezystor a katodę do wyjścia portu. Oczywiście musisz zanegować stan wyjścia portu, aby układ Ci identycznie działał.
    Powinno pomóc.
    Pozdrowienia - teedd
  • #5 5511463
    autoservice
    Poziom 20  
    ...skoro reszta diod działa OK a ta jedna nie to ewidentnie jest coś z diodą lub z portem, wszak to jeden kawałek krzemu i cały port ma działać tak samo na wszystkich bitach.
    pzdr.
  • REKLAMA
  • #6 5511676
    mog123
    Poziom 15  
    Jesli tylko ta diode masz na porcie C i tylko ona szwankuje, to najprawdopodobniej nie masz podlaczonego AVCC i AGND, czytalem w jakiejs dokumentacji ze AVCC zasila port C
  • #7 5511680
    snow
    Poziom 31  
    mog123 napisał:
    czytalem w jakiejs dokumentacji ze AVCC zasila port C


    Zasila port A raczej bo to jest port na którym jest ADC.
  • #8 5512684
    mirekk36
    Poziom 42  
    Ludzie czy wy zawsze jak tylko coś wam się nie uda z prockiem programowo zrobić to od razu uznajecie, że "jest on uszkodzony, uwalony, jest coś z nim nie tak" i wyrzucacie go do kosza???? Troszeczkę wysiłku , i więcej samokrytyki - bo w ogromniej większości przypadków (99,9999999%) zwykle jest to inny problem niż uszkodzenie procesora.

    a kolega autor może niech najpierw powie jak programuje ten port, może jakiś kawałek kodu - bo jak znam życie to tam leży pies pogrzebany.

    .... albo też jak się okaże , gdy odezwie się w końcu autor, że ........ "aaaaaa już wszystko działa, źle było polutowane"

    (przy okazji na pewno nie był od nowości uszkodzony pin o który pytasz i na pewno nadal nie jest uszkodzony)

    Dodano po 1 [minuty]:

    Snow i mog123 --> AVCC nie zasila ani portu C ani portu A. To napięcie służy do zasilania wewnętrznych przetworników. Z którymi ten temat jak na razie nie ma nic wspólnego
  • REKLAMA
  • #9 5512912
    snow
    Poziom 31  
    mirekk36 napisał:

    Snow i mog123 --> AVCC nie zasila ani portu C ani portu A. To napięcie służy do zasilania wewnętrznych przetworników. Z którymi ten temat jak na razie nie ma nic wspólnego



    Cytat:
    AVCC is the supply voltage pin for Port A and the A/D Converter. It should be externally connected
    to VCC, even if the ADC is not used.
    If the ADC is used, it should be connected to VCC
    through a low-pass filter.


    Poczytaj sobie note ;)
  • #11 5519032
    _Robak_
    Poziom 33  
    Jesli jakies cuda sie dzieja na porcie c w atmedze 16 to pewnie znaczy ze jest wlaczony jtag ;)
  • #12 5532872
    bajerybajery
    Poziom 10  
    Dziękuję za odpowiedzi. Dioda nadal świeci w momencie kiedy nie powinna. W celu sprawdzenia "co jest grane" napisałem mały kawałek kodu żeby sprawdzić co jest nie tak.

    
    DDRC = 0xFF;
    while (1)
    {
     PORTC = 0xFF;
      _delay_ms(200);
      _delay_ms(200);
      _delay_ms(200);
      PORTC = 0x00;
      _delay_ms(200);
      _delay_ms(200);
      _delay_ms(200);
    }
    


    Niestety - to samo. Wszystkie diody na porcie C zachowują się poprawnie, natomiast ta jedna świeci nawet na stanie niskim.
    Dodam, że programuje przez JTAG'a, ale nie sądze żeby to miało większe znaczenie - JTAG jest fizycznie odłączony podczas działania.
  • #13 5533915
    KonusiK
    Poziom 12  
    A możesz podesłać schemat układu? Może łatwiej wtedy będzie znaleźć błąd?
  • #14 5534330
    bajerybajery
    Poziom 10  
    Mógłbym podesłać schemat, ale (tak jak pisałem wcześniej) napisałem najprostsze migadło i podłączyłem po prostu diody do portu mikrokontrolera i do masy (już nawet bez rezystorów, na szybko) i to samo. No... na pewno już raczej to nie jest mój błąd. Nawet nie ma go gdzie popełnić. Skłaniam się coraz bardziej ku temu że ten jeden pin portu C jest po prostu zespsiuty.

    Dziękuję wszystkim za odpowiedzi. Zgodnie z Waszymi podpowiedziami wyłączyłem JTAG'a w FuseBitach - nadal to samo. Maksymalnie uprościłem kod i połączenia - nadal to samo. Zmieniałem diody miejscami - nadal to samo. Raczej się już nic z tym nie zrobi - wyślę tą ATMege do USA na gwarancji ;-)
  • #15 5534762
    teedd
    Poziom 19  
    Witaj.
    Pisałem Ci już, że stan niski na wyjściu portu wcale nie oznacza, że na nim jest 0V! I dlatego dioda może się lekko jarzyć.
    Podłącz diody przez rezystor do + zasilania i do wyjścia portu. I napisz jaki jest efekt. Parę dni się z tym wozisz zamiast to sprawdzić.
    teedd
  • #16 5540300
    bajerybajery
    Poziom 10  
    Cytat:
    Pisałem Ci już, że stan niski na wyjściu portu wcale nie oznacza, że na nim jest 0V! I dlatego dioda może się lekko jarzyć.
    Podłącz diody przez rezystor do + zasilania i do wyjścia portu. I napisz jaki jest efekt. Parę dni się z tym wozisz zamiast to sprawdzić.
    teedd


    Nie no jasne, to nigdy nie jest zero V. Jednak zdobyłem drugi kontroler, ten sam model ATMega16 i nowy układ się tak nie zachowuje. Śmiem twierdzić, że prawdopodobnie więc była to wina elektroniki.
REKLAMA