pic nao aceita mais gravaçao

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

pic nao aceita mais gravaçao

Mensagempor vanessa » 30 Mar 2011 22:02

Estou tentando gravar um programa em um 12f675 porém está acontecendo uma coisa chatinha, estou usando um picburner, e o programa é o seguinte:


list p=12F675
#include <p12F675.inc>

__CONFIG _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BODEN_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT


RESET CODE 0x0000 ; processor reset vector
; calibrate internal RC oscillator
call 0x03FF ; retrieve factory calibration value
banksel OSCCAL ; then update OSCCAL
movwf OSCCAL

; initialisation
movlw b'01111101' ; configure GP1 (only) as an output
banksel TRISIO
movwf TRISIO

; turn on LED
banksel GPIO
bsf GPIO,GP2 ; set GP1 high

goto $ ; loop forever


END


Parece ser bem simples mas quando eu peço pra gravar, apos a verificação aparece a mensagem: "verificação falhou no endereço 0000h"
Depois disso a pic nao aceita mais gravaçoes nenhuma de nenhum programa, mas depois de muitas, poe muitas nisso, tentativas ele aceita gravar outro programa, mas dai eu tento gravar este ai de cima e a mensagem aparece de novo "verificação falhou no endereço 0000h" ai eu fico dias tentando gravar qualquer coisa e nao consigo sempre da esta mensagem. e o engracado que é sempre depois de tentar gravar o mesmo programa.
vanessa
Bit
 
Mensagens: 27
Registrado em: 29 Mar 2011 18:10

Mensagempor Andre_Cruz » 31 Mar 2011 08:19

Vanessa,
Não conheço o gravador picburner, recomendo você verificar as tensões nos pinos usados para gravação do 12F675 principalmente os 13,5 no MCRL pro uC entrar em modo de programação.

A respeito de seu programa, você configura GPIO1 como saída:

; initialisation
movlw b'01111101' ; configure GP1 (only) as an output
banksel TRISIO
movwf TRISIO


E logo abaixo seta o GPIO2 !


; turn on LED
banksel GPIO
bsf GPIO,GP2 ; set GP1 high



Se você ligar um led no pino GPIO2 ele não acenderá !
Você tem duas alternativas:

Alternativa 1 configurar GPIO2 como saída, como você ja esta setando este pino ele ficará em nível lógico 1, ligando o leds no GPIO2 o mesmo acenderá.

; initialisation
movlw b'01111011' ; GPIO2 CONFIGURADA COMO SAÍDA !
banksel TRISIO
movwf TRISIO


Alternativa 2 setar o GPIO1 que já esta configurado como saída.


; turn on LED
banksel GPIO
bsf GPIO,GP1 ; AQUI O COMENTÁRIO ESTAVA GP1 EM NÍVEL ALTO
;MAS ESTAVA COLOCANDO GP2 EM NÍVEL ALTO !



Acredito que isso lhe ajude.

Seja bem vinda ao fórum !

Abraço

André Cruz
Andre_Cruz
Word
 
Mensagens: 559
Registrado em: 03 Jan 2009 14:06

Mensagempor vanessa » 31 Mar 2011 12:44

Muito obrigada!
Bem eu ja tinha conseguido fazer o picburner queimar direitinho varios programas, só que feitos por outras pessoas, então não pode ser o problema da tensao né? ja que se a tensao fornecida ao picburner funcionou corretamente varias vezes, nao ha motivo pra ela deixar de funcionar do nada né? o que voces acham?
outra coisa, eu comprei um pic 12f675 novo, e assim que eu coloquei no picburner ele gravou direitinho, mas... dai eu tentei por o programa enfadonho que eu mostrei acima e pimba. o pic travou novo tambem travou.
ai peguei o pic 12f675 antigo e varias vezes tentei gravar um programa (nao esse enfadonho) ai derrepente gravou e funcionou direitinho, ai eu tentei gravar o programa enfadonho e pimba, travou, nao da mais pra gravar nada.
tem gente por ai que diz que essas plaquinhas tipo picburner sao ruins etc, e compram placas mais caras, mas po, eu nao tenho grana pra pagar 400 ou 600 reais em uma placa na microeletronika, entao eu tenho que apelar pro conhecimento, tenho que correr atras
de estabilizar o funcionamento desse picburner mesmo. o picburner sempre funcionou direitinho, so com esse enfadonho ai e que deixou de funcionar.
vou tentar estudar o circuito do picburner pra ver. mas eu tenho certeza se eu comprar outro pic novo é so colocar que ele vai gravar.
vanessa
Bit
 
