Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom ,dziwne zachowanie uP

21 Lip 2008 10:57 3260 41
  • Poziom 17  
    Witam mam taki nietypowy problem, przesiedziałem już nad nim 2 tygodnie i rozkładam ręce :(

    Otóż mój dramat zaczął się gdy znalazłem w szufladzie kilka µP AT89C2051 ,są nowe, dawno temu kupione i pomyślałem czemu by ich nie użyć!!!

    Napisałem kilka programików, wszystko ładnie ,skompilowały się ,symulacja działała, ale po wgraniu do procka, weryfikacji flascha (bezbłędnie) ,coś nie tyka. A konkretnie to diody podłączone do portów wciąż świecą, lub są zgaszone ,choć wg. programu powinny mrugać, itp.

    W akcie rozpaczy napisałem z książki prosty programik mrugającej LED i nic ,w symulacji pięknie ,a w rzeczywistości nie mruga :(

    Pomyślałem uszkodzone porty ,ale najzabawniejsze że obsługa LCD z tymi prockami przebiega bez problemowo, komunikaty się wyświetlają ,bezbłędnie.
    A jak podłącze LED to lipa :(
    Próbowałem różnych konfiguracji z rezystorem podciągającym i bez!!!

    P.S. (jako reset mam opornik 10K i kondensator 10 µF)

    Bascom ,dziwne zachowanie uP


    Bascom ,dziwne zachowanie uP
  • Poziom 19  
    Wiesz co moze pokaz program jaki wgrałes? Aha a diode spróbuj podpiąc przez rezystor 220Ohm anodą do procka :wink:
  • Poziom 17  
    Przy 2,2kΩ to ona ledwo świeci, ale i tak to samo!!!
    Tu masz te dwa najprostrze programiki, żaden nie chodzi :(
    ża to w symylatorze bezproblemowo.
    Code:

    $crystal = 11059000
    $regfile = "89c2051.dat"




    Do
    Set P1.7
    Wait 1
    Reset P1.7
    Wait 1
    Loop
    End




    i drugi :

    Code:
    $crystal = 11059000
    
    $regfile = "89c2051.dat"


    P1 = 0
    P3 = 0


    Do
    Set P1.7
    Wait 1
    Reset P1.7
    Wait 1
    Loop



    P.S. nie wiesz gdzie znaleść przykładowy ogólny schemat jednego z portów ,żebym zobaczył jak to w środku jest skonstuowane, to by wiele pomogło!!!
  • Poziom 19  
    nie 2,2k tylko 220Ω

    Ja bym radził procka i kwarc ustawic w opcjach kompilatora
    ja nigdy nie pisze tego w programie i zawsze działa :P

    Cytat:
    P.S. nie wiesz gdzie znaleść przykładowy ogólny schemat jednego z portów ,żebym zobaczył jak to w środku jest skonstuowane, to by wiele pomogło!!!


    Najlepiej w datasheet :arrow: http://www.atmel.com/dyn/resources/prod_documents/doc0368.pdf
  • Poziom 17  
    Jest ustawione!!! (zresztą jak daje $crystal , to się automatycznie przestawia na odpowiedni w compilatorze) ,z 220Ω dalej to samo :(

    Działają tylko programiki pod LCD, np taki chodzi bez zarzutu:

    Code:
    $crystal = 11059000
    
    $regfile = "89c2051.dat"

    Config Lcd = 16 * 1a

    Do
    Cls
    Lcd "Test....."
    Cursor On Blink
    Wait 1
    Cls
    Lcd "Lcd...OK"
    Cursor Off
    Wait 1
    Cls
    Lcd "Chip...OK"
    Cursor Off
    Wait 1
    Loop


    ,obojetnie czy ustawie kwarc w programie ,czy w kompilatorze, wszystko pod LCD chodzi!!!
    Tylko jak podłączam LED ma problemy. :(
  • Poziom 38  
    Cytat:

    nie 2,2k tylko 220Ω

    Ja bym radził procka i kwarc ustawic w opcjach kompilatora
    ja nigdy nie pisze tego w programie i zawsze działa Razz

    Jakbym mógł za takie rady dobrych duszków dawałbym ostrzeżenia...

    @Autor... może jednak warto w końcu łaskawie pokazać CAŁY układ? Z resetem, kondensatorami filtrującymi etc?
  • Poziom 17  
    Balu. :arrow:

    Specjalnie dla ciebie kompletny schemacik ;)

    Mam nadzieję że coś wymyślisz, bo ja już załamuję ręce.

    Układ zasilany +5V , kondensator 100nF ,dolutowany od spodu do nóżek µP, bliżej się już nie dało ;)

    Bascom ,dziwne zachowanie uP
  • Poziom 38  
    Przepraszam gdzie ten schemat?
  • Poziom 17  
    Już jest ,małe problemy z załączniem obrazka, coś się zwiesiło.
  • Poziom 19  
    Schemat wygląda ok.. A próbowałes na innych pinach czy tylko P1.7?
  • Poziom 38  
    Z czego to zasilasz? Może prądu mu brakuje? Bo schemat wygląda w miarę ok:>
    Jedynie ja bym wsadził rezystor podciągający 1..5k na pin uC:>
  • Poziom 17  
    Ze stabilizatora 7805 ;) , spróbuję z tym opornikiem 1,5KΩ i dam znać.

    Najdziwniejsze że działa pod LCD (więc porty powinny być dobre ,co nie?)
  • Poziom 19  
    Ja kiedys miałem tak ze "spalił" mi sie tylko 1 pin.. a do jakich pinów wyswietlacz podpinasz?
  • Poziom 17  
    Tak do portu 1.7 jest podłączona 14 nóżka wyświetlacza.
    I działa.
    Opornik 1,5K nie pomógł :(
    Jest jakiś sposób by sprawdzić te porty ( omomierzem czyba nie bardzo???)

    Pierwszy raz spotykam się z czymś takim ,spróbuję jeszcze podłączyć układ ULN2803 (niech robi za końcówkę mocy ;) )
  • Poziom 38  
    Ogółem w 51 warto wszystkie nogi podciągnąć bo cżęść ma słabe podciąganie, część nei ma w ogóle.
    (Nie pamiętam które) więc podciągnij i sprawdź multimetrem czy ci się pojawia 0 i 1 odpowiednio...
  • Poziom 19  
    W AT89CX051 nie podciągnięte są tylko P1.0 i P1.1..
  • Poziom 17  
    Działa z tym układem ULN2803 ,czyli porty są wporządku ,teraz poszukam struktury wewnętrznej wejścia ULN2803 i skopiuje ją na kilku elementach (pewno będzie zrobiona na zasadzie przykładowego wejścia TTL ,gdzie sygnał wchodzi na EMITER tranzystora).

    Ale cieszy mnie myśl ,ze µP są sprawne. ;)
  • Poziom 36  
    A mi się coś nie chce wierzyć, żeby te ledy nie migały (kiedyś robiłem sporo na 89c2051). Jak dojdziesz do jakichś prawidłowości - podziel się wnioskami.

    PS. Zamiast używać set, reset, spróbuj przypisywać portom konkretną wartość, np.

    Code:

    do
    p1 = 0
    wait 1
    p1 = 255
    wait 1
    loop


    Zobacz, czy to nie rozwiązuje problemu.
  • Poziom 38  
    Mnie też nie :)
    Może pomyłka w wartości rezystora?:>
  • Poziom 28  
    Przecież pisał że albo świecą albo nie więc rezystory dobre :)
  • Poziom 17  
    Rezystor jest prawidłowy 330Ω (mierzyłem miernikiem, nie z kodu paskowego) ,więc mam pewność.

    Code:
    $crystal = 11059000
    
    $regfile = "89c2051.dat"




    Do
    P1 = 255
    Wait 1
    P1 = 0
    Wait 1
    Loop


    Programik ,jakby to powiedzieć już też wypróbowałem wcześniej i nadal to samo.

    Podsumujmy do czego doszliśmy ,żeby się nie powtarzać:

    1. Działa wszystko pod wyświetlacz LCD
    2. Działa jak podepne układ ULN2003 (jako końcówka mocy)
    3. Działa jak do portu podłącze np. bramkę lub układ schmitta 74132 lub 4093) ,a potem dioda LED to bezproblemowo.

    Niedziała:

    1. jak dam LED bezpośrednio na wyjście portu (bez znaczenia czy są rezystory podciągające ,czy nie)


    P.S. Też nigdy nie miałem takich problemów w µP AVR (np. ATTINY2313), tam LED działa bezpośrednio na portach.
    Gdybym miał tylko 1 egzemplarz (89C2051) ,to nie zawracałbym sobie głowy i wrzucił głęboko w szufladę, ale mam ponad 10 szt. ,każdego boli to samo :( ), więc to nie uszkodzenie 1 egzemplarza.
  • Poziom 36  
    mario832 napisał:
    1. jak dam LED bezpośrednio na wyjście portu (bez znaczenia czy są rezystory podciągające ,czy nie)

    Rezystor podciągający to jedno, ale czy dajesz w szeregu z LED-em rezystor ograniczający prąd diody ?

    Nie możliwe, żeby nie działało. Tutaj przykładowy projekty na 2051, gdzie LED-y sterowane są przez rezystory: 1, 2 a zwłaszcza tutaj: 3

    Więc na pewno działa! ;-)
  • Poziom 32  
    Szczerze to nie bawiłem się jeszcze 51 ale w tym kodzie:
    Code:
    $crystal = 11059000
    
    $regfile = "89c2051.dat"




    Do
    P1 = 255
    Wait 1
    P1 = 0
    Wait 1
    Loop


    Nie widzę deklaracji czy P1 jest wejściem czy wyjściem.
  • Poziom 16  
    mario832 napisał:

    Bascom ,dziwne zachowanie uP

    Przepraszam, że się wtrącam. Bawię się tylko z AVR-ami a tam reset podciąga się do plusu a tu jest do GND. Ma tak być?
  • Poziom 17  
    W bascom 8051 nie trzeba deklarować czy P1 to wej. ,czy wyj. (zresztą sie nie da) ,opcja dostępna dopiero w bascom avr.
  • Poziom 38  
    Akurat do vcc... Nie masy...
    One - 51.
  • Poziom 16  
    Wiem, przeoczyłem a niż starczyłem cały błędny post usunąć to Ty już odpowiedziałeś :-)
  • Poziom 17  
    Panowie działa poprawnie w układzie poniżej (jak nie trudno się domyślić jest to lekko zmodyfikowane wejście standardowej bramki TTL ;) ) :

    Bascom ,dziwne zachowanie uP


    No to mamy jeszcze 1 układ do kolekcji ;)

    A z samą LED (co ja się będe powtarzać,pewno się domyślacie :cry: ) ,dziwne!!!
  • Poziom 38  
    Chcesz powiedzieć że tak podłączony tranzsytor działa?:>