Ir ao conteúdo
  • Cadastre-se

Outro AT89S52 não entrando em rotina quando liga (às vezes)


Ir à solução Resolvido por Maria Cristina Oliveira,

Posts recomendados

Meu AT89S52 está numa placa de desenvolvimento que tem leds, chaves, display lcd, etc. E agora tem também um RTC DS 1307. Configurei tudo certinho, horário, data e coloquei a bateria CR 2016. 
Só que quando eu desligo e ligo a placa de desenvolvimento, mesmo com outro programa no AT89S52, às vezes ela não pega de primeira, ela não entra em rotina, ela fica desorientada com todos os leds acesos, tocando o buzzer e o lcd com todos os pixels acesos.

Ai eu desligo e ligo de novo: uma, duas ou três vezes até que o programa no AT89S52 entra rodando normal.

(Reparei que isso acontece também num outro circuito que eu tenho também que usa o PIC 16F913. Quando eu ligo a alimentação, às vezes ele não inicializa como deveria, fica desorientado, ele não entra em rotina. Aí eu desligo e ligo de novo e ele entra em rotina normalmente.)

Só que na placa com o AT89S52 e com o DS1307, o problema é mais sério porque quando eu ligo a alimentação e o AT89S52 fica desorientado, ele envia dados confusos para o DS1307 alterando o horário e a data (até então corretos) preservados pela bateria CR2016.

Será que esse problema tem solução? Agradeço qualquer ajuda. :help:
 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Isso tá com cheiro de falta ou problema no circuito de reset: geralmente um simples R & C

ex.

Reset.jpg

Alguns tem que trocar o R e C de lugar.

 

Uma passo adiante (ainda não é seu momento) é o tal de circuito power good e brownout

external_brown_out.PNG?resize=407,223&ss

que só libera o processamento depois da vcc acima do aceitável. Alguns mc têm isso configurável por dentro. Consulte o d.s. do seu.

 

Ah há também a questão da estabilidade da alimentação. Ela deve ser bem estável pelos motivos óbvios.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@if. Oi:

Eu desconfiei que era um problema de power-up (ou power-on-reset, não sei qual é a diferença). Fiz um circuito RC que achei na internet mas não estava sendo muito eficaz...

 

Aí inverti os componentes, seguindo sua dica (capacitor ligado ao terra, resistor ligado ao VCC) e alterei os valores para ficar mais tempo resetado (enquanto a fonte se estabiliza). Funcionou. 

 

Pensei também em fazer um timerzinho que uma vez acionado com o ligar da fonte, mantivesse o pino 9(RST) do AT89S52 em nível 0 por 1 segundo (ou mais), tempo suficiente para a fonte se estabilizar, mas aí seria desperdício de componentes...

 

Agradeço mais uma vez a sua ajuda! 😊

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
14 horas atrás, Maria Cristina Oliveira disse:

seguindo sua dica (capacitor ligado ao terra, resistor ligado ao VCC)

ops... tem boi na linha...

O9c0T.jpg

image-19.jpg

De fato nivel 1 = reseta o bixo. Confere aí..

 

14 horas atrás, Maria Cristina Oliveira disse:

um timerzinho que uma vez acionado com o ligar da fonte, mantivesse o pino 9(RST) do AT89S52 em nível 0 por 1 segundo (ou mais), tempo suficiente para a fonte se estabilizar, mas aí seria desperdício de componentes...

Alguém copiou sua ideia, voltou no tempo e ...

https://d1d2qsbl8m0m72.cloudfront.net/en/products/databook/datasheet/ic/power/voltage_detector/bd4142hfv-e.pdf

:tw_yum:

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@if.

Oops! Fiz confusão...  😬    

Montei corretamente mas na hora de falar, falei errado.
É que eu estou mexendo com PIC16F913 e com AT89S52 ao mesmo tempo e troquei as bolas.
Montei primeiro com o capacitor ligado ao terra (não funcionou) e depois mudei conforme esse desenho e aí funcionou.

image.png.ea4ec14b2182299bcbb25f7c0b69a156.png

 

Realmente o nível lógico 1 reseta o AT89S52 e o nível lógico 0 reseta o PIC16F913. Inverti tudo, mas no fim deu tudo certo!

Obrigada pela ajuda novamente. 😊

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...