Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

15/01/2012 #1


Problema 18F2550
Hola, os llevo leyendo mucho tiempo pero no posteaba. La verdad, me sabe mal empezar con una duda, pero espero empezar a aportar proyectos interesantes al foro.

Estoy comenzando con la programación de este PIC (ya he programado otros) y para empezar estoy haciendo un "Hola mundo" de lo más sencillo, hacer parpadear un LED

Decir que la programación la hago con MPLAB y PIC BASIC PRO 3. Los Configuration Bits no los pongo en el código sino manualmente en el programa. El código es el siguiente:

Código:
TrisB = 0
led var portb.3
 
main:
high led
pause 500
low led 
pause 500
goto main
end
Es lo mas sencillo que se puede hacer, pero no funciona y no se por qué. Para comprobarlo estoy usando PIC18 SIMULATOR IDE y el puerto B3 se queda en estado alto siempre...

Subo el .hex a ver si me podéis echar una mano.

PD: PBADEN está configurado de tal forma que los pines estén como entradas o salidas digitales. La ultima duda es: ¿En caso de seleccionar el oscilador interno para declarar la frecuencia sería así?
Código:
`Para 4 MHz
DEFINE OSC 4
Un saludo y muchas gracias de antemano!
15/01/2012 #2


Hola amigo, la declaración del oscilador esta bien como la colocas. La declaración y todo lo demás lo veo perfecto pero la verdad que no entiendo porque te hace eso. De todas formas yo voy a probar y te respondo.
16/01/2012 #3

Avatar de snakewather

Haber Prueba esto:

`Para 4 MHz
DEFINE OSC 4

TrisB = 0
PORTB=0 'configurando PORTB.
LATB=0

led var portb.3

main:
high led
pause 500
low led
pause 500
goto main
end
16/01/2012 #4


Pues no va aún snakewather, pero gracias por ayudar!
16/01/2012 #5
Moderador

Avatar de D@rkbytes

syryus. He simulado el código del clasico programa del LED y si funciona.
Pero simulado con PROTEUS por que efectivamente con el PIC18 Simulator IDE no anda.
También copie tu programa directamente al editor modificandolo para tal programa,
y compilandolo para crear el HEX el cúal tambien funciona en PROTEUS.
PD. El hex que subiste también se ejecuta sin problemas.
Nota. Use PROTEUS 7.8 SP2, MicroCode Studio Plus 3 con MPASM 5.35 y PIC18 Simulator IDE 2.55
Aqui dejo los archivos de la simulación.
Archivos Adjuntos
Tipo de Archivo: rar LED 18F2550.rar (23,3 KB (Kilobytes), 55 visitas)
16/01/2012 #6


Gracias Darkbytes!

Luego probaré a montar en la protoboard, porque creo que va a ser problema del PIC18 simulator
16/01/2012 #7
Moderador

Avatar de D@rkbytes

syryus dijo: Ver Mensaje
Gracias Darkbytes!

Luego probaré a montar en la protoboard, porque creo que va a ser problema del PIC18 simulator
Sip. A muchas personas les gusta ese simulador, a mi en lo personal nunca me ha gustado.
Suerte.
16/01/2012 #8


Pues nada, no se por qué narices sigue sin funcionar...

Probado en protoboard y nada. El PIC lo lee, graba, verifica correctamente, etc... Así que descarto que esté mal. La tensión que le llega al pic es la correcta, pero creo que el fallo va a estar en la configuración del oscilador interno. ¿Alguien que lo halla hecho?
16/01/2012 #9
Moderador

Avatar de D@rkbytes

syryus dijo: Ver Mensaje
Pues nada, no se por qué narices sigue sin funcionar...
Haber, ya lo montaste en el protoboard cierto?
Ya checaste voltajes y conexiones?, el pin de reset (MCRL), el Xtal
Hay tres tipos de encapsulado, para ese PIC, el de 28 pins, el de 40 y el de 44
Que encapsulado estas usando?
16/01/2012 #10


