PIC16F628A - Ajuda - O microcontrolador não faz nada...

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PIC16F628A - Ajuda - O microcontrolador não faz nada...

Mensagempor nolfolk » 09 Jun 2010 03:42

Olá, pessoal. Sou novo no fórum, tudo bem ?

Estou com um (grande?) problema com o microcontrolador PIC 16F628A, eu programo ele mas ele não da resposta alguma.

Vou colocar aqui meu código fonte e meu esquema (protoboard):

O objetivo é simples: acender dois led's.
Estou usando MPLab IDE 8.46 para programar e simular e IC-Prog 1.05D para gravar.

[code]
; INCLUDE OBRIGATORIO
#INCLUDE <P16F628A.INC>

; CONFIGURACOES
__CONFIG _BOREN_ON&_CP_ON&_DATA_CP_OFF&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_ON&_XT_OSC

; BANCOS DE MEMORIA
#DEFINE BANCO_0 BCF STATUS,RP0 ; BANCO DE MEMORIA 0
#DEFINE BANCO_1 BSF STATUS,RP0 ; BANCO DE MEMORIA 1

; CONSTANTES DE SAIDA
#DEFINE LED PORTA,0 ; LED
#DEFINE LED2 PORTB,0 ; LED

; RESET
ORG 0x00
GOTO INICIO

; INTERRUPCOES
ORG 0x04
RETFIE ; RETORNA AO PONTO INTERROMPIDO

INICIO
BANCO_1
MOVLW B'00000000'
MOVWF TRISA ; SETA PORTA COMO OUTPUT
MOVWF TRISB ; SETA PORTB COMO OUTPUT
MOVLW B'10000000'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON
BANCO_0
MOVLW B'00000111'
MOVWF CMCON ; CONFIGURA RA3:RA0 COMO I/O
CLRF PORTA
CLRF PORTB

MAIN
BSF LED ; ACENDE O LED
BSF LED2 ; ACENDE O LED
GOTO MAIN
END
[/code]

E o esquema: http://img199.imageshack.us/i/lilod.png/

Por favor, me ajudem, estou nisso a semana inteira e não consigo "ir pra frente"... Não sei se é problema no meu microcontrolador, mas eu comprei ele essa semana, está novinho!

Ah, as vezes (mas não sempre) ele da erro na gravação com o IC-Prog, dizendo que tem erro em 000h, mas aih eu mando ele gravar denovo e ele nao da erro algum...
Eu acho que uma hora eu gravei como sendo outro modelo de PIC, gravei como sendo o 16F648A, será que tem algum problema quanto a isso ?

Obrigado.
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor Andre_Cruz » 09 Jun 2010 08:10

nolfolk,

Em seu esquema o LED esta ligado diretamente no pino do PIC, não sei se você não colocou no esquema ou se não montou, coloque um resistor de 330 Ohms para limitar a corrente.

Para teste, retire o LED do PORTA e teste o nível lógico com o multímetro, para ver se os pinos estão mudando, mas não esta acionando o LED pela falta do resistor para limitar a corrente.

Abraço

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

Mensagempor nolfolk » 09 Jun 2010 10:05

André Cruz,

Eu tenho que usar um resistor ? Mas por que ? eu ja liguei o led diretamente nas minhas pilhas e funciona bem :) não entendo por que teria que limitar a corrente :S

