Microcontroladores PIC 18FXXXX con módulo USB.

33 views
Skip to first unread message

HADES

unread,
Sep 15, 2009, 11:23:36 PM9/15/09
to ConexionElectronica
Primero que nada un saludo a todos los integrantes y el agradecimiento
a CONEXION ELECTRONICA y al Sr. Christian por su invitación.
Después de haber leido el libro BASIC PARA MICROCONTROLADORES PIC y
poner en práctica varios de sus ejemplos quedé muy satisfecho al ver
que en la realidad todos funcionan a la perfección y lo asombroso de
todo ello es la sencillez del lenguaje y la excelente explicación del
autor comparandolo con el tedioso y complicado assembler ( mi opinión
personal ), es fascinante ver la forma en que este lenguaje simplifica
la programación de los PICS.
Luego de estas prácticas me surgió la inquietud de incursionar en la
programación de PICS 18FXXXX USB tratando de adaptar los programas de
los 16F877 y 876 a sus equivqlentes 18F4550 y 2550 pero los problemas
empezaron a surgir al percatarme de las diferencias entre unos y otros
las cuales aún no puedo resolver y son las siguientes:

1. Las palabras de configuración de los "nuevos" PICS 18F

2. Las configuraciones del OSCILADOR

3. Las declaraciones de los Puertos A y B como digitales o analógicos
segun sea el caso.( en principio como digitales)

4. Los registros asociados al puerto USB.

5. ¿ Los pines RC4 y RC5 se pueden usar como IN/OUT o están
confinados solamente a la comunicacion
DATA+ y DATA -?

Sería muy interesante si se pudiera abrir este tema para compartir
ideas,opinniones y conocimientos y a la vez
les comento que estoy a la disposición en lo que pueda aportar de mi
parte para este y algun otro tema que esté
a mi alcance.

Gracias a todos por su atención.

PD. Otro PIC muy potente para trabajarlo es el 16F88



Christian Bodington

unread,
Sep 16, 2009, 9:09:58 PM9/16/09
to ConexionElectronica
Saludos Hades, gracias por tus comentarios... exactamente la idea es
abrir este tipo de temas como el que propones ahora. Voy a mirar el
datasheet del PIC18F4550 para ver de que forma se solucionan las dudas
que planteas y hacer algo de código para probar sobre el entrenador a
ver que sale y te comento por este medio.-

Ya tienes algo de código hecho?

Saludos.---

HADES

unread,
Sep 16, 2009, 11:25:09 PM9/16/09
to ConexionElectronica
Saludos Christian y gracias por su pronta respuesta.

De hecho si tengo el código y el programa me funcionó
perfectamente,pero aún así considero que tiene varios errores,
el código en cuestión es el siguiente:

DEFINE LCD_DREG PORTD ' Indica que el Bus estará conectado en el
Puerto D
DEFINE LCD_BITS 4 ' El bus será de cuatro bits.
DEFINE LCD_DBIT 4 ' Selección del Bit de inicio del puerto en
el uC para el
' bus de datos de la LCD
DEFINE LCD_RSREG PORTD ' Indica al uC que el pin "RS" estará en el
Puerto D
DEFINE LCD_RSBIT 2 ' "RS" estará conectado en RD2
DEFINE LCD_EREG PORTD ' Indica al uC que el pin "E" estará en el
Puerto D
DEFINE LCD_EBIT 3
DEFINE OSC 48

PAUSE 500

LCDOut $fe, 1

LCDOut $fe, 2

LCDOut "* Pantalla LCD *"
LCDOut $fe,$C0, "* Alfanumerica *"
Inicio:

GoTo Inicio
End

Como puedes ver este es una adaptación del PROYECTO #10 del libro
(escrito originalmente para un PIC16F84.)
Las observaciones con respecto a dicha adaptaciión son:
1. Para poder compilar el código con PBP obligatoriamente hay que
enlazar a este con el MPASM de MICROCHIP
de lo contrario dará mensaje de error