El encapsulado de 28 pines. Cristal no estoy usando, estoy intentando hacer funcionar el oscilador interno. ¿Cómo debe ser el conexionado del pin MCRL?

A ver si me estoy equivocando ahí

Saludos!
16/01/2012 #11
Moderador

Avatar de D@rkbytes

syryus dijo: Ver Mensaje
El encapsulado de 28 pines. Cristal no estoy usando, estoy intentando hacer funcionar el oscilador interno. ¿Cómo debe ser el conexionado del pin MCRL?

A ver si me estoy equivocando ahí

Saludos!
Para probarlo sin el botón de reset solo conectalo a VDD
Si quieres usar el Reset y lo tienes configurado con el BIT MCLRE = ON
Va con una R de 1K a 10K hacia VDD y un Push Button a hacia VSS
Aqui te dejo los Bits de configuración en un txt y pon principal atención al BIT PBADEN = OFF
y al BIT FOSC = INTOSC_HS
Archivos Adjuntos
Tipo de Archivo: txt fuses 18F2550.txt (2,4 KB (Kilobytes), 49 visitas)
16/01/2012 #12


Estoy viendo los fuses que has subido. ¿Cómo se activan para que PBP los compile?
16/01/2012 #13
Moderador

Avatar de D@rkbytes

syryus dijo: Ver Mensaje
Estoy viendo los fuses que has subido. ¿Cómo se activan para que PBP los compile?
Es algo medio complicado para que PBP los compile directamente por código.
Ya hay quien por aqui en el foro lo ha hecho para otro PIC es cosa de que busques.
Yo los configuro con el programa WinPic800
16/01/2012 #14


Por fiiiiiiiiiiiiiiiiiiiin!

Ya he hecho que funcione. El problema estaba en los fuses como esperaba. Hasta ahora programaba con puerto serie y con Winpic800 y era solo marcar las casillas que se quisieran. Finalmente he conseguido meter los fuses en PBP y que funcione. Aquí un minitutorial de como hacerlo:

1.- Lo primero es ir a donde tengamos instalado PBP (normalmente en C:\PBP)
2.- Entramos en la carpeta en la que tengamos los archivos .INC (en PBP 3.0 es DEVICES)
3.- Buscamos en .INC de nuestro PIC y lo abrimos con bloc de notas
4.- Añadimos ; a las lineas entre CONFIG y ENDCONFIG:

Código:
#CONFIG
        ;__CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
        ;__CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
        ;__CONFIG    _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_3_2L & _VREGEN_ON_2L
        ;__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
        ;__CONFIG    _CONFIG3H, _CCP2MX_ON_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
        ;__CONFIG    _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L
#ENDCONFIG
5.- Copiamos esas lineas a nuestro programa modificando lo que queramos y listo!

Aquí la prueba:


Gracias por ayudar!
17/01/2012 #15
Moderador

Avatar de D@rkbytes

syryus dijo: Ver Mensaje
Por fiiiiiiiiiiiiiiiiiiiin!

Ya he hecho que funcione. El problema estaba en los fuses como esperaba. Hasta ahora programaba con puerto serie y con Winpic800 y era solo marcar las casillas que se quisieran. Finalmente he conseguido meter los fuses en PBP y que funcione.
Gracias por ayudar!
Ok. Buen aporte ese mini tutorial, la verdad se me hizo mas facil entenderlo como lo haz explicado
que como lo habia visto anteriormente. Y gracias a ti por compartir tus ensayos.
No me quize quedar con la duda he hize un pequeño programa para comprobarlo
siguiendo tus instrucciones y ahora ya también puedo meter los FUSES dentro del editor PBP
Bien, púes aqui dejo el ensayo que realize, se trata del clasico Luces del Auto Fantastico.
Suerte y hasta luego.
Archivos Adjuntos
Tipo de Archivo: rar 18F2550 LAF.rar (25,4 KB (Kilobytes), 52 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.