Mensagens: 27
Registrado em: 29 Mar 2011 18:10

Mensagempor proex » 31 Mar 2011 14:17

Óia, presta atenção,......... tá prestando?

Já sofri muito com esse problema. Isso também acontece com o ICD2 e 3 original da Microchip.

Respeite as regras abaixo:

1- O cabo de gravação deve ser o menor possível, 15cm no maximo.

2- No pino MCLR do PIC deve haver somente um resistor PULL UP de no maximo 10k. Nenhum outro componentes deve estar conectado nesse pino além desse resistor.

3- A primeira rotina do seu programa deve ser um NOP. (em assembler).

4- Depois desse NOP, crei um contador, (TIMER) de 1 segundo, antes das rotinas de inicialização dos pinos.

Coloque essas dicas no seu programa. OS PICs que já foram gravados antes disso e que não respondem mais, já estão perdidos.

Se mesmo aplicando essas dicas, o problema continuar ou aparecer eventualmente, faça como eu: Desista de PIC pois se nem a propria MICROCHIP se interessa em consertar esse problema que acontece a anos, não sou eu quem vai arrumar problemas com cliente por causa disso.

Atualmente eu só trabalho com ARM e sou feliz.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor proex » 31 Mar 2011 14:30

Óia, presta atenção,......... tá prestando?

Já sofri muito com esse problema. Isso também acontece com o ICD2 e 3 original da Microchip.

Respeite as regras abaixo:

1- O cabo de gravação deve ser o menor possível, 15cm no maximo.

2- No pino MCLR do PIC deve haver somente um resistor PULL UP de no maximo 10k. Nenhum outro componentes deve estar conectado nesse pino além desse resistor.

3- A primeira rotina do seu programa deve ser um NOP. (em assembler).

4- Depois desse NOP, crei um contador, (TIMER) de 1 segundo, antes das rotinas de inicialização dos pinos.

Coloque essas dicas no seu programa. OS PICs que já foram gravados antes disso e que não respondem mais, já estão perdidos.

Se mesmo aplicando essas dicas, o problema continuar ou aparecer eventualmente, faça como eu: Desista de PIC pois se nem a propria MICROCHIP se interessa em consertar esse problema que acontece a anos, não sou eu quem vai arrumar problemas com cliente por causa disso.

Atualmente eu só trabalho com ARM e sou feliz.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor proex » 31 Mar 2011 14:31

Óia, presta atenção,......... tá prestando?

Já sofri muito com esse problema. Isso também acontece com o ICD2 e 3 original da Microchip.

Respeite as regras abaixo:

1- O cabo de gravação deve ser o menor possível, 15cm no maximo.

2- No pino MCLR do PIC deve haver somente um resistor PULL UP de no maximo 10k. Nenhum outro componentes deve estar conectado nesse pino além desse resistor.

3- A primeira rotina do seu programa deve ser um NOP. (em assembler).

4- Depois desse NOP, crei um contador, (TIMER) de 1 segundo, antes das rotinas de inicialização dos pinos.

Coloque essas dicas no seu programa. OS PICs que já foram gravados antes disso e que não respondem mais, já estão perdidos.

Se mesmo aplicando essas dicas, o problema continuar ou aparecer eventualmente, faça como eu: Desista de PIC pois se nem a propria MICROCHIP se interessa em consertar esse problema que acontece a anos, não sou eu quem vai arrumar problemas com cliente por causa disso.

Atualmente eu só trabalho com ARM e sou feliz.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor vanessa » 31 Mar 2011 15:45

nao vou desistir tao facil dos pics, to aprendendo agora e to muito interessada em programar, é uma pena que eu tenha que perder tempo estudando o circuito de gravacao, mas vamos la...
vanessa
Bit
 
Mensagens: 27
Registrado em: 29 Mar 2011 18:10

Mensagempor renatokodaira » 31 Mar 2011 19:42

vou tentar estudar o circuito do picburner pra ver. mas eu tenho certeza se eu comprar outro pic novo é so colocar que ele vai gravar.


Sim, isso vai acontecer, e se gravar esse mesmo firmware, ele nao vai deixar gravar de novo.