tentei fazer isso, o nivel lógico permanece em 0 :(
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor Sergio38br » 09 Jun 2010 10:09

A corrente maxima de alguns pinos do pic podem chegar a 25 mA, se vc não limitar a corrente pode danificar o pic, veja no dataxit os olimites máximos..

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor RobL » 09 Jun 2010 15:08

Coloque o resistor em série com o led, conforme te falaram.
Tem certeza que o lado do catodo (lado do plástico plano junto ao lide) do seu led está ligado a referência (zero volts). Se estiver invertido não acende.

Para um primeiro teste, não use o cristal.
Use o oscilador interno do PIC.
Veja lá no manual para mudar para oscilador interno.
O problema pode estar nas capacitâncias do seu protoboard com seu cristal .

Falta também um capacitor cerâmico de 100nF x 50V bem junto ao Vdd para Vss (em cima dos pinos do PIC ). Coloque um também no pino do Reset para o zero (Vss).
Junto a Vdd e Vss aplique também um C eletrolítico de pelo menos 10uF. Qualquer valor acima disto está bom para seu teste, mas tem que ter.
Sem esses detalhes não funciona.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor nolfolk » 10 Jun 2010 21:33

Deixa pra la, acho que eu quebrei meu microcontrolador...
Eu tento gravar nele e agora só da a mensagem "Verificação falhou no endereço 0000h" .... ;//

Valeu pela ajuda, pessoal, mas agora acho que só vou ter dinheiro pra comprar um microcontrolador novo mes que vem ;/
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor nolfolk » 10 Jun 2010 22:00

Opa! erro meu! eu mudei _CP_ON pra _CP_OFF e ele gravou certinho =DDDD

Code Protection sux ? XD

Vou testar na protoboard, agora :D:D:D
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor nolfolk » 11 Jun 2010 00:13

Tentei isso:

[code]
; INCLUDE OBRIGATORIO
#INCLUDE <P16F628A.INC>

; CONFIGURACOES
__CONFIG _BOREN_ON&_CP_OFF&_DATA_CP_OFF&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF&_INTRC_OSC_NOCLKOUT

; BANCOS DE MEMORIA
#DEFINE BANCO_0 BCF STATUS,RP0 ; BANCO DE MEMORIA 0
#DEFINE BANCO_1 BSF STATUS,RP0 ; BANCO DE MEMORIA 1

; CONSTANTES DE SAIDA
#DEFINE LED PORTA,0 ; LED

; RESET
ORG 0x00
GOTO INICIO

; INTERRUPCOES
ORG 0x04
RETFIE ; RETORNA AO PONTO INTERROMPIDO

INICIO
BANCO_1
MOVLW B'00000000'
MOVWF TRISA ; SETA PORTA COMO OUTPUT
MOVLW B'00000000'
MOVWF INTCON ; DESLIGA CHAVE GERAL DE INTERRUPCAO
BANCO_0
MOVLW B'00000111'
MOVWF CMCON ; CONFIGURA RA3:RA0 COMO I/O
CLRF PORTA

MAIN
BSF LED ; ACENDE O LED
GOTO MAIN

END
[/code]

http://img824.imageshack.us/i/test002.png/

Sem sucesso ://
Alguma sugestão ? :/
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor nolfolk » 11 Jun 2010 02:16

Acabo de perceber:

Se eu gravo as coisas no MCU e logo depois eu leio elas, elas vêm diferente!
Por exemplo, o Oscilador que era IntRC I\O vem LP, MCRL foi OFF e veio ON, CP foi OFF e veio ON, CPD idem...

Estou usando o IC-Prog 1.05D pra 16F628A, alguém sabe alguma limitação dele, ou meu PIC deve estar estragado mesmo ?
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor morais » 11 Jun 2010 09:57

nolfolk escreveu:Opa! erro meu! eu mudei _CP_ON pra _CP_OFF e ele gravou certinho =DDDD

Code Protection sux ? XD

Vou testar na protoboard, agora :D:D:D


caro nolfok, se vc acidentalmente gravou o chip usando o CP_ON provavelmente nao tera mais acesso ao chip pois esse FUSE é uma proteçao contra leituras e gravaçoes (CP= code protect ou proteçao de codigo) no caso do icprog ele sempre lê codigos protegidos mostrando apenas zeros.
morais
Bit
 
Mensagens: 13
Registrado em: 06 Jun 2010 22:09
Localização: MA

Mensagempor nolfolk » 11 Jun 2010 10:21

Não tem mais volta, então ? :( maldita opção, vou comprar o 16F84A na proxima vez, ele nao tem essas palhaçadas ¬¬""
nolfolk
Bit
 
Mensagens: 8
Registrado em: 05 Jan 2007 12:11

Mensagempor morais » 11 Jun 2010 10:41

só não esqueça o fuse CP ligado o 16f84a tambem tem, se nao me engano isso existe em todos os microsC's !
morais
Bit
 
Mensagens: 13
Registrado em: 06 Jun 2010 22:09
Localização: MA

Mensagempor RobL » 11 Jun 2010 15:46

Não.
Voce pode gravar a flash até 100.000 vezes.
Tanto faz estar com CP on ou off.
Antes de gravar todo gravador, antes limpa a flash.
Se o seu não faz isso, limpe antes a flash e depois grave.
Ao ler a flash desgravada estará tudo em 0xFF.
Não tem nada estragado ai.
Pode usar seu chip.
Tenha certeza que seu gravador está funcionando.
A distância do cabo ao chip deve ser a menor possível.
Pode estar tendo problema com capacitâncias em seu protobord.
Improvise seu chip em um soquete de 18 pin soldado ao seu gravador. Depois aplique-o no protoboard.
Não conheço o seu gravador.

NOTA 1: Todo chip com a letra F é regravável.
NOTA 2: Desaconselhável usar 16F84 é um retrocesso. Use pelo menos o F628A ou algo mais novo.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor morais » 11 Jun 2010 19:07

certo robl
me disseram q o chip ficava inutilizavel.
entao o CP protege apenas contra leitura do codigo q esta gravado, mas nao impede o apagamento, entao o nolfolk nao esta apagando antes de regravar, por isso dá erro na verificaçao!
morais
Bit
 
Mensagens: 13
Registrado em: 06 Jun 2010 22:09
Localização: MA

Mensagempor renatokodaira » 12 Jun 2010 18:22

Arrume outro programador de PIC. Provavelmente voce tah usando um gravador JDM com o programa ICPROG. Pelo o que voce descreveu, eles nao estao gravando nada no PIC. As vezes acontece isso, voce soh consegue gravar uma vez com essa dupla de programaçao por causa de uma sequencia errada de entrada de modo de gravaçao do ICPROG (Vdd antes do Vpp).
Tente baixar o WINPIC800 e usar ele pra gravar o PIC. Se nao funcionar, compre um ICD2 ou PICKIT2. O seu 16F828A muito provavelmente estah ok, voce apenas nao consegue gravar nele. Se acionou o CP (code protection) nao tem problema, ele soh protege contra leitura da memoria e nao impede que voce regrave outro programa por cima (eh apenas para evitar pirataria do seu firmware).
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Próximo

Voltar para PIC

Quem está online

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

x