Problema con power down mode in 8.051

S

seemanta

Guest
Salve,

Ho un chip RTC (DS12887) afferma che periodicamente la linea IRQ che è collegato alla linea INT0 della mia AT89S52.

Ho visto che se il mio micro è in modalità idle, il PVR per INT0 viene chiamato periodicamente, senza alcun intervento.

Tuttavia, se il mio micro è in power down mode, l'ISR non viene chiamato.In power down mode l'unico modo per richiamare l'ISR è a breve il perno INT0 a terra momentaneamente.

Io non sono in grado di capire perché manualmente corto circuito a terra funziona in modalità PD, ma affermare la linea IRQ della RTC non funziona.

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Qualsiasi aiuto / puntatori?A causa di questo, io non sono in grado di attuare power down mode nel mio orologio digitale

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Modalità Standby sembra funzionare, ma è spegnere la modalità in cui mi sono più interessato.

Qualsiasi aiuto sarebbe molto apprezzato!PS Come per la scheda di dati, AT89S52 sembra wakeup da power down mode da interrupt esterna.Sono quindi incapaci perché questo non funziona!

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />
 
Hi Seemanta,
Tu non hanno ancora gotout di questo problema, a quanto pare, la INTO pin in power down può avere bisogno di affondare più attuale, che RTC non è in grado di affondare?, Provare a utilizzare un buffer in mezzo, è solo la mia ipotesi.Si prega di controllare anche il livello logico di IN quando RTC guida il PIN.
Saluti,
Laktronics.Aggiunto dopo 4 ore 16 minuti:Salve,
Più che il livello del segnale, è l'ampiezza del segnale che è importante.Il INT0 dovrebbe essere attivato a livello, in questo caso e il livello del segnale deve rimanere basso, fino a l'oscillatore si stabilizza e passa alla routine di interrupt.Quindi, o allungare il polso un po 'con un monoshot CMOS o cancellare un flipflop HC che genererà INT0-e nella routine di impostare il flipflop usind una spilla porta, se disponibile.

Saluti,
Laktronics.

 
Grazie molto per la risposta!
Solo un pensiero, posso usare un transistor per lo stesso?Posso collegare l'IRQ alla base e quindi utilizzarlo come un interruttore per ottenere una alta corrente e guidare il pin IRQ.

Il motivo per cui sono più interessato per l'utilizzo di un transistor perché ho già un po 'a casa e non ho bisogno di andare 15 KM di nuovo per lo shopping per le parti che hai citato.

A condizione, naturalmente, è sufficiente impulso durata.In caso contrario, come lei ha detto che avrei dovuto usare un flip-flop.Ma per che avrei dovuto fare uso di un codice PIN porto franco, che è quello che non ho al momento

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Io sono condannato, I guess

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Piangi o Molto Triste" border="0" />saluti,
Seemanta

 
Salve,
Molto probabilmente il problema non è il problema dell'unità, che sarebbe il problema di larghezza di impulso.Provare se è possibile allungare il polso e si applicano a interrompere con un cancello e un circuito RC, utilizzando FF sarà un lavoro pulito.Suppongo che si sta già utilizzando livello di attivazione di interrupt?Dimmi come è molto più la larghezza della uscita di impulso da RTC?Se c'è un problema.IT vanno risolti per ottenere su di esso, non altri collegamenti.
Saluti,
Laktronics.

 
Hi Laktronics,
Ho appena controllato la scheda tecnica del chip DS12887 RTC.Ecco ciò che è scritto:

Quote:L'uscita IRQ

rimane bassa fino a quando il bit di stato causato l'interrupt è presente e la

corrispondente interrupt-enable bit è impostato.
Il programma del processore normalmente

legge il registro C per cancellare il pin IRQ.
Il pin di reset cancella anche in attesa

interrupt.
Quando non interrompere le condizioni sono presenti, il livello IRQ è nel highimpedance

stato.
 
Salve,
Siete molto giusto.Prima di provare con il transistor, si misura con un mutimeter quale segnale di basso livello hai trovato quando RTC sta interrompendo, come lei ha detto, se la condizione dura fino a quando non si cancella, si dovrebbe essere in grado di controllare i livelli.Anche durante l'utilizzo di transistor, aver cura di applicare la logica basso per interrompere la linea.Inoltre, in quali condizioni questo interrupt è generato ora?
Saluti,
Laktronics

 
Quote:Inoltre, in quali condizioni questo interrupt è generato ora?

 
Salve,
Interrupt dopo l'aggiornamento è molto bella.Ora hai misurare il livello quando la CPU è stato messo in power down mode e RTC interrupt collegato a INT-pin di CPU.Se poi anche se si legge un buon livello 0, ciò che più ci si può aspettare da RTC?Sto andando da sua dichiarazione che, quando INT-pin è in corto a massa, la CPU riprende dalla modalità sleep.
Inoltre si prega di confermare che la CPU è programmato per l'attivazione del interrupt, che a mio avviso dovrebbe essere il caso, come cortocircuito altrimenti esterni dovrebbero avere fallito LIVELLO.Se l'INT-line mostra 0Volts molto vicino in modalità sleep quando l'uscita di IRQ di RTC va bassa, ho poca speranza in un uso dei transistor, il problema è un altro.
Saluti,
Laktronics

 
Salve,

