Problemas com PIc16f628A. Funciona algumas vezes, outras não

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Problemas com PIc16f628A. Funciona algumas vezes, outras não

Mensagempor geraldomelo » 22 Dez 2008 02:57

Pessoal , depois do tópico sobre a placa de fenolite , onde o pic não funciona , resolvi fazer uma plca sem nada , só com o pic . Também fiz o plano terra . ai que tá , eu tenho que ligar e desligar umas várias vezes , para 1 dessas ele funcionar .. Bom , oque tenho reparado :

1) o cristal está oscilando em todos os testes e todas as vezes que ligo e desligo .. ele oscila , mas o pic não funciona , ou seja , funciona apnas algumas vezes

2) se nas poucas vezes que ele funciona , então creio que não seja problema de software , pois se não , nunca funcionaria , e não apenas algumas vezes , mas mesmo assim eu estou mandando o código para vcs darem uma olhada . eh só um programa para testar .. são 3 PWMs por software.

3) Tenho notado um ruido na entrada de uns 130mV , mas a frequencia eh bem grande , na faixa de uns 60 mhz ... não sei se isso seria o problema .. tbm vou anexar aqui a foto do scope e o layout da placa .

4) achei que tinha danificado o pic , mas ai coloquei um outro e parece que o problema ficou pior ..

pessoal , estou a 1 semana ou mais em cima disso e não to conseguindo acha a mancada .. poder ser alguma coisa simples que não estou vendo ..

O Programa :

#include <16F628A.h>
#fuses HS,NOWDT,PUT,BROWNOUT,NOLVP,noMCLR
#use delay(clock=20000000)
#include <d:\Projetos_CCS\devices\regs_16.h>
#byte cmcon = 0x1f

#use fast_io(a)
#use fast_io(b)

#bit botao0 = portb.0
#bit botao1 = portb.1
#bit botao2 = portb.2
#bit pino_b3 = portb.3
#bit pino_b4 = portb.4
#bit pino_b5 = portb.5
#bit pino_a0 = porta.0
#bit pino_a1 = porta.1
#bit pino_a2 = porta.2


int pwm,valor1;


int const tabela[40] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40};


#int_timer0
void trata_int()
{
set_timer0(125+get_timer0());
pwm++;

}

//***************************************************************************

void gera_pwm (void)
{

if (pwm>=40)
{ pino_a0=1;
pino_a1=1;
pino_a2=1;
pwm=0; }

if(pwm==tabela[valor1]) pino_a0=0;
if(pwm==tabela[valor1]) pino_a1=0;
if(pwm==tabela[valor1]) pino_a2=0;


}
void main (void)
{

Delay_ms(1000);
cmcon=7;
trisa=0;
trisb=7; // pinos b0,b1 e b2 como entrada para os botões
rbpu=0 ;
portb=0;

setup_timer_0(rtcc_internal|rtcc_div_1);
enable_interrupts(GLOBAL|int_timer0);



//*****************************************************************




while(true)
{

int16 valor;

if (valor==10000)
{valor1++;
valor=0;}

if (valor1==40)
{valor1=0;
porta=0;
delay_ms(500);}

gera_pwm();

if (!botao0)
{porta=0;
delay_ms(1500);
}

if (!botao1)
{porta=0;
delay_ms(500);
porta=0b00000111;
delay_ms(500);}

if (!botao2)
{int a;
for(a=0;a<=20;a++)
{porta=0;
delay_ms(20);
porta=0b00000111;
delay_ms(20);}
}

valor++;



}}

aqui vai o layout da plaquinha só pra teste :

Imagem
Imagem

Agora aqui , vai a imagem da ponta do scope bem no pino de alimentação (VDD) do pic

Imagem
Imagem

nessa imagem o osciloscopio esta com a base de tempo em 0,05 microsegundos e a tensão em 20mV , ou seja a frequencia eh da casa dos 50mhz pra mais e a oscilação eh de +- uns 100mV ... Isso eh normal ou não ... será que alguém que tenha scope poderia medir o VDD no pino do pic com o scope configurado da mesma forma . ah , a tensão no scope tbm tá em AC pra poder ver a onda no centro da tela ..

a caneca metalica do cristal tbm esta aterrada .. ...

Bom , alguém poderia me dar uma ajuda ??

