Błąd w AT89S51?

Sep 25, 2003 7 Replies

Jeżeli do resetu używasz kondensatora, to moze należy lekko zwiększyc jego pojemność np do około 10uF. Poza tym można dać opornik ok 10k między wejście RST, a masę, by to nie wisiało w powietrzu, po naładowaniu kondensatora. Dodatkowo mozna dac mały kondensator około 10 do 100nF włączony mozliwie blisko wyprowadzeń zasilających procesor.

Może, któras z modyfikacji pomoże i zażegna problem.

Witam



Czy ktoś spotkał się z błędnąi nicjalizacją tych nowych procesorów Atmela?



Mam urządzenie wykonane w wielu setkach egzemplarzy, które zawierało kolejno na przestrzeni lat 87C51, 89C51 a teraz ma być 89S51. Do tej pory układ pracował bez pudła. Po przejściu na 89S51 (oczywiście uwzględniłem AUXR, AUXR1, zmiany w PCON) okazało się, że układ nie działa pewnie. To znaczy jeśli już wystartuje (95% przypadków) to jest dobrze, ale problem pojawia się przy zewnętrznym sprzętowym resecie. Potrafi wejść w dziwny stan, zazwyczaj wymuszając poziomy L na większości portów. Pomaga tylko chwilowe wyłączenie zasilania. Ponadto okazało się, że nie do końca można ufać defaultowym wartościom SFR po twardym resecie. Programuje się poprawnie i równolegle i przez ISP.



Czy coś powinienem wiedzieć, czy to kolejne "cudowne dziecko" Atmela?


Witam

Mam podobny problem z 89S52 wiec podlacze sie do pytania. Zaprogramowalem go programem wprost z 89C52 i nie dziala. Uwzglednilem AUXR i AUX i dalej nie dziala. Urzadzenie ma zewnetrznego Watchdoga.

Sa siakies zmiany w PCON??? Tego w pdf'ie nie znalazlem. Gdzie toto znalezc??

Moze ktos wie, co jeszcze trzeba poustawiac, zeby program z 89C52 dzialal na

89S52???

Pozdrawiam Tomek

mov r0, #0FFh clr a et1: mov @r0, a djnz r0, et1

to jest ten kod generowany przez bascoma, pozniej mamy zaladowanie wskaznika stosu i przejscie do wlasciwego porgramu

Użytkownik "A.Grodecki" <ag.skasuj snipped-for-privacy@modeltronik.com napisał w wiadomości news:bkvdgk$520$ snipped-for-privacy@nemesis.news.tpi.pl

Na nieco zbliżony problem naciąłem się kiedyś w avr 2313 pracujących z wewn. resetem. Po wyłączeniu i ponownym włączeniu zasilania procesor nie wstawał, jeżeli w międzyczasie Vcc nie zdążyło spaść poniżej 0.7V. Sprawę rozwiązało dołożenie zewn. generatora RST\ (MCP100), więc nie zgłębiałem tematu do końca.

Urządenie jest klasy przemysłowej. Ma porządny, pewny wdog zewnętrzny z dobrze uformowanym i długim impulsem restartu. Zasilanie też jest raczej:) poprawne. Sutuacja z błędnym startem ma miejsce, kiedy procesor jest wyprowadzany przez reset ze stanu obniżonego poboru mocy, wtedy potrafi się zawiesić i trudno powiedzieć co się dzieje w środku. Natomiast źle ustawiony obszar SFR zdarza się przy włączeniu zasilania i konieczna jest jawna inicjalizacja wszystkich krytycznych rejestrów co oczywiście bezsensownie wydłuża ledwie mieszczący się program.

Ech, chyba trzeba będzie przepisać program na PIC-a

Niestety producenci przez kompatybilność zwykle rozumieją zgodność podstawowych zasobów oraz ALU. 89S51 ma po resecie uaktywniony reset wewnętrznym wdogiem którego przecież w wersj C nie ma. Jeszcze lepszy numer wyciął Microchip w układzie 12F675 (następca 12C674). Nie dość że poważne zmiany w rejestrach to jeszcze po resecie uaktywnione analogowe funkcje pinów! Co więcej analogowe funkcje pinów są włączane w 2 niezależnych rejestrach! Oczywiście kompilator nie ostrzega o tym i jeśli ktoś nie przeczytał dokładnie CAŁEGO manuala (ta informacja nie jest w żaden sposób wytłuszczona i jest tylko wzmianka w jednym miejscu) to przeniesiony program działa, ale dziwnie - porty działają albo nie, w zależności jaki rodzaj rozkazu został użyty.

Pozdrawiam,

Andrzej Grodecki

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required