Página 1 de 2
migrando do 18f252 para o 18f2520

Enviado:
07 Mar 2007 15:09
por guilherme bauer
Olá!
Eu estava com o meu programa redondinho no 18f252 quando o pic parou de funcionar. Não sei ao certo o que aconteceu. O fato é que eu só encontrei o 18f2520 para vender e comprei na inocencia que o programa funcionaria da mesma maneira. Doce ilusão.
Peguei no site da microchip o
.pdf de migração mas não me ajudou muito.
Pelo que ví, apenas o LCD funciona, mas nenhuma tecla responde. Não sei se é por que o pic "travou" ou fica reiniciando, ou se as teclas estão mal configuradas.
Alguem sabe por onde eu devo começar a olhar?
PS: eu uso o CCS, simulo no proteus. O mesmo que acontece no proteus acontece na minha placa de testes.
valeu!

Enviado:
07 Mar 2007 15:18
por jean
estranho guilherme, eu usei o 252 tbm e tive que migrar para 0 2520 e não tive nenhum problema...
Vc ja tentou fazer um programinha básico tipo pisca led pra ver se roda nos dois uC??
Como vc relatou o sistema parou de funcionar de uma hora pra outra..será que não é problema no teu hardware?? ja testou tudo direitinho? As vezes pode ser alguma coisa boba..

Enviado:
07 Mar 2007 20:52
por guilherme bauer
Acho dificil que seja isso, pois funcionava direitinho com o 18f252, e os sintomas da placa são identicos ao que o proteus mostra..


Enviado:
08 Mar 2007 21:12
por microeletronica
cara - tive um monte de paus na migracao do 252 pro 2525 e 2520.
tem um monte de diferencas sim... umas capciosas.
Vou me lembrar e te falo.
Quais pinos vc nota que deu os paus?

Enviado:
08 Mar 2007 21:30
por microeletronica
TRISA
ADCON1 <3:0>
Do datasheet do 2520: pagina 234
CMCON <2:0> => 000 (Eles comecam em 1)
Do datasheet do 2520: pagina 253
CONFIG3H - > PBADEN = 00
Do datasheet do 2520: pagina 236
"20.8 Effects of a Reset
A device Reset forces the CMCON register to its Reset
state, causing the comparator modules to be turned off
(CM2:CM0 = 111). However, the input pins (RA0
through RA3) are configured as analog inputs by
default on device Reset. The I/O configuration for these
pins is determined by the setting of the PCFG3:PCFG0
bits (ADCON1<3:0>). Therefore, device current is
minimized when analog inputs are present at Reset
time."
TRISE(PSPMODE) no caso do 4520!!!
Espero que tenha ajudado.!
Re: migrando do 18f252 para o 18f2520

Enviado:
09 Mar 2007 10:52
por luisaoho
Oi Guilherme,
Vc pode encontrar o 18f252 na Evatron (011 32212680) eles enviam pelo correio
abraços,

Enviado:
09 Mar 2007 11:26
por guilherme bauer
Muito obrigado pela ajuda de todos.
Eu não estou conseguindo setar os pinos da porta A como entrada, no 252 funcinava, mas agora não funciona mais.
Estou apanhando nas configurações mesmo, pois o projeto que eu fiz para o 252 eu parti de um exemplo do fábio pereira, com as configurações feitas.. =[
O mais estranho de tudo é que o LCD funciona direitinho, ou seja, os pinos da porta C que eu configurei como saída para o LCD estão OK. Mas tem um pino da porta C que é saída e eu configurei da mesma maneira que os do LCD, mas é o meu programa quem o manipula, e não mod_lcd.c, e esse passou a não funcionar mais.
Ou seja, existe um problema com a maneira que eu estou manipulando os pinos.
Estou usando as rotinas output_bit(); e input(pin_xx);
luisaoho, muito obrigado, mas agora eu já comprei o maledeto 2520. Tenho que me virar com esse.
Tá dificil o negócio aqui... =[

Enviado:
09 Mar 2007 11:28
por guilherme bauer
microeletronica, resetando eu já vi que o pic não está, pois o LCD está mudando aquilo que ele mostra. Tanto no prototipo quanto no proteus.
Agora, por algum motivo, o programa acha que o botão que controla a razão ciclica do meu programa está sempre apertado... =[
Se alguem quiser eu mando o programa para darem uma analisada.
valeu!

Enviado:
09 Mar 2007 21:57
por microeletronica
Fala guilherme, Beleza?
" Mas tem um pino da porta C que é saída e eu configurei da mesma maneira que os do LCD, mas é o meu programa quem o manipula, e não mod_lcd.c, e esse passou a não funcionar mais. "
Qual eh o pino?
"Eu não estou conseguindo setar os pinos da porta A como entrada"
Que pinos vc usa?
Faca isso no comecinho do seu programa, antes ate de setar as direcoes dos pinos:
ADCON0 = 0x00;
Voce tem que fazer isso pois o bit 0 (ADON - A/D On Bit) tem que estar desabilitado
ADCON1 = 0x0F;
Voce tem que fazer isso pois o bits 0 1 2 3 (Configuration Control bits pro A/D tem que estar de tal forma que seu A/D seja desabilitado e que os pinos RA0 RA1 RA3 RA2 RA5 RB0 RB1 RB4 funcionem como entrada e saida).
falou...

Enviado:
12 Mar 2007 20:18
por microeletronica
Funcionou?
Falai

Enviado:
13 Mar 2007 11:10
por Ander_sil
Já verificou os fuses, esse chip tem mais fuses do que o 18F252.
- Código: Selecionar todos
#include <18F2520.h>
#device adc=8
WDT,
#FUSES WDT1 //Watch Dog Timer uses 1:1 Postscale
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES BORV27 //Brownout reset at 2.7V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES MCLR //Master Clear pin enabled
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#use delay(clock=20000000,RESTART_WDT)
até+

Enviado:
14 Mar 2007 14:59
por guilherme bauer
microeletronica, Ander_sil, vou ficar fora até segunda feira. Assim que testar essas dicas eu posto aqui.
Muito obrigado pela atenção! E desculpa por não ter respondido antes.
Amplexos

Enviado:
19 Mar 2007 16:18
por guilherme bauer
"Qual eh o pino?"
Pino RC6 como saída.
"Que pinos vc usa?"
Agora estou usando como entrada os pinos RB1, RB2, RB3,RB4, RB5
O RA0 está sendo usado para entrada do AD.
ADCON0 = 0x00;
ADCON1 = 0x0F;
O ccs não reconheceu esses endereços ADCON0 e ADCON1, é assim que esses pinos são chamados na biblioteca 18f2520.h??

Enviado:
19 Mar 2007 20:32
por microeletronica
Entao....
Pro AN0 - ou seja, RA0 ser analogico....
e os outros A/Ds deste canal serem digitais,
coloque 0x0E em ADCON1 e
coloque 0x01 em ADCON0.
Dai coloque os TRIS confome vc conhece...
TRISB - bits 1 2 3 4 5 como 1
TRISA - nao interessa...
TRISC - bit 6 como 0

Enviado:
21 Mar 2007 16:56
por guilherme bauer
microeletronica, muito obrigado mesmo!!!!
O problema era com esse ADCON. Eu vou dar uma olhada no que ele faz, mas por hora vi que isso resolveu o meu problema!!
Muito obrigado!