Tu devi prenderti cura delle seguenti se RTC livello del segnale IRQ è situato su OK:
1.Interrupt esterna per il livello trigger e non solo per i bordi attivazione del programma.
2.Disabilita interrupt esterna ai interrupt esterna routineand consentire prima di andare in sleep mode.
3.Dal momento che lei ha detto, stai leggendo il registro C all'interno della routine di interrupt esterni, sarebbe equivalente alla fase 2 se stesso.

Con questo fatto molto.il software dovrebbe funzionare a meno che la versione di chip non supporta svegliarsi dal sonno con interrupt, può essere devi contattare il supporto Atmel per ulteriori informazioni.Quello che si vede da int corto-pin a terra da un filo, può essere dovuto al tuo iniezione po 'di rumore nel int pin in questo caso?

Saluti,
Laktronics

 
Hi Seemata,
Che cosa è successo al tuo problema?Credo di avere la soluzione per voi.Se da Atmel catalogo S52 non è chiaro, il confronto con S2051, sembra che si deve dare solo un impulso di circa 3msec per l'ingresso INT.Così, almeno a scopo di test utilizzare un monoshot CMOS e ottenere un impulso negativo di circa 3 msec da RTC INTREQ-(avete bisogno di tirare su questo pin come fuga è aperto) e applicare l'impulso a INT-pin di CPU.Nella tua routine di interruzione, anche di controllo per l'INT-pin ad arrivare in alto e quindi avviare l'esecuzione di interrompere la routine.
Sono sicuro che dovrebbe funzionare.
Saluti,
Laktronics

 
Hi Laktronics,
Grazie per il vostro aiuto persistenti in questa materia!Sono grato.Sì ho fatto un po 'di ricerca su questo tema.
Ho anche provato ad utilizzare un circuito RC di limitare la durata degli impulsi LOW IRQ.Purtroppo, che non ha funzionato

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Così sono arrivato alla conclusione che un circuito un colpo è la soluzione migliore.
Ma non ho mai usato uno prima così prendere un certo tempo per saperne di più.
Il mio problema principale è che non sono in grado di scoprire quale IC da utilizzare come monoshot.
Questa può essere una domanda stupida, ma puoi dirmi che IC si fa riferimento qui quando si dice 'CMOS Monoshot'?

Anche se so che è un circuito monoshot (a multivibratore monostabile) e sa anche che può essere fatto utilizzando un timer di 555, il mio problema è che non posso utilizzare un circuito integrato molto voluminosi o grande, perché già il mio prototipo è stato fatto e poco spazio viene lasciato sul circuito.

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Come ancora una volta, mi è grato per il vostro aiuto!(E aggiunge aiutare punti troppo

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />

)

saluti,
Seemanta

