Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

AT89C2051 - szybszy reset

clip7 28 May 2006 00:28 858 4
  • #1
    clip7
    Level 23  
    Do tego układu dołączona jest pamięć i inne elementy. Całość zlicza impulsy. Jednak reset tego układu trwa ponad 5 sekund a to jak dla mnie za długo. Czy jest możliwość przyspieszenia działania resetu, nawet za cenę likwidacji pamięci (nie zależy mi na tym, żeby układ pamiętał po wyłączeniu zasilania)?
    pozdrawiam
  • #2
    Witgol
    Level 20  
    W dokumentacji PDF od procesora można poczytać (w swobodnym tłumaczeniu):
    "RST
    Wejście Resetu. Wszystkie wejścia/wyjścia są zerowane do stanu 1 jak tylko wejście RST ustawione będzie w stan 1. Utrzymanie pinu RST w stanie 1 przez 2 cykle maszynowe gdy pracuje oscylator zeruje procesor.
    Każdy cykl maszynowy zajmuje 12 okresów oscylatora lub zegara zewnętrznego."
    Tak więc wyzerowanie procesora przy typowym kwarcu 11.059MHz zajmować musi co najmniej 2us . Ale oczywiście jest to tylko czas potrzebny do resetu hardware'u wewnętrznego. Potem następuje start oprogramowania, co zajmować musi następne kilkadziesiąt (czasem kilkaset) mikrosekund - parę rozkazów skoków, rozkazy ustawiania początkowego rejestrów sterujących, przygotowanie zmiennych używanych w oprogramowaniu itp.
    Ostatecznie na całkowity czas od momentu resetu do wystartowania urządzenia potrzebny jest czas na:
    1) standardowy reset: co najmniej 2us; niestety o realnym czasie decydować będzie zastosowany zewnętrzny (podłączony do pinu 1) układ generujący impuls resetu. Jeżeli wejście RST będzie trzymane w stanie wysokim przez 5sek, to oczywiście minąć musi tyle czasu, zanim procesor zacznie działać. Jeżeli istnieje specjalny układ resetu zewnętrznego, należy sie mu bacznie przyglądnąć, aby nie generował zbyt długiego impulsu resetu (oczywiście będzie to uwarunkowane działaniem tego układu, napięciami zasilania lub innymi rzeczami); Jeżeli nie zastosowano specjalnego układu resetu, trzeba sprawdzić wartość pojemności dołączonej do pinu RST. Bardzo duża wartość tej pojemności bardzo wydłuży czas trwania resetu.
    2) jeżeli z resetem jest wszystko w porządku, to oczywiście czas od momentu zakończenia (!) impulsu resetu do podjęcia normalnej pracy przez procesor zależy już tylko od oprogramowania zwartego w procesorze. Jeżeli to właśnie oprogramowanie jest przyczyną pięciosekundowej zwłoki - jedyną radą jest już tylko zmodyfikowanie tego oprogramowania.
    Nie ma innej możliwości, aby przyspieszyć działanie układu po resecie.
    Pozdrawiam
  • #3
    cyberdar
    Level 31  
    Witam

    Czy należy rozumieć, że po włączeniu zasilania układ resetuje się 5 sekund ?!?!? Jeśli tak to masz coś nie tak z elementami w układzie resetu. Innej możliwości nie ma.

    --
    pozdrawiam
  • #4
    clip7
    Level 23  
    Miałem na myśli skasowanie stanu licznka a nie reset ukladu.
  • #5
    cyberdar
    Level 31  
    Witam

    Bez obejrzenia programu trudno będzie coś doradzić - wnioskuję, że masz gdzieś błąd. Ale możesz sobie zadeklarować obsługę przerwania i w obsłudze przerwania kasować licznik. Do wejścia podłączysz oczywiście jakiś uswitch.

    --
    pozdrawiam