Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Problem z A89C2051

Taki_Wojtek 14 Wrz 2005 21:58 1334 16
  • #1 14 Wrz 2005 21:58
    Taki_Wojtek
    Poziom 10  

    Witam!

    W jednym z numerów Praktycznego Elektronika (12/99) znalazłęm artykuł pt. "Programator Atmeli w 15 minut". Był w nim bład dotyczący napięcia zasialania mikrokontrolera. Wykonałem ten programator i napisałęm program do jego obsługi na bazie listingu zamieszczonego w w/w artykule.

    Mój problem polega na tym, że zaprogramoany mikroprocesor nie wykonuje programu. Proces programowania przebiega pomyślnie, a po włożoeniu mikrokontrolera do układu testowego. Na prawie wszystkich portach występuje 5V.

    Co może być tego przyczyną? Będę wdzięczny za wszelkie sugestie.

  • #2 14 Wrz 2005 22:02
    ACULA
    Poziom 34  

    kwarc, reset, pomierzyłeś wszystko?? możliwości jest tysiące

  • #3 14 Wrz 2005 22:19
    Taki_Wojtek
    Poziom 10  

    Kwarc 12 Mhz... Kondensatory trochę małę bo 30p ale powinno wystarczyć. Reset - kondensator 10µ + do 5V, - do resetu i opornik 10K do masy.

    Ale czego to są objawy? Niewgrany program czy coś z uruchomieniem?

  • #4 14 Wrz 2005 22:29
    Fajfer2
    Poziom 20  

    Ja nie zrozumiałem--no bo jak nie został zaprogramowany
    to nie ma co wykonywać.
    Spróbuj napisać "programik" najprostszy jaki
    można sobie wyobrazić typu:

    MOV P1,#0
    JMP $
    END
    Na porcie P1 powinny być zera.
    ps. a kondensator jest dobrze spolaryzowany?

  • #5 14 Wrz 2005 22:31
    Taki_Wojtek
    Poziom 10  

    Napisałem coś podobnego i nic sie nie dzieje.

    Z tym programatorem to jest możliwość niewgrania, bo nie można na nim przeprowadzić weryfikacji i nie wiem czy program jest w mikrokontrolerze?

    Może mam uszkodzeonego tego Atmela?

    Kodnestator: + do +5V, - przez opornik do masy i do resetu.

  • #6 14 Wrz 2005 22:37
    Fajfer2
    Poziom 20  

    Jak byś miał oscyloskop to sprawdź czy jest sygnał zegarowy na kwarcu
    no i sprawdź czy po włączeniu napięcie na RESET jest tylko przez chwilkę
    (ma to być krótki impuls po czym ok. 0V na wypr. RES )

  • #7 14 Wrz 2005 23:39
    zumek
    Poziom 39  

    Czy napięcie programujące , w czasie programowania jest prawidłowe :?:

    Piotrek

  • #8 15 Wrz 2005 10:25
    Taki_Wojtek
    Poziom 10  

    Niestety nie mam oscyloskopu. W przeciwnym wypadku sprawa by była załatwiona.

    W programatorze napięcie na odpowiednich pinach jest takie jak w nocie katalogowej. Może być problem z opóźnieniami, ale to jus zniwelowałem przez puste pętle.

    I nadal nie działa:(

  • #9 15 Wrz 2005 15:42
    vidmo
    Poziom 14  

    witam
    spotkalem sie juz z paroma programatorami i zauwazylem w nich powazny problem
    jesli programator niewidzi ukladu to po zaprogramowaniu wyzuci OK !
    wiec jesli niemasz sprzetu zacznij od programu do odczytu zawartosci z uC to bedze najlepsza weryfikacja
    zawartosci programu
    wiec obstawiam na 90% ze to wina programatora :)
    i 90 ze procesor jest zupelnie czysty :)

  • #10 15 Wrz 2005 15:59
    Fajfer2
    Poziom 20  

    Podpowiedz o jakie opóźnienia chodzi
    (pisałeś że zniwelowałeś wprowadzając puste pętle)

  • #11 16 Wrz 2005 10:54
    Taki_Wojtek
    Poziom 10  

    Wak już wcześniej wspomniałem, program do obsługi programatora napisałem na podstawie listingu z artykułu w PE.

    Gdy programuje się bajt do 2051 to czteba ustawić odpowiednią kombinację stanów na portach P3.3, P3.4, P3.5 i P3.7. Następnie na port P1 wrzucić wspomnniany bajt i wygenerować krótki (1..110us) impuls programujący na XTAL1. I właśnie z tyym jest problem w szybkich procesorach. Dlatego zastosowałem puste pętle - pętle które nie robią nic poza tym że się wykonują i zajmują ułamki ms.

    Program nie ma funkcji rozpoznawania procesora. Jest to program napisany w Pascalu pod DOSa. Jest prosty i powinien działać.

    Dzisiaj idę do sklepu po nawego Atmelka. Zobaczymy co będzie.

    Byłem w sklepie... I nadal nie działa. No to został do sprawdzenia program i układ testowy.

  • #12 16 Wrz 2005 22:00
    rafels
    Poziom 22  

    Czy program do obsługi programatora ma opcje weryfikacji?
    Jeśli tak to programuj z włączoną tą opcję, będziesz wiedział czy programowanie przebiegło poprawnie.

  • #13 17 Wrz 2005 08:44
    Taki_Wojtek
    Poziom 10  

    Programator z PE 12/99 nie ma możliwości weryfikacji. Tytuł artykułu - "Programator Atmeli w 15 minut".

  • #14 17 Wrz 2005 13:10
    Jdsoul
    Poziom 23  

    Cześć !

    AT 89C2051 programuje się techniką przemiatania pamięci przez licznik wewnętrzny taktowany sygnałami programującymi.

    Oznacza to, konieczność zerowania układów wewnętrznych procesora przed rozpoczęciem procesu programowania. Gdy procesor jest gotowy do przyjmowania danych na port P1 ustawia adres 0000h w pamięci flash.
    Zdarza się że przy odpalaniu programu na PC pójdzie jakiś impuls ma LPT
    i może programować się adres wyższy niż 0000h , a to sprawi że zaprogramowany procesorek nie będzie "działał".
    Najłatwiej reset jest uzyskać poprzez krótkie zwarcie resetu tuż przed uruchomieniem procedury programowania. Taką modyfikację posiada kilka amatorskich układów programatorów.

    W trakcie zapisu napięcie na 1 nóżce powinno skoczyć do +12V a następnie powrócić do +5V.

    Jeśli program napisałeś sam w Pascalu to możesz łatwo sprawdzić poprawność jego działania zastępując poszczególne wyprowadzenia procesora port P3 oraz RST diodami LED. W samym programie zastosuj opóźnienienia po każdej komendzie rzędu pojedynczych sekund, tak aby spokojnie analizować kolejne zmiany(błyski diod) w trakcie "programowania".

    Sekwencja programowania jest podana w datasheet AT89C2051.

    Dodano po 6 [minuty]:

    Jeszcze jedna drobna uwaga !

    Jeśli otwierasz program dosowy w oknie windows XP lub Windows 2000 to nie masz bezpośredniego dostępu do fizycznych rejestrów portu LPT.

    Proponuję żebyś spróbował załatwić sobie dyskietkę startową DOS 6,22 zgrał na to swój program i plik do programowania i dopiero po starcie z czystego DOS-a testował działanie programu i programatora.
    Czasem pomaga.
    Windowsy od 2000 XP w górę nie mają sprzętowego trybu DOS tylko jego emulację. :) { zmora użytkowników starszych programów }.

  • #15 18 Wrz 2005 00:28
    Taki_Wojtek
    Poziom 10  

    Widzę, że piszę mało konkretów...

    1. Prawie masz rację z tym resetem. Napięcie na nóżce RST powinno być "na chwilę" zwarte do masy, a później przez cały czas programowania powinno być równe 12V. Opisana przez Ciebie sytuacja powinna mieć miejsce przy weryfikacji.
    2. Bardzo fajny sposób sprawdzania. Ja robiłem to woltomierzem. Po każdym wpisaniu do portów dawałem instrukcję, która czekała na naciśnięcie klawisza.
    3. Program uruchamiam wyłącznie z dyskietki startowej.

    Dziś moge Wam powiedzieć, że program jest dobrze napisany. Programator działa... Anie nie na moim komputerze. Byłem u kumpla i na jego wolniejszym laptopie wszystko poszło bezproblemowo.

    Czy ktoś umie wytłumaczyć ten paradoks? Port mam sprawny... Sprawdzałem chyba z 1000 razy.:(

    Eeech

  • #16 19 Wrz 2005 21:15
    Jdsoul
    Poziom 23  

    Możesz jeszcze spróbować użyć wytrychu. :) :)

    na sieci chodzą programy typu TRS np. maslo.com do "spowalniania"
    komputera :). Jest to program "wyskakujący" instalujący się na
    przerwaniu zegerowym procesora. Uruchamiasz go tylko w
    sesji Dosowej lub czystym dosie i robi z Pentium IV 1GHz-> Pentium 100.

    Program uruchamiasz, instaluje się w pamięci rozszerzonej i potem uruchamiasz swój program obsługi programatora.

    Taką zabawę wymyślili użytkownicy starych gier dosowych których prędkość zależała od zegara procesora.

    Ostatnia uwaga ten typ programatora powinien współpracować z portem LPT w konfiguracji SPP.

  • #17 19 Wrz 2005 22:37
    Taki_Wojtek
    Poziom 10  

    Masz może gdzieś ten program. Będę dźwięczny. Albo chociaż napisz co on (ten program) robi na przerwaniu.

    Port LPT ustawiony na Uni-Directional. Najprostrzy i najskuteczniejszy pod Dosem tryb.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME