Błąd w AT89S51?
Masz problem? Zapytaj na forum elektroda.pl
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Błąd w AT89S51?
Date: Thu, 25 Sep 2003 12:02:03 -0700
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?
---
Pozdrawiam,
Andrzej Grodecki
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.onet.pl!newsgate.p
From: zielpro_at_nospam_poczta.onet.pl (ziel)
Subject: RE: =?ISO-8859-2?Q?B=B3=B1d?= w AT89S51?
Date: 25 Sep 2003 12:52:42 +0200
On Behalf Of A.Grodecki
Czy ktoś spotkał się z błędnąi nicjalizacją tych nowych procesorów Atmela?
Czy coś powinienem wiedzieć, czy to kolejne "cudowne dziecko" Atmela?
Powinieneś wiedzieć, że to jest kolejne cudowne dziecko.
Podobny problem mam z AVR przy zbyt krótkim resecie,
Niby się resetuje, ale w RAM i rejestrach czasami są śmieci.
Prawdopodobnie wew. procka napięcie na resecie spada do wartości
powodującej wpis do PC zera, ale jest jeszcze zbyt wysokie
aby inicjalizować rejestry.
Albo jakoś inaczej się to odbywa, w każdym bądź razie mnie wychodzi,
że przy resecie są dwie niezależne procedury.
Sorki głupot napisałem, a nie chce mi się poprawiać.
Jest - reset, powinno być - załączenie zasilania.
Jedyne lekarstwo to zewnętrzny WD.
pzdr
Artur
--
Zaloz prywatne forum:
http://forum.onet.pl
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai
From: "Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl>
Subject: =?iso-8859-2?Q?Re:_B=B3=B1d_w_AT89S51=3F?=
Date: Thu, 25 Sep 2003 14:02:25 +0200
A.Grodecki wrote:
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?
---
>
> Pozdrawiam,
>
> Andrzej Grodecki
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.
--
Pozdrawiam,
Marcin Osiniak
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Re: Błąd w AT89S51?
Date: Thu, 25 Sep 2003 21:03:41 -0700
"Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl> wrote in message
news:bkulg3$l6a$1_at_nospam_news.onet.pl...
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.
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
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.internetia.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: "Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl>
Subject: =?iso-8859-2?Q?Re:_B=B3=B1d_w_AT89S51=3F?=
Date: Fri, 26 Sep 2003 01:09:16 +0200
A.Grodecki wrote:
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.
Co do pierwszej czesci to nie mam pomyslow co z tym zrobic poza tymi co
wczesniej podalem, natomiast co do drugiej to tak: kiedys sobie podgladalem
jaki kod generuje Bascom. Ten kompilator na samym poczatku generuje prosty
kod, ktorego zadaniem jest wyzerowanie wszystkich SFR - z tego co pamietam,
to nie zajmowal onb duzo miejsca - kilka bajtow.
--
Pozdrawiam,
Marcin Osiniak
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.supermedia.pl!news.nask.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl>
Subject: =?iso-8859-2?Q?Re:_B=B3=B1d_w_AT89S51=3F?=
Date: Fri, 26 Sep 2003 01:15:27 +0200
mov r0, #0FFh
clr a
et1: mov _at_nospam_r0, a
djnz r0, et1
to jest ten kod generowany przez bascoma, pozniej mamy zaladowanie wskaznika
stosu i przejscie do wlasciwego porgramu
--
Pozdrawiam,
Marcin Osiniak
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Re: Błąd w AT89S51?
Date: Fri, 26 Sep 2003 11:49:16 -0700
"Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl> wrote in message
news:bkvsuq$636$1_at_nospam_news.onet.pl...
mov r0, #0FFh
clr a
et1: mov _at_nospam_r0, a
djnz r0, et1
to jest ten kod generowany przez bascoma, pozniej mamy zaladowanie
wskaznika
stosu i przejscie do wlasciwego porgramu
Mam to, ale do tej pory działało tylko na RAM-ie i było dobrze.
Przytoczony fragment kodu zawiera błędy logiczne związane z zerowaniem
obszaru SFR:
1. Najpoważniejszy: jeśli po resecie PSW nie jest 0 i wskaźnik zbioru
rejestrów nie jest w nim 0 i dodatkowo są śmieci pod adresem 0 to procedura
nie wyzeruje całej pamięci tylko jej fragment
2. Wyzerowanie portów w zależności od układu dołączonego do kontrolera może
spowodować niepożądane stany w urządzeniu. Systemy z procesorami '51
projektuje się na wysokie pozomy logiczne po resecie!
3. traci się informację o bicie PCON.4
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Re: Błąd w AT89S51?
Date: Fri, 26 Sep 2003 13:16:28 -0700
I jeszcze jedno - dałem się zasugerować. Do SFR jest dostęp tylko
bezpośredni, więc omawiana procedura zeruje tylko RAM:) Pozostałe uwagi bez
zmian.
Głupio byłoby kasować licznik rozkazów:)
---
Pozdrawiam,
Andrzej Grodecki
=======
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: =?iso-8859-2?Q?Re:_B=B3=B1d_w_AT89S51=3F?=
Date: Fri, 26 Sep 2003 02:52:21 +0200
Użytkownik "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com> napisał w
wiadomości news:bkvdgk$520$1_at_nospam_nemesis.news.tpi.pl
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.
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.
--
MDz
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!wsisiz.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Tomasz Sliwa" <tomsliwa_at_nospam_wp.pl>
Subject: Re: Błąd w AT89S51?
Date: Fri, 26 Sep 2003 00:32:34 +0200
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.
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.
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
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: "Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl>
Subject: =?iso-8859-2?Q?Re:_B=B3=B1d_w_AT89S51=3F?=
Date: Fri, 26 Sep 2003 01:18:19 +0200
Tomasz Sliwa wrote:
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.
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.
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
Mi się zawsze wydawało, że wszystkie 51 sa kompatybilne. Np program
odczytany z 89C51 i wgrany do 89S8252 wykonuje się bez żadnych problemów.
Oczywiście pisząc o kompatybilności miałem kompatybilnośc modeli mniej
wyposażonych jak 89C51 z bardziej wyposażonymi np: taki 89S8252, który
zawiera to co taki 90C51 + pewne dodatki.
--
Pozdrawiam,
Marcin Osiniak
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Re: Błąd w AT89S51?
Date: Fri, 26 Sep 2003 11:29:40 -0700
"Marcin Osiniak" <marc__kropka__o_at_nospam_wp.pl> wrote in message
news:bkvt3b$68e$1_at_nospam_news.onet.pl...
Mi się zawsze wydawało, że wszystkie 51 sa kompatybilne. Np program
odczytany z 89C51 i wgrany do 89S8252 wykonuje się bez żadnych problemów.
Oczywiście pisząc o kompatybilności miałem kompatybilnośc modeli mniej
wyposażonych jak 89C51 z bardziej wyposażonymi np: taki 89S8252, który
zawiera to co taki 90C51 + pewne dodatki.
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
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news-fra1.dfn.de!eusc.inter.net!newsfeed01.sul.t-online.de!t-online.de!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "A.Grodecki" <ag.skasuj_to_at_nospam_modeltronik.com>
Subject: Re: Błąd w AT89S51?
Date: Fri, 26 Sep 2003 11:52:39 -0700
"Tomasz Sliwa" <tomsliwa_at_nospam_wp.pl> wrote in message
news:bkvq95$o1b$1_at_nospam_atlantis.news.tpi.pl...
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.
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.
Sa siakies zmiany w PCON??? Tego w pdf'ie nie znalazlem. Gdzie toto
znalezc??
PCON.4 - power off flag (POF); str. 8 dokunentu Atmela 2487A-10/01
Moze ktos wie, co jeszcze trzeba poustawiac, zeby program z 89C52 dzialal
na
89S52???
Lepiej kup jeszcze 89C52 i poczekaj aż Atmel usunie babole.
Pozdrawiam,
Andrzej Grodecki
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!fu-berlin.de!news.belwue.de!irazu.switch.ch!switch.ch!cern.ch!new
From: Radoslaw Korzeniewski <radoslaw_at_nospam_korzeniewski.net>
Subject: Re: =?UTF-8?B?QsKzwrFkIHcgQVQ4OVM1MT8=?=
Date: Fri, 26 Sep 2003 23:47:09 +0200
A.Grodecki wrote:
>(ciach)
Lepiej kup jeszcze 89C52 i poczekaj aÂż Atmel usunie babole.
Tylko z kupnem coraz trudniej, a i ceny jakoĹ podskoczyĹy.
Za to 89SXX tanie jak "barszcz"
pozdr
Radek
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!not-for-mai