Nao se preocupe, seus PICs estao bons, seu gravador estah ok.

O problema eh na linha de CONFIG que tem a seguinte diretiva:
_INTRC_OSC_NOCLKOUT

Isso configura o PIC pra funcionar com o oscilador interno. Entao logo que ele eh alimentado no Vdd, o PIC vai começar a funcionar. Certo ?

Para o PIC entrar em modo de gravaçao/leitura/apagamento o gravador precisa fornecer duas tensoes: o Vdd (de 2 a 5V normalmente) e o Vpp (uns 13V normalmente). O Vpp na verdade eh que aciona o "state machine" de gravaçao. Mas tem um problema na sequencia de fornecimento do Vpp e Vdd.

Para alguns PICs (o 12F675 eh um deles), o Vpp tem que ser acionado antes do Vdd (5V) porque se ele estiver configurado para oscilador interno (o caso desse firmware) o PIC começa a executar o firmware e mesmo com o Vpp de 13V, nao ativa o modo de gravaçao, portanto dando o erro que voce citou. PICs nao configurados com oscilador interno (que usem por ex. cristal) quando colocados no soquete do gravador nao vao dar esse problema porque nao iniciam a execuçao do programa firmware.

Soluçao: procure no software do PICBURNER (tambem nao conheço) se existe alguma opçao de ativar primeiro o Vpp e depois o Vdd. No PICKIT2 tem essa opçao. No software WINPIC800 tambem tem essa opçao. Voce consegue apagar o firmware do PIC e consegue depois gravar novamente outro firmware.
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor MOR_AL » 31 Mar 2011 19:42

Olá Vanessa!
Quanto ao seu programa:

1 - Você configura GP1 como saída mas aciona o LED em GP2.
movlw b'01111101' ; configure GP1 (only) as an output
banksel TRISIO
...
bsf GPIO,GP2 ; set GP1 high A instrução seta GP2 e o comentário é para setar GP1

2 - Os outros pinos são configurados como entrada. Caso você os deixe sem carga (R< ou = a 10K), há possibilidade de ficar captando ruído neles. Isso aumenta o consumo e pode causar instabilidades.

3 - __CONFIG _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BODEN_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

Você desabilita o PWRTE (_PWRTE_ON). talvez valha habilitá=lo (_PWRTE_OFF)
A configuration bit, PWRTE can disable (if set) or enable (if cleared or
programmed) the Power-up Timer. The Power-up Timer should always be enabled when Brown-out Detect is enabled.


4 - __CONFIG _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BODEN_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
Eu entendi que com CP_OFF, o programa TODO é resetado. Será?

The entire program memory will be erased, including OSCCAL value, when the code protection is turned off.

Bom não tenho certeza das minhas dicas. Já não vejo esses detalhes há algum tempo.
Agora um "puxão de orelha". Todas as informações foram retiradas do manual, portanto é necessário que você o consulte, para sanar muitas dúvidas a esse respeito.
... E seja bem-vinda ao fórum.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor vanessa » 31 Mar 2011 20:54

oi MOR_AL
voce nao sabe o quanto, mas o quanto mesmo eu estou doida pra seguir os seus conselhos, como eu disse, eu to louca pra aprender a programar, e as dicas que voce me deu é sobre programacao. brigada, mas eu to envolvida com um problema mais básico: em fazer o pic gravar de novo, infelizmente nao possso me divertir com a programacao, ainda hehe.
O codigo que eu colei la em cima, por coincidencia era o que estava sendo gravado no pic, quando ele travou, inclusive é o que eu gravei em 3 pics, e travou os tres.
o que eu to tentando agora é colocar um programa que eu sei que é bom, que nao fui eu que fiz, mas que ja funcionou muito bem, este eu to usando pra, depois que eu mudo mil e uma configuracoes (ate driver de porta COM eu ja reinstalei) testar pra ver se o pic grava, ja fiz isso mais de 128 vezes so hoje pela manha.
teve um dos pics que o programa enfadonho travou que voltou a funcionar bem, aí eu gravei um programa bom, que nao foi eu que fiz, e funcionou legal, mas dai eu quiz instalar o programa enfadonho de novo! e nao pude acreditar quando apareceu de novo o erro 0000h.
Eu ja sei que o código eu fiz com erros mas eu postei ele so como subsidio à investigação do porque os pics estao travando, eu nao vou mais usar este codigo! depois que eu fizer os pics funcionar de novo ou comprar pic novo vou tentar montar outro codigo, to traumatizada com esse aí.
o picburner eu desconfio que funciona bem, pis nunca se negou a gravar nenhum dos codigos bons que tenho. e eu medi a voltagem durante a gravacao e dava mais que 13 volts com certeza.
muito obrigada pela ajuda.
vanessa
Bit
 
