Błąd w AT89S51?

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.

Reply to
Marcin Osiniak
Loading thread data ...

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?

Reply to
A.Grodecki

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

Reply to
Tomasz Sliwa

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

Reply to
Marcin Osiniak

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.

Reply to
Marek Dzwonnik

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

Reply to
A.Grodecki

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

Reply to
A.Grodecki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.