abs pra vcs e feliz natal ...
geraldomelo
Byte
 
Mensagens: 267
Registrado em: 14 Out 2006 16:53
Localização: Ribeirão preto - SP

Mensagempor msamsoniuk » 22 Dez 2008 09:47

eu vi que vc nao colocou regulador de 5V na placa... que fonte de alimentacao vc usa ?
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor vtrx » 22 Dez 2008 11:28

Qual programa voce usou para gerar a placa?
Faça um teste,use o oscilador interno do pic eveja oque acontence.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2240
Registrado em: 20 Abr 2008 21:01

Mensagempor msamsoniuk » 22 Dez 2008 13:02

nao vejo nenhuma margem para problema eletrico no seu layout, jah vi colegas meus usando pic na protoboard soh com o cristal plugado e um capacitor de desacoplamento... condicoes com certeza bem piores! :)

mas por outro lado eu vejo que existe sempre um certo pragmatismo em relacao a fontes e todo mundo coloca um 7805 nas placas e ateh mesmo no protoboard, por isso questionei em relacao a fonte. uma outra situacao pode ser o cristal, de modo que vc poderia tentar com um cristal menor ou um oscilador TTL de 4 pinos.

outra coisa que poderia fazer eh testar na mesma placa um software mais simples, tipo pisca led. as vezes eh pau no software e vc esta quebrando a cabeca com o hardware atoa.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor renatokodaira » 22 Dez 2008 13:26

Pode ser solda fria (mal soldada) em algum pino ou no cristal ou capacitores. Por via das duvidas, refaça as soldas. Jah vi muito circuito nao funcionar e funcionar de vez em quando por causa de solda mal feita.
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor Gilsom » 22 Dez 2008 17:46

O pino 4 quando eu não vou usar eu nunca deixo ele flutuando do cheito que esta eu sempre coloco um rersistor de 10k e um capacitor de 100nF.
Gilsom
Nibble
 
Mensagens: 50
Registrado em: 15 Dez 2006 11:22

Mensagempor ffcprog » 22 Dez 2008 18:38

só uma perguntinha.
Você esta fazendo estes vários testes, em um unico PIC16F628?
Ou ja trocou por outro e aconteceu o mesmo erro ?
ffcprog
Byte
 
Mensagens: 145
Registrado em: 14 Fev 2007 23:16

Mensagempor jorgeluiz » 23 Dez 2008 00:38

so' pra desencargo de consciencia, liga o fusivel do MCLRE (pino 4) no programa, e bota ele direto no Vdd (+). Sem resistor. Qual o valor dos capacitores ligados ao cristal? (eu geralmente uso 22picoF, pra HS).
So' mais uma coisa. 20 MHz e' o limite de clock desse pic. Nao da pra usar um cristal de menor valor? Um de 10MHz talvez. Uma vez tive problemas nessa frequencia. Dai tive que aumentar o valor do Vdd pra 5,5 Volts.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor geraldomelo » 23 Dez 2008 04:55

Pessoal , fiz praticamente todas as dicas que vcs me deram , e realmente não deu em nada , ai só sobrou para o software . Fiz o piscapisca só pra testar , e funcionou ,ai comecei fazendo todo o software de novo , e agora esta funcionando , só falta a parte da tabela .. agora fiquei uma semana comendo bola em várias outras coisas , e no final vai ser o software mesmo ?? mas ai eh que tá ,eu sempre primeiro desconfio do soft , mas eh que dessa vez ora ele funcionava e ora não , ou seja , como pode ter explicação isso ... se eh pepino de soft , então não funciona mesmo . como pode um software as vezes funcionar e as vezes não ?? por isso que apanhei até agora ... bom , mas por enquanto esta indo bem , vamos ver até o final oque vai dar ..... outra coisa, pra quem for fácil , poderia testar esse soft ai pra ver se também não funciona ... ai dá um alo ..

abs

Geraldo
geraldomelo
Byte
 
Mensagens: 267
Registrado em: 14 Out 2006 16:53
Localização: Ribeirão preto - SP

Mensagempor msamsoniuk » 23 Dez 2008 10:00

pisca-led eh essencial, praticamente um self-test das placas! :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Pask » 08 Jan 2009 10:01

Mude BROWNOUT para NOBROWNOUT e não deixe o pino de MCLR flutuando no circuito. Veja no que dá.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x