Ir ao conteúdo
  • Cadastre-se

PIC 12F675 perdi a calibração do oscilador


Laranja Verde

Posts recomendados

Olá pessoal,

Depois do erro achei este tópico que explica como gravar o PIC sem perder a calibração do oscilador interno:

http://forum.clubedohardware.com.br/como-gravar-pic12f675/608749?t=608749&highlight=12f675+calibra%E7%E3o

Como eu tenho outro 12F675, fiz a leitura do valor da calibração e coloquei este valor no PIC que eu estava tentando gravar.

Gravei o programa que está no link abaixo:

http://www.bertys.ro/flashled.htm

Infelizmente não dá nem sinal, parece que morreu.

Medi a frequência de oscilação em todos os pinos e não aparece nada.

O circuito não funciona se a frequêcnia estiver incorreta?

Para gravar o PIC estou usando um gravador tipo JDM, mas não estou encontrando o link do projeto, se eu achar posto aqui.

Agora não sei o que fazer, alguma sugestão, por favor?

Existe alguma maneira de recuperar este valor de frequência?

Obrigado,

Renato

Edit: link do gravador:

http://www.volunteerlabrat.com/images/pic-programmer.zip

Link para o comentário
Compartilhar em outros sites

Bom a calibração do PIC pode ser feito a qualquer momento por software chamando a posição 3FFh e colocando seu valor no OSCCAL.

Mas acho que o clock errado nao deveria ser o bastante para o PIC ficar inoperante, somente a ausencia dele causaria tal efeito...

verifique se não tem nenhuma outra configuração errada por ai.

Abs.

Link para o comentário
Compartilhar em outros sites

Peguei na internet um hex de um pisca led e nem assim funciona.

Uma pergunta, depois de gravar o pic, fechar o Icprog, abrir e ler o pic, o valor do osc tem que aparecer na mesma posição onde foi gravado inicialmente?

Para mim aparece 3FFF.

Em qual pino do pic é possível ler a frequência ou forma de onda?

Se alguem tiver um fonte ou hex de um pisca led que funcione, poste aqui, por favor.

Renato

Link para o comentário
Compartilhar em outros sites

Sim, o valor da calibração tem que permanecer lá na última posição da memória de programa após o programa ser gravado.

No seu caso acho que ela continua sendo apagada. Aí não funciona mesmo.

Você está seguindo as instruções descritas aqui?:

http://www.4shared.com/get/35555854/56b72524/Programar_12F6xx.html;jsessionid=113E48F28391ACBC804D6C2F2CF4D533.dc210

O pino GP4/OSC2/CLKOUT pode ser configurado para fornecer 1/4 da frequência do sinal de clock, mas, no programa do link este pino é usado para acionar um LED.

Link para o comentário
Compartilhar em outros sites

Segui o procedimento sim, inclusive acabei de confirmar que estou fazendo exatamente como explicado.

Se a calibração tem que aparecer na última posíção da memória do pic, então com certeza este é o meu problema, porque aqui não aparece.

Já gravei,apaguei e regravei uma dezena de vezes, este valor não aparece.

Será que pode ser o gravador?

Este gravador eu montei para gravar pics 10Cxx e 12Cxx, funciona certinho, com 12F675 é a primeira tentativa.

Renato

Link para o comentário
Compartilhar em outros sites

Quer dizer que você está digitando na última posição da memória o valor da calibração que obteve do outro PIC?

No momento de gravar, o Icprog exibe a mensagem de que não encontrou o valor de calibração do oscilador?

Se sim, você responde sim ou não para a pergunta se deseja usar o valor que está no arquivo?

Link para o comentário
Compartilhar em outros sites

Aparece a mensagem no ICprog se quero gravar o valor do aqrquivo (mostra o valor) e eu digito sim, a gravação continua e não aparece nenhum erro.

Nas primeiras tentativas de gravar o pic aparecia uma mensagem de erro "Verificação falhou no endereço 0010h", depois foi tudo bem.

Renato

Link para o comentário
Compartilhar em outros sites

Eu fiz varias comparações e não falei antes.

Uma delas é a mesma que você recomendou, quando mando ler tudo, na última posição sempre aparece 3FFF, o restante grava normal.

Outra confirmação, após a gravação eu mudei para o buffer2, e mantive o buffer1 com o programa gravado, cliquei em ler tudo e depois cliquei em comparar, aparece erro no 3FFF, confirmei em várias gravações.

Agora eu fiz diferente, alterei a configuração do Icprog para "verifique durante a programação", finalmente apareceu o erro "fallha no endereço 03FF".

Resumindo, acho que o problema deve ser no meu gravador e não sei como resolver.

Tenho um outro gravador aqui, vou tentar com ele.

Renato

