PIC me deixando louco.

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PIC me deixando louco.

Mensagempor icaro51 » 27 Jul 2007 08:43

Pessoal montei uma plaquinha com um pic16f877a e estou ficando louco com isso.
O ICD2 reconhece o pic, le o seu conteudo (antigo) mas nao grava o novo, eu acho que o cristal nao esta oscilando, mas alguem sabe se o cristal precisa oscilar para o ICD2 gravar o PIC?
O negocio e o seguinte, logo que montei a placa tava funcionando, ai parou, achei que tivesse algum curto nas trilhas, entao eu deu umas cortadas e ele voltou a funcionar, depois de um tempo parou outra vez, no desespero eu troquei os capacitores do cristas de 20pf para 15pf, voltou a funcionar, parou, ai lembrei dos capacitores de desacoplamento, coloquei um de 100nF direto nas pernas do pic, voltou a funcionar, parou, coloquei mais um de 100nF na outra alimentacao, voltou, parou e agora nao volta mais...
Alguem me da alguma dica enquanto eu ainda tenho cabelo :-)
Infelizmente nao tenho osciloscopio para ver se o pic ta oscilando :-(
O PIC parece estar ok pq o ICD2 reconhece ele, le ele so nao grava, na hora de gravar quando ele vai verificar a gravacao encontra os dados da ultima gravacao.
Desde ja agradeco,
Icaro
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor fabim » 27 Jul 2007 08:54

ICARO. O problema é que o cristal do pic a ser gravado não pode estar oscilando no momento da gravação com o ICD.
Montei o ICD uma ves só por curiosidade de saber se o problema era no meu gravador ou coisa do tipo.. Mais não..
Os 16F628,874,876,877 no momento da gravação para que eles não deem pau, é so desligar o cristal do circuito.

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor icaro51 » 27 Jul 2007 09:04

nao funcionou, tirei o cristal do circuito e continua tudo na mesma :-(
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor icaro51 » 27 Jul 2007 09:11

refiz a solda dos capacitores de 100nF de desacoplamento e voltou a funcionar. Qual o melhor valor para esse capacitor?
Uma outra coisa, estou pensando em refazer essa placa pois esta parando muito frequetimente, tenho uma duvida, preciso ligar os dois vdd e vss do pic ou so um deles e suficiente? Se so um for suficiente posso usar um de cada lado? Porque o pic tem, por exemplo nao lembro agora, os pinos 13vdd 14vss 30vdd 31vss posso usar do um dos vdd e so um dos vss em qualquer combinacao?
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor fabim » 27 Jul 2007 09:20

bom. eu sempre interliguei os dois..
ex.
VDD1 com VDD2 e VSS1 Com VSS2.
Se eu alimentar o uC pelo VDD1 eu coloco o cap de 100Nf entre VDD e VSS 2 e no VDD1 e VSS1 eu coloco um capacitorzinho de 1...10uF.

Nunca deu problema.

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor proex » 27 Jul 2007 10:05

oi fabim, o oscilador do PIC TEM QUE ESTAR FUNCIONANDO para que o chip seja gravado pelo ICD. Existe até uma tela de mensagem de erro que aparece quando isso acontece.

O Oscilador deve ser configurado como XT para clock externo de até 4Mhz e HS para clock acima de 4Mhz.

Deve haver um resistor de 4k7 no pino 1, para o +VCC. A tensao do PIC deve estar em 5V.

O recurso de LOW VOLTAGE PROGRAM deve estar DESABILITADO.

Vc esta usando o ICD original da Microchip?

Ja que esta usando o ICD, tente debugar seu programa atraves dele, e nao apenas gravar.

Veja se em seu programa nao há algum erro fazendo com que o ponteiro de programa se perca durante a execuçao.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor icaro51 » 27 Jul 2007 10:14

Estou usando o ICD2 original da microchip, estou usando um resistor de 10k no pino 1 ao vdd como manda o manual.
O problema nao esta no programa, esta com 99% de certeza no oscilador, eu coloco o capacitor de 100nF no vdd e vcc e ele funciona por um tempo, depois de uns 10 min para, se eu refaco a solta volta mais um poquinho.
As vezes o pic grava, ai quando eu tento outra vez e nao grava eu checo o que ele tem na memoria e continua la o programa antigo, mas nao funciona, se eu encontro a ponta do multimetro no osc1 ele comeca a funcionar, quando eu tiro... para....
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor icaro51 » 27 Jul 2007 10:16

Ahhh tentei debugar tb, quando o pic esta funcionando o debug funcina legal, agora quando para para tudo, tanto o gravador quanto o debug.
As configuracoes devem estar certas pq hora funcina hora nao e as configuracoes sao as mesma, em outro pic no protoboard o prog funciona...
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor scheleder » 27 Jul 2007 10:18

Qual o valor do Xtal que VC esta usando?
Não está overclockando?
Senão me parece um caso do osmar, osmarcontato.
Pode ser também erro de programa, no MPLAB roda?
esperimenta deixar rodando uns tres minutos ou mais no mplab, de repente esta parando em uma int...
[]'s
João Scheleder Neto
scheleder
Nibble
 
Mensagens: 50
Registrado em: 23 Jan 2007 15:57
Localização: Colombo/PR

Mensagempor icaro51 » 27 Jul 2007 10:28

Estou usando um cristar de 4Mhz e dois cap de 15pF
O programa esta Ok pq eu testei ele em outro pic no protoboard e funciona legal, o problema e com o pic do board que nao grava (na maioria das vezes).
Nao acredito que seja problema de osmar pq eu ja chequei todos as conecoes com o multimetro e ta tudo legal, ja refiz as soldas, ja "cavoquei" entre as trilhas e esse vai e vem de funciona e para nao para.
Acho que deve ser alguma coisa no "desenho" do pcb, fiz uma "cama" para o cristal que eu nunca faco com o terra ja cortei ela fora agora mas a saida e entrada do terra ficaram quadrada (perto do cristal).
Nao sei minhas desculpas estao se acabando :-)
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor icaro51 » 27 Jul 2007 10:32

Olha se o bagulho nao e estranho,
Primeiro o ICD2 reconhece o pic, verifica e tudo ok
depois ele grava e quando vai verificar encontra os valores do programa antigo, esse valor no end 0x1F era 0x1001 no programa antigo, no novo e 0x1507

Imagem
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Mensagempor painho » 27 Jul 2007 11:16

icaro51 estou usando os fuse assim
#include <16F877A.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected

#use delay(clock=20000000)
o clock comum de 2 pinos e com cap de 33pF para o gnd o sendo o cristal o mais perto do pic e um delay antes de fazer alguma coisa
void main(){
delay_ms(500);
setFuse();
loop();
}
painho
Bit
 
Mensagens: 24
Registrado em: 16 Out 2006 09:21

Mensagempor icaro51 » 27 Jul 2007 11:43

Estou programando em asm, a maioria dos fuses estao como eu coloquei so alguns que eu desconheco, o que eu coloquei:

__CONFIG _CP_OFF & _WDT_OFF & _HS_OSC & _PWRTE_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF

Ja tentei alterar alguns mas nada aconteceu...

No desespero arranquei o cristal e os capacitores e coloquei um oscilador ceramico de 4mhz... resultado... agora nada acontece mesmo... de jeito nenhum.
icaro51
Byte
 
Mensagens: 119
Registrado em: 09 Dez 2006 21:56

Dor de cabeça

Mensagempor Vonnilmam » 27 Jul 2007 11:59

Prezado icaro51.


Eu acho que o problema do seu circuito esta no proprio pic, ele deve estar com defeito..isso que voce relatou já aconteceu com um cliente, o pic era novo e não aceitava a gravação nos bits de configuração, simplismente troquei o pic por outro....se voce testou outro pic no lugar e funcionou corretamente, então troque o pic...

Outra coisa, tanto faz se o cristal estiver ou não no circuito juntamente ao pic para ser gravado....eu faço gravações incircuit sem o cristal do pic e funciona normalmente...


ate..
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Mensagempor zielpunkt » 27 Jul 2007 13:56

O que é que está conectado nos pinos utilizados para ICSP? Vc alimenta apenas o micro na hora de gravar ou também outros circuitos que estão pendurados no +5 dele? Pode ser por ai...

É isso.
"Talento é mais barato que sal. O que separa a pessoa talentosa da bem-sucedida é muito trabalho duro." [ Stephen King ]
zielpunkt
Byte
 
Mensagens: 376
Registrado em: 12 Out 2006 11:36
Localização: Sao Paulo - SP

Próximo

Voltar para PIC

Quem está online

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

x