2. Cuando se realiza dicha compilación automáticamente se hace un
llamado al archivo 18F4550.INC el cual
se encuentra en la carpeta PBP247 del MCSP y cuyo código es:
NOLIST
ifdef PM_USED
LIST
"Error: PM does not support this device. Use MPASM."
NOLIST
else
LIST
LIST p = 18F4550, r = dec, w = -311, w = -230, f = inhx32
INCLUDE "P18F4550.INC" ; MPASM Header
;*****__CONFIG _CONFIG1L, _PLLDIV_5_1L &
_CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_2_1L &
_PLLDIV_2_1L & _USBDIV_2_1L
__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H
__CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
__CONFIG _CONFIG3H, _PBADEN_OFF_3H
__CONFIG _CONFIG4L, _LVP_OFF_4L & _ICPRT_OFF_4L &
_XINST_OFF_4L
NOLIST
endif
LIST
EEPROM_START EQU 0F00000h
BLOCK_SIZE EQU 32
este archivo contiene las palabras de configuración por defecto y
puede ser modificado y justamente la linea marcada
con astericos la modifiqué por la posterior ya que me salía un mensaje
de error al tratar de compilar.

3. El PIC lo conecté con un cristal de 8 Mhz. pero al medir la
frecuencia en funcionamiento del circuito con un multimetro y
me da una lectura de aprox. 32.7 Khz.,. ( el multimetro es confiable )
esto creo que se debe al hecho de no haber configurado
el oscilador (OSCON) y un error de división en la __ config word.,
esto se explica detalladamente en las secciones 2 y 25 del
datasheeet pero no logro entenderlo ( mi inglés es muy pobre)


4. El código no tiene las declaraciones de los puertos A y B ´como
analógicos y/o digitales (ADCON) y aunque en este
caso específico esto no tiene importancia cuando se requiera el uso
de estos puertos si la tendrá.

Esta es toda la información que tengo hasta ahora y de nuevo gracias
por su atención.

Saludos.

JoYcEr182

unread,
Sep 17, 2009, 2:04:55 PM9/17/09
to conexione...@googlegroups.com
Hola, esto fue lo que encontre bucando sobre los fusibles de los PIC18F, tengo algunos pero todavia no los he programado, estilo recolectar informacion y luego empezar a probar, cosa que todavia no he hecho. Aqui te dejo un sitio donde encontraras la forma de configurar los PIC18F con PicBasic

http://www.picbasic.org/forum/archive/index.php/t-8146.html

Espero te sea util. De todas formas cualquier cosa aviso.

Saludos.

Jose Hernandez.

HADES

unread,
Sep 17, 2009, 7:06:22 PM9/17/09
to ConexionElectronica
Hola José, muchas gracias por tu información,la voy a leer y analizar
con detenimiento para comenzar
a probar y con toda seguridad los mantendré informados de mis avances
a medida que vaya experimentando.

Saludos.

Harvey Vásquez.

On 17 sep, 14:04, JoYcEr182 <joycer...@gmail.com> wrote:
> Hola, esto fue lo que encontre bucando sobre los fusibles de los PIC18F,
> tengo algunos pero todavia no los he programado, estilo recolectar
> informacion y luego empezar a probar, cosa que todavia no he hecho. Aqui te
> dejo un sitio donde encontraras la forma de configurar los PIC18F con
> PicBasic
>
> http://www.picbasic.org/forum/archive/index.php/t-8146.html
>
> Espero te sea util. De todas formas cualquier cosa aviso.
>
> Saludos.
>
> Jose Hernandez.
>

Christian Bodington

unread,
Sep 18, 2009, 1:47:44 PM9/18/09
to ConexionElectronica
Mirando el programa de ejemplo en mikrobasic que trae el entrenador de
mikroe... se puede ver que los fusibles de programación están
configurados de la siguiente forma:

_FOSC_HS_1H = $00FC ' Configura oscilador HS (Enable)
_WDT_OFF_2H=$00FE ' Configura el WDT (Disable)
_LVP_OFF_4L = $00FB ' Configura Low Voltage Programing
(Disable)
_XINST_OFF_4L = $00BF ' Configura Instruction Set (Disable)

no he verificado el funcionamiento porque aún no tengo este micro y el
tiempo es escaso estos días, pero si puedo decir que todos los
ejemplos que he probado funcionan a la perfección... por lo cual éste
debería funcionar...--- por lo tanto confío en que esta parte de
configuración de fusibles sea suficiente para iniciar, complementando
la información que nos proporciona el amigo Joycer182...

Saludos...
Reply all
Reply to author
Forward
0 new messages