Link para o comentário
Compartilhar em outros sites

Você tentou aquela dica que tem no link do programa?

Some PIC Programmers can't rewrite the PIC12F675 microchip after first programming (the code use INTRC_OSC and MCLR_OFF) .
In this case try to use:

;----------------------------------------------------------------------
; Configurare
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF

and a pullup resistor (1 .. 10k ohm ) to Vdd for -MCLR pin (GP3).

instead:

;----------------------------------------------------------------------
; Configurare
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF



Consiste em você mudar de _MCLRE_OFF para MCLRE_ON e ligar um resistor de 10k do pino MCLR ao VDD.

Mas, acho que não vai resolver.

Tá sinistro esse negócio aí.

Link para o comentário
Compartilhar em outros sites

Tem razão, tá sinistro mesmo.

A mudança no MCLRE eu tinha feito e hoje coloquei o resistor de 10K entre o VDD e MCLRE, também não resolveu.

Parti para o ICD2 da Microchip que tenho aqui e nunca uso porque meu computador fica fora do meu local de testes e é sempre um transtorno quando preciso usar, prefiro um gravador mais simples que não use fonte externa.

Resumindo, agora funcionou com o MCLRE_OFF, quando eu altero para ON só acende um led e fica fixo.

Outra vantagem do ICD2 é que pode selecionar para reescrever ou manter

o valor do OSCAL se já tiver o valor no PIC.

Pode apagar a vontade que não apaga o valor do OSCAL.

Apanhei, mas aprendi, da próxima vez que pegar um pic que não conheço vou tentar primeiro com o ICD2.

O problema deste ICD2 é que não grava todos os PICs, por esta razão eu montei o JDM e o RCD.

No link abaixo que encontrei hoje, tem um outro projeto de JDM, dá para perceber que nem sempre funcionam para todos os pics.

http://www.robsonmartins.com/eletr/mpsp/

Obrigado pela ajuda,

Renato

Link para o comentário
Compartilhar em outros sites

Fiz mais um teste aqui com o gravador RCD versão 2.3:

http://feng3.cool.ne.jp/en/rcd.html

Adaptei um soquete para o pic e mandei bala, mas infelizmente também não deu certo.

Interessante que este gravador não apaga o valor do oscal, tentei várias vezes.

Quando gravo o programa, também não aparece a mensagem se vai aceitar aquele valor ou não.

Com o mclre_on acende só dois leds e não piscam.

Com o mclre_off acende só 1 led e também não pisca

Cada gravador funciona de uma maneira diferente neste pic.

O certo seria tentar com outros programas, mas eu cansei.

Já no ICD2 ao gravar com mclre_off, aparece a seguinte mensagem: O mplab não tem suporte para este pic com mclre interno e oscilador interno e sugere que o programa seja alterado.

Quando coloco o pic no circuito com os leds, funciona sem problema.

Se eu gravar com mclre_on, acende só um led e não pisca (isto eu já falei no post anterior).

Este PIC é bem complicadinho.

Renato

Link para o comentário
Compartilhar em outros sites

Mas você sabe que se gravar com o MCLRE_ON, você tem que manter um resistor de 10k entre o pino MCLR (pino 4) e o VDD, né? Tando durante a gravação como ao ligar o circuito.

Já no ICD2 ao gravar com mclre_off, aparece a seguinte mensagem: O mplab não tem suporte para este pic com mclre interno e oscilador interno e sugere que o programa seja alterado.

Quando coloco o pic no circuito com os leds, funciona sem problema.

Se eu gravar com mclre_on, acende só um led e não pisca (isto eu já falei no post anterior).

Este PIC é bem complicadinho.

Quer dizer que ele grava mesmo apresentando a mensagem de erro?

Realmente é um quebra cabeças.

Link para o comentário
Compartilhar em outros sites

Mas você sabe que se gravar com o MCLRE_ON, você tem que manter um resistor de 10k entre o pino MCLR (pino 4) e o VDD, né? Tando durante a gravação como ao ligar o circuito.

Quer dizer que ele grava mesmo apresentando a mensagem de erro?

Realmente é um quebra cabeças.

Puxa vida, no circuito eu não estava colocando o resistor de 10K, agora coloquei e.... pimba, funcionou.

Depois disso regravei o pic com o mclre_off, retirei o resistor de 10k do circuito e também funcionou, nos dois casos usei o gravador RCD.

Acho que o resistor de 10k desentupiu alguma linha do pic eheheheh.

Meu gravador RCD é melhor do que eu esperava e não apaga o OSCAL.

Quanto ao ICD2 + MPLAB é isto mesmo, mostra a mensagem de erro, sugere não continuar e grava sem erros.

Mulder_Fox, muito obrigado pela ajuda e paciencia.

Abs,

Renato

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...