Página 1 de 2
12F675 não liga, às vezes

Enviado:
29 Dez 2011 11:49
por redtrap
Olá pessoal, já desenvolvi alguns projetos antes com outros pics e não tive este problema mas agora estou testando o 12F675.
Meu problema é simples. Fiz um código no CCS para que quando o circuito fosse alimentado este faria uma piscagem alternada entre dois pinos. O que ocorre é que de cada 15 vezes (aproximadamente) que o circuito é acionado uma ele fica travado. Utilizo oscilador interno 4MHz. Testei resistores de 10K e 1K e até direto no MCLR, usei também NOMCLR, WachtDog (ON/OFF) e o travamento continua. Tenho certeza que é alguma bobeira minha mas não consigo identificar.
A alimentação é uma fonte chaveada 12V acionada por uma foto-célula, utilizo capacitores de 330uF e 100nF para qualquer oscilação (que já e praticamente nula) na entrada e saída de um 7805. Os 470R são saídas para transistores BCs. De resto é só. Segue o código.
#include <12F675.h>
#FUSES NOWDT
#FUSES INTRC_IO
#FUSES NOCPD
#FUSES NOPROTECT
#FUSES MCLR
#FUSES NOPUT
#FUSES NOBROWNOUT
#FUSES BANDGAP_HIGH
#use delay(clock=4M)
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC);
setup_vref(FALSE);
while(1)
{
output_low(PIN_A0);
output_high(PIN_A1);
delay_ms(800);
output_high(PIN_A0);
output_low(PIN_A1);
delay_ms(800);
}
}
Uploaded with
ImageShack.us
Abraço e já aviso que estou estudando ASM mas ainda sei muito pouco para utilizá-lo decentemente.
Re: 12F675 não liga, às vezes

Enviado:
29 Dez 2011 19:34
por andre_luis
redtrap,
Um diodo no MCLR costuma resolver.
Posta o circuito pra conferirmos se o problema pode estar sendo potencializado pelo hardware.
+++
Re: 12F675 não liga, às vezes

Enviado:
01 Jan 2012 20:43
por redtrap
Olá companheiro André, antes de tudo obrigado pela dica. Mas como fica a configuração deste diodo? E qual diodo?
Pelo que pesquisei é um 1n4148 em série com o resistor, ele serve apenas para a queda de tensão?
Aí posto o desenho com a modificação e se deu tudo certo.
Abraço e novamente obrigado
Victor

Enviado:
01 Jan 2012 21:23
por ÁgioFelipe
Acho que o problema está no carga que vc está acionando, os BCs tão acionando relés? Esses relés acionam oq?

Enviado:
02 Jan 2012 07:05
por fabim
Amigo, por acaso você esta chaveando algum tipo de carga indutiva ?
Só pelas suas palavras deu a entender que.
Não temos absolutamente idéia do que possa ser!!! hehe
Fora o CCS né!!

Enviado:
02 Jan 2012 18:01
por andre_luis
Apenas um palpite :
Experimenta substituir a configuração do fuse NOBROWNOUT por BROWNOUT.
+++

Enviado:
02 Jan 2012 18:32
por Flaviofrc
Coloca um capacitor de 100nF no pino do Master Clear vide pagina 58 do data sheet.

Enviado:
02 Jan 2012 18:36
por redtrap
Olá pessoal.
A carga é resistiva. Os Bcs chaveam dois tip127 cada um e cada um destes cargas de 1,8A de leds, apenas leds e resistores.
Flaviofrc e Andre farei testes com as dicas.
Mais uma pergunta, alguém já viu isso acontecer com esse e outros PICs?
Obrigado pessoal
RT

Enviado:
02 Jan 2012 18:47
por mastk
Já vi RESETs causado por ruido nos 16F628, chavear uma carga de 2A, dependendo da fonte e capacitores pode ser o motivo do problema.

Enviado:
02 Jan 2012 19:03
por Flaviofrc
Já vi acontecer com o F833 e F628A, mais tambem depende do layout da placa, comprimento e largura das trilhas etc...

Enviado:
02 Jan 2012 19:14
por andre_luis
Já vi acontecer de a queda do VCC no pino de resset não reinciciar o microcontrolador, mas avacalhar os registradores voláteis, o que parece ser o seu caso.
+++

Enviado:
03 Jan 2012 08:58
por redtrap
Então companheiros, carga neste caso eu descartei pois já tirei do circuito, usei fontes chaveadas de 12V e 9V, até fonte estabilizada regulada e continua a mesma coisa, estou fazendo os testes com o diodo e o capacitor no MCLR e BROWNOUT. Quanto a Layout, testo na placa que desenvolvi e nada, testo no protoboard e nada... o estranho não é que ele funciona e por algum tempo para mas sim quando lido a fonte ele não responde nada....
Ah, também utilizei outros 5 MCUs e nada ainda.
Acham que pode ser algo com o clock interno que estou utilizando?
Vou procurar alguns cristais aqui pra testar com externo.
Abraço e obrigado pelo aprendizado.

Enviado:
03 Jan 2012 09:57
por _blackmore_
.. usei também NOMCLR, WachtDog (ON/OFF) e o travamento continua...Os Bcs chaveam dois tip127 cada um e cada um destes cargas de 1,8A de leds
qdo vc liga o WDT está limpando ele? e a carga de 1.8A ... a fonte é suficiente para tal? tem um capacitor ligado entre o + e o - direto no uC? vc está alimentando o circuito externo com os mesmos 5V do microcontrolador ou com os 12V da fonte? o BOR como está configurado?

Enviado:
03 Jan 2012 10:14
por fabim
Uma coisa que aconteceu com um amigo meu uma vez usando o mikroC.
Ele confiou nos valores de reset default do OPTION o o outro que controla as interrupções, não lembro o nome agora.
Por motivo conhecido ja q pic é bosta, as vezes aqueles valores default, iniciavam o pic com interrupção do GP2 ligado.. Se nao tem o vetor 0x04 pra tratar ja viu né ?
Experimenta fazer a inicialização do INTCON e OPTION_REG na mão. E veja se resolve.
RESOLVIDO!!!

Enviado:
06 Jan 2012 13:41
por redtrap
Olá Pessoal
Seguei as dicas do andre_teprom e Flaviofrc.
Adicionei um 1n4148 e um cap 100nF no MCLR e o problema não apareceu mais, segue como ficou o FUSES do software e o circuito:
#FUSES NOWDT
#FUSES INTRC_IO
#FUSES NOCPD
#FUSES NOPROTECT
#FUSES MCLR
#FUSES NOPUT
#FUSES NOBROWNOUT
Fiz testes com o WDT e o Brownout, mas não fizeram diferença. Forcei também o NOMCLR e aí também dá problema. Mas o que me resolveu mesmo foi o diodo e o capacitor no MCLR.
Abraço e muito obrigado a todos
Uploaded with
ImageShack.us