Mensagens: 27
Registrado em: 29 Mar 2011 18:10

Mensagempor andre_luis » 31 Mar 2011 21:39

Vanessa,

A muito tempo atrás comprei um Picburner, e após umas poucas gravações, parou de funcionar. Apos investigar bastante, percebi que uma das ilhas de um componente se rompeu. Tudo bem que não sou dos seres mais delicados do planeta.

Atente para a possibilidade de que o hardware possa ser a causa do problema.

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor Andre_Cruz » 01 Abr 2011 00:27

Vanessa,

Relendo o tópico eu lembrei de um fato curioso !
Uma certa vez fiz um programa pro 12F675 usando clock interno e MCLR interno, na hora de gravar o ICD2BR não grava, nem com bomba !
Então configurei o MCLR para externo e coloquei um pull up de 10k !
Funcionou !
Experimente fazer essa alteração !

André Cruz
Andre_Cruz
Word
 
Mensagens: 559
Registrado em: 03 Jan 2009 14:06

Mensagempor vanessa » 02 Abr 2011 17:10

bem... tenho um fato novo: o programa que eu tinha gravado no pic ta la dentro e funcionando, eu nao acreditei quando testei isso hoje, achei um desaforo da parte dele. Quando eu coloco um led no pino referente ao gp1 ele acende e nos outros pinos nao, ou seja bate com o ultimo programa antes da travacao.
(ps: nesse topico voces perceberam o meu erro: configurar GP1 como saída mas aciona o LED em GP2, isso nao aconteceu, eu so me atrapalhei na hora do ctrl-c ctrl-v aqui, desculpa aí meus queridos).
Na época quando o meu pic ainda gravava lindo e maravilhosamente, eu gravei o programa que aciona gp1 (aí ele travou pra gravacao e eu ainda nao sabia) o led acendeu so em gp1 e eu fiquei toda contente e pensei... agora vou gravar pra acender o led em gp2 eba! eu to sabendo tudo de programaçao, dã, aí é que me dei conta que o bendito programinha travou o chip, como ja houvera acontecido outras vezes, e eu nao pude gravar mais, até hoje.
andre: eu coloquei um resistor de 100r no pino 3, na hora de gravar, achei que era assim que fazia o pull up, mas eu devo ter feito tudo errado, to muito atrapalhada com isto.
po o que eu queria era programar, agora eu tenho é que ralar, ate comprar outro pic, to ate pensando em pegar um pic de outra familia tipo 16-alguma-coisa, ja que os 12f675 so travam na minha mao.
vanessa
Bit
 
Mensagens: 27
Registrado em: 29 Mar 2011 18:10

Mensagempor Leo Kenobi » 03 Abr 2011 08:47

Olá Vanessa, tudo bem?

Pode ficar tranquila que todos algum dia fomos iniciantes. Eu mesmo sofri muito no começo tentando entender por que não funcionava, porque dava problema, etc.

Quando começei com PIC usei o conhecido 16f84A, e mesmo com todo o cuidado acabei queimando 4 deles, a R$ 18 cada um... deu pra ter idéia do prejuizo né... rsrs.

Aproveito para te dar uma outra sugestão: na área de microcontroladores saber usar o hard dele é crucial para o soft. Um não vive sem o outro, fato, mas conhecer bem o hard te possibilitará fazer programas melhores, menores e mais eficientes.

Em tempo, se você pretende pegar uma da família 16F, começe com os pequenos e mais simples. O 16F628A tem 2Kwords de memória e tem porta serial por hard, que futuramente de dará outras possibilidades ligado a um computador que tenha porta serial. Não sei de onde você é, mas se for de sampa, na santa efigênia você encontra ele por até R$ 5, mas o mais comum é R$ 7 ou R$ 8.

Abraços a todos.
Leo Kenobi
Bit
 
Mensagens: 12
Registrado em: 28 Mar 2011 12:11


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x