PS Nel mio progetto attuale non sto utilizzando qualsiasi esterni pull up da quando ho capito che porta P3 (che contiene il codice PIN / INT0, ha un interno 10k pull-up. L'orologio sembra funzionare. Quindi ho ragione di eliminare il pull-up ?

PPS Un'altra questione che ho avuto è stata, se si aggiunge un altro componente elettronico attivo in forma di questo monoshot IC, non posso essere in aumento il consumo di energia del circuito nel suo insieme e sconfiggere la fine del potere verso il basso?
Mi auguro che l'aumento del consumo di energia con l'aggiunta di uno monoshot sarà inferiore a quello che farà risparmiare andando in power down mode!

 
Hi Seemanta,
Bene che non hanno lasciato il thread.
1.È possibile utilizzare NE555 come monoshot solo per testimg fini, senza preoccuparsi del consumo di energia, dal momento che il punto è quello di indagare la condizione del potere verso il basso.In realtà mi riferivo a NE555 stessa in versione CMOS, penso che il numero di parte è NE7555 e il suo consumo di energia sarà giustificabile in applicazioni PDN.È possibile mout questo IC su una daughterboard piccola e montare da qualche parte nel vostro orologio del progetto senza alterare il layout PCB principale.Non ho suggerire la soluzione RC in quanto richiede grande condensatore per la generazione di tali ritardi e un diodo di bloccaggio per la protezione, saranno necessari anche e ancora il calendario non può essere calcolato in modo corretto.
2.Il pullup su INT-pin è GIUSTO nel vostro caso di specie.

Saluti,
Laktronics

 
Thanks a lot for your help!
Cercherò la variante 555 che hai citato e ti faccio sapere cosa è successo al mio problema!

saluti,
SeemantaAggiunto dopo 1 ore e 42 minuti:Ho anche venuto a sapere di chip 74LS121.Sembra che questo è uno dedicato un colpo IC e credo che il numero di periferiche necessarie qui sarebbe molto meno (diverso da un resistore standard e un condensatore standard).

Cercherò sia 555 e 74LS121 e ti faccio sapere i risultati.

saluti,
Seemanta

 
Io ho usato un 74LS121 e ha funzionato!

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Grazie molto per la vostra guida costante, Laktronics!

Tuttavia ho due domande:

1.Non aggiungendo l'aumento 74LS121 la corrente e quindi aumentare il consumo di energia e di compensare eventuali benefici che avrebbe ottenuto andando a power down mode?

Ho intenzione di misurare la corrente assorbita in condizioni normali e modalità di PD e poi scoprire la media attuale realmente decidere se avrei poi distribuire il 121.Ma volevo sapere se altri hanno avuto un'esperienza simile a questo.

2.Il mio codice simile al seguente:

Codice:ORG 0003H; per ISR / INT0

Lcall INT0_ISR

RETIORG 0030H

PRINCIPALI:; codice linea principale

; po 'di codice ...

; ancora di più il codice ...

; ancora un po 'di codice di più ...

QUI: MOV PCON, # 02H; intenzione di power down mode

SJMP QUIINT0_ISR:; ISR per la mia interrupt

; fare cose

; fare di più roba

RET
 
Salve,
Bello sapere che i lavori in modalità Sleep.

1.Bene, il modo in cui si stanno facendo tutto nella routine, è così che dovrebbe essere quello di mettere la CPU torna in sleep mode utilizzando un 'sjmp qui' subito dopo l'istruzione sonno.In alternativa, è possibile effettuare il inerrupt routine piccole e mettere la maggior parte del restante programma subito dopo l'istruzione dormire con un salto finale per l'istruzione del sonno, anche se io non sono riuscito a trovare alcun vantaggio nel farlo.
Tra l'altro, l'insieme di codici che devi fare ogni secondo può essere già lì prima prima volta l'accesso alla modalità sleep, che cosa si può fare è di non ripetere tutti i codici di nuovo nella routine, invece appena messo un salto dopo l'istruzione di sonno a quello fissato il codice, in modo che, dopo l'esecuzione di tali codici, il programma verrà eseguito in automatiaclly l'istruzione sonno come la prima volta.Ricordo, una volta che l'istruzione viene eseguito sonno, CPU non fare niente altro fino alla collegare interrupt.

2.Non utilizzare LS121, utilizzare un HC121 o un CMOS da 555 a risparmiare energia.

All the best,
Saluti,
Laktronics

 
Grazie molto per la risposta!

Ho un NXP 7.555 chip.Si tratta di una variante CMOS a bassa potenza?Ho anche un NE555 da ST Micro.Qual è la migliore delle due?

Anche io ho sentito dire che HC e HCT sono due serie diverse.Quali sono le differenze tra i due.Entrambi presumo siano varianti a bassa potenza di 74LS121, dico bene?

Ma vorrei andare con il migliore dei due.Inoltre, c'è una variante HC della mia AT89S52 troppo?Credo AT89S52 già utilizza la tecnologia CMOS così consumo di energia è già basso, giusto?

Sorry about tali domande stupide!

saluti,
Seemanta

 
Salve,

1.7555 è un dispositivo a bassa potenza.Ma non usare pianura 555 IC.

2.Dispositivi HCT sono compatibili con l'interfaccia TTL, ma nella vostra applicazione in quanto non si utilizza TTL, HC grado di lavorare bene e fornirà margini di rumore migliore.

3.Credo che si dovrebbe essere soddisfatti per il momento con la dissipazione di potenza di S52 in modalità powerdown, non so se pinouts di 89S2052 sarà sufficiente tue esigenze, può avere probabilmente anche minore esigenza attuale.

Saluti,
Laktronics

 
Salve,
Sta dicendo che il mio progetto non è TTL?Ho avuto l'impressione che tutti i miei componenti sono stati TTL base.

Perché, tutto sto usando è un AT89S52 e un DS12887.E sì, vorrei andare a prendere alcuni componenti HC e provare la stessa cosa.
Ti terrà aggiornato!

saluti,
Seemanta

 

Welcome to EDABoard.com

Sponsor

Back
Top