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

16F877A problem z uruchomieniem

pikachu1986 24 Kwi 2009 17:18 2014 19
  • #1 24 Kwi 2009 17:18
    pikachu1986
    Poziom 13  

    Witam mam problem z 16F877A-E/P, pierwszy raz bawie się tym prockiem i nie mogę sobie poradzić:) Na próbe napisałem programik do zapalania diody.Kwarc 4Mhz ustawiłem HS ,lvp off, wdt off.Nie mogłem go zaprogramować w IC-Progu podczas weryfikacji wyskakiwał błąd na 0004h. Zmieniłem na XT i zaprogramował się normalnie ale zapala diode jak chce w różnych odstępach czasu. Nie wiem w czym tkwi problem proszę o pomoc.

    Cytat:

    void main() {
    adcon1=7 ;
    PORTD = 0;
    TRISD = 0;

    while(1) {
    PORTd =0xff;
    Delay_ms(1000);
    PORTd =0x00;
    Delay_ms(1000);
    }
    }

    0 19
  • #2 24 Kwi 2009 19:27
    elektryk
    Poziom 42  

    Od kwarcu programowanie jest zupełnie niezależne, to nie AVR żeby potrzebować kwarcu do programowania. A jak masz ten kwarc podłączony, XT powinno być ok dla 4MHz, a może paluchami dotykasz kwarca?

    0
  • #3 24 Kwi 2009 22:18
    pikachu1986
    Poziom 13  

    Kwarc mam podłączony do 13 i 14 pinu i przez 22p do masy, reset przez 10k do zasilania. Może to wina programatora? Z drugiej strony weryfikacja przebiega poprawnie. Próbowałem z kwarcem 20Mhz ustawione na HS i nie chciał się zweryfikować raz błąd 0004h a raz 0014h a jak ręcznie przestawie w IC-progu na XT zweryfikuje normalnie ale dioda nie świeci wogóle.

    0
  • Pomocny post
    #4 24 Kwi 2009 22:24
    karlos79
    Poziom 33  

    Witam
    Pozwolę sobie na małą dygresję od tematu

    elektryk napisał:
    to nie AVR żeby potrzebować kwarcu do programowania.

    Chyba nie do końca masz rację, wrzucałem pliki hex do kontrolera, po czym ustawiałem fusy na wewnętrzny generator i wszystko hulało.
    Mówię tu o kontrolerach AVR.
    Pozdrawiam.

    0
  • #5 24 Kwi 2009 23:38
    elektryk
    Poziom 42  

    karlos79 napisał:
    elektryk napisał:
    to nie AVR żeby potrzebować kwarcu do programowania.

    Chyba nie do końca masz rację, wrzucałem pliki hex do kontrolera, po czym ustawiałem fusy na wewnętrzny generator i wszystko hulało.
    Mówię tu o kontrolerach AVR.
    Mea culpa, racja na wbudowanym RC też zadziała. Więc poprawiam swoje zdanie. PIC to nie AVR więc nie wymaga taktowania żeby się dać zaprogramować.

    A co do procesora to czy nie programujesz go w układzie gdzie masz tylko rezystor do Vcc? Czy wybrałeś dobry typ układu z dokładnością do literki na końcu typu?

    0
  • #7 25 Kwi 2009 10:38
    elektryk
    Poziom 42  

    A programator wcześniej testowany? Działa prawidłowo? Czy procesory przechodzą weryfikację?

    Co do typy to /P oznacza typ DIP, a ta literka by sugerowała jakiś dziwny zakres temperatury, producent podaje że w tym miejscu może się pojawić tylko literka I albo brak literki.

    Jeszcze takie pytanko, czemu nie ustawiasz konfiguracji procesora tak żeby kompilator C zapisał ją wewnątrz pliku HEX? Oraz czemu nie ma żadnych dyrektyw w języku C określających częstotliwość zegara, bo funkcja delay_ms() musi skąś sobie wziąć ten parametr.

    0
  • #8 25 Kwi 2009 11:14
    pikachu1986
    Poziom 13  

    Programator nie był wcześniej testowany ale weryfikacja przebiega prawidłowo. Pisze w mikroC a tam w konfiguracji ustawiam wszystko przy tworzeniu projektu oraz podaje częstotliwość kwarcu. Konfiguracja zapisuje się w pliku HEX bo jak otwieram w icprogu to wszystko jest ustawione tak jak ma być. Wcześniej pisałem na 16f628a i wszystko działało normalnie ale używałem innego programatora. Wczoraj zmieniałem opóżnienia np. na 10s ale dalej świeci jak chce.

    0
  • #9 25 Kwi 2009 12:13
    elektryk
    Poziom 42  

    A masz pod ręką jakiś gotowy generator kwarcowy? Dokładna częstotliwość nie ma znaczenia, jeśli podłączenie go zamiast kwarca ustabilizuje to w jakiś sposób miganie diody LED to masz coś z kwarce albo połączeniami.

    Jeszcze jedna sprawa mi się przypomniała, czy wyłączyłeś w fusach albo zablokowałeś sprzętowo wchodzenie w tryb LVP.

    0
  • #10 25 Kwi 2009 12:38
    pikachu1986
    Poziom 13  

    Sprawdziłem z kwarcami 4,6,20Mhz na każdym działa inaczej ale nie stabilnie. LVP Off. Może procek jest uszkodzony, nie mam drugiego żeby sprawdzić.

    0
  • #11 26 Kwi 2009 13:30
    elektryk
    Poziom 42  

    pikachu1986 napisał:
    Sprawdziłem z kwarcami 4,6,20Mhz na każdym działa inaczej ale nie stabilnie. LVP Off. Może procek jest uszkodzony, nie mam drugiego żeby sprawdzić.
    Może i jest uszkodzony, ale ja bym obstawiał że to chyba szybciej wina błędnego montażu. Opukaj procesor, obstukaj, zrób program żeby dioda migała szybciej. Sprawdź reset, zasilanie, może BOD resetuje układ, może watchdog.

    0
  • #12 26 Kwi 2009 17:34
    pikachu1986
    Poziom 13  

    W konfiguracji mam takie możliwości:
    cp all
    cp off
    debug off
    debug on
    wrt off
    wrt 256
    wrt 1fourth
    wrt half
    cdp off
    cdp on
    lvp off
    lvp on
    boden off
    boden on
    pwrte off
    pwrte on
    wdt on
    wdt off
    rc osc
    hs osc
    xt osc
    lp osc
    Domyślnie jest ustawione lvp off ,wdt off, hs osc. Jutro polutuje wszystko od nowa na nowych elementach to dam znać czy coś się zmieniło.

    0
  • #13 26 Kwi 2009 22:00
    piti___
    Poziom 23  

    Czy napewno ustawiles fuse bity ? Jeśli oprogramowanie programatora nie wrzucilo fuse bitow, masz nie zaprogramowany bit LVP. W takim przypadku jeśli pin Rb3/PGM wisi w powietrzu to procesor będzie się losowo resetował (wchodził w tryb programowania).

    0
  • Pomocny post
    #14 26 Kwi 2009 23:14
    elektryk
    Poziom 42  

    pikachu1986 napisał:
    Domyślnie jest ustawione lvp off ,wdt off, hs osc.
    Co znaczy "domyślnie"? Przez kogo ustawione?

    0
  • #15 27 Kwi 2009 09:06
    pikachu1986
    Poziom 13  

    Domyślnie tzn. w konfiguracji daje default i zaznacza mi te trzy pola , pózniej w IC-progu po załadowaniu programu konfiguracja ustawia się tak samo jak zaznaczałem w mikroC czyli jest ok. Dla pewności sprawdzę RB3/PGM ,u mnie w układzie wisi. Jaki stan podać żeby wystartował?

    0
  • Pomocny post
    #16 27 Kwi 2009 09:18
    piti___
    Poziom 23  

    Najwazniejsze punkty dotyczące PGM:
    PGM dajesz do masy i koniecznie wylaczasz pullup na tym pinie.

    To enter Programming mode, VDD must be applied
    to the RB3/PGM.

    When using low voltage ICSP programming
    (LVP) and the pull-ups on PORTB
    are enabled, bit 3 in the TRISB register
    must be cleared to disable the pull-up on
    RB3 and ensure the proper operation of
    the device.

    RB3 should not be allowed to float if LVP
    is enabled. An external pull-down device
    should be used to default the device to
    normal operating mode. If RB3 floats
    high, the PIC16F87X device will enter
    Programming mode.

    0
  • #17 27 Kwi 2009 16:38
    pikachu1986
    Poziom 13  

    Chyba nareszcie udało mi się normalnie uruchomić mój układ;) Wszystko polutowałem na nowych elementach, nowy stabilizator napięcia +kondensatory, kwarc 8,86Mhz bo taki miałem akurat pod ręką i 2x15p .RB3 na początku miałem podłączony do masy ale odłączyłem i też działa normalnie więc problem raczej nie tkwił w LVP tylko w stabilizatorze napięcia. Dziękuje wszystkim pozdrawiam pikachu1986.

    0
  • #18 29 Lip 2009 19:47
    goodbay
    Poziom 11  

    Witam.
    Zrobiłem sobie centralkę DCC ze strony http://www.tinet.org/~fmco/nanox_en.html . Po zaprogramowaniu procesora PIC 16F628A programem IcProg mam problem z jego startem. Muszę parę razy wyłączać i załączać zasilanie, żeby procesor wystartował i wtedy centralka działa normalnie. Czy ten procesor ma jakiś reset? A może jest coś nie tak z Fuses. Mam takie ustawienia PWRT ON, BODEN ON, reszta OFF. Z AVR-ami nie miałem nigdy takich problemów.
    Schemat http://www.tinet.org/~fmco/download/NanoX-S88_manual_v3.pdf
    Pozdrawiam
    Marcin

    0
  • #19 30 Lip 2009 08:30
    pikachu1986
    Poziom 13  

    Korzystasz z zewnętrznego kwarcu? Sprawdź czy masz podpięty reset do 4 pinu. Może coś nie łączy i raz startuje a raz nie pozdrawiam pikachu1986

    0
  • #20 01 Sie 2009 23:19
    goodbay
    Poziom 11  

    Witam
    Problem rozwiązany.
    Okazało się, że coś nie tak było z MAX485 po wymianie na nowy wszystko działa OK.
    Pozdrawiam
    Marcin

    0