# Iniciarme en la familia de pics 18F



## pic-man (Sep 4, 2007)

Hola, quisiera hacerles una consulta. Llevo ya casi un año programando microcontroladores pic de la familia 16F, aún no me considero experto ya que hay muchas cosas que me faltan por aprender y por perfeccionar pero quisiera dar el salto a la familia 18F, primero programando en ensamblador y después pasandome a C, esto es así porque quisiera conocer detalladamente estos microcontroladores pero no se por donde empezar, no se que micro escoger para aprender, en la 16F no tuve problema, escogí el 16f628 pero en la 18F no se cual sería bueno asi que quisiera que me recomendaran alguno para empezar, así como algún manual o cualquier tipo de literatura referente a estos microcontroladores, si se puede ejemplos también los agredecería mucho.

Bueno, tal vez es mucho pedir pero en realidad me interesa aprender a programar la familia 18F y en un futuro también los dsPICs, espero que alguien me pueda indicar el camino que debo seguir, y desde ahoria muchas gracias a todos por ayudar siempre en el foro.


----------



## maunix (Sep 5, 2007)

Ciertamente saltar de un 16F628 a un 18F es un 'gran paso'.  Tal vez lo más 'suave' hubiera sido de un 16F877A a un 18F452 o 18F4520.

Si quieres usar un micro de los 18F y muy potente y que tenga todo lo básico para usarlos, te recomiendo un 18F4520, el cual es como un 18F452 pero con oscilador interno y un par de canales A/Ds más.   La razón por la que te sugiero ese micro es porque está lleno de páginas y de código para ellos porque son los más usados a nivel general.

Saludos


----------



## pic-man (Sep 5, 2007)

Gracias por la sugerencia maunix, voy a bajar el datasheet y a buscar información sobre ese micro. Solo decirte que no estoy pasando del 16F628 a la familia 18F sino que el primer pic que programé fue el 628, después he usado más pics de la familia 16F, siendo el 16F877A el que más frecuentemente he utilizado.

Bueno, pues muchas gracias


----------



## maunix (Sep 5, 2007)

pic-man dijo:
			
		

> Gracias por la sugerencia maunix, voy a bajar el datasheet y a buscar información sobre ese micro. Solo decirte que no estoy pasando del 16F628 a la familia 18F sino que el primer pic que programé fue el 628, después he usado más pics de la familia 16F, siendo el 16F877A el que más frecuentemente he utilizado.
> 
> Bueno, pues muchas gracias




Ah pido perdón entonces, si estás acostumbrado al 16F877A el 18F452 o 18F4520 te van a resultar 'extremadamente' familiares.


----------



## tiopepe123 (Sep 5, 2007)

Si utilizas C ni te enteras que has cambiado de micro


----------



## maunix (Sep 6, 2007)

tiopepe123 dijo:
			
		

> Si utilizas C ni te enteras que has cambiado de micro



Coincido y también es cierto que en un PIC18 se le puede sacar más jugo a otros aspectos que pueden hacer incluso el software en C más simple (access ram por ejemplo) , pero bueno ya eso es entrar a hilar más fino y no creo que sea la idea de este hilo.

Es decir, si uno hace un código en C para un 16F877A y lo migra a un 18F452 de seguro que anda (excepto tal vez alguna cuestión de grabado de memoria flash por ejemplo) pero el paso inverso no siempre es posible, incluso en C.


----------



## tiopepe123 (Sep 6, 2007)

Pero es una migracion sin traumas, sin aspirinas y todo eso.

Si el paso inverso es puliagudo, ya lo hice y daba errores de ram, es que uno con el C utiliza las variables alegramente y luego pasa lo que pasa  te sale un windowsvista..jijiji


----------



## maunix (Sep 6, 2007)

tiopepe123 dijo:
			
		

> Pero es una migracion sin traumas, sin aspirinas y todo eso.


Nunca usé aspirinas en un código pero bueno...     



			
				tiopepe123 dijo:
			
		

> Si el paso inverso es puliagudo, ya lo hice y daba errores de ram, es que uno con el C utiliza las variables alegramente y luego pasa lo que pasa  te sale un windowsvista..jijiji



Y no solo es tema de optimización de uso de variables alegremente, tambien un 18F tiene mucha más memoria RAM


----------



## mabauti (Sep 6, 2007)

aprovechando a tiopepe, cual seria el mejor compilador de C para PICs?


----------



## maunix (Sep 7, 2007)

mabauti dijo:
			
		

> aprovechando a tiopepe, cual seria el mejor compilador de C para PICs?



'el mejor' es un término que se puede aplicar según diferentes criterios, para algunos el mejor es el que le permite escribir un código en 2 líneas, para otros el que les facilite la vida automatizando cosas, para otros el que les permita hacer y generar el código más pequeño y para otros el que sea lo más configurable posible.

Cada compilador tiene sus particularidades, pero según lo que he observado en mis años de probar unos y otros creo que el mejor es el de hitech, genera el código más pequeño y es el más configurable (en esto hago yo mi propio enfoque sobre que es 'mejor' para mi punto de vista).  Eso si... es el más caro de todos.

Saludos


----------



## tiopepe123 (Sep 7, 2007)

Yo utilizo el CCS C o PICC que es lo mismo, es el mas sencillo de utilizar y va bien. Creo que para proyectos normalitos es un buen compilador, tiene bastantes ejemplos y segun veo se va imponiendo con el tiempo.
Tiene varios ejemplos que sirven de guia y todo, creo que para operaciones poco criticas como robots y temas similares es bastante practico junto con un bootloader.



Para maunix: 
Cuando lo probe por primera vez me perecio complicado cosa que el ccs tarde poco rato.

Por que no te gusta CCs, asi por encima...
Todavia existe esa cosa llamada HITE o algo asi, una especie de simulador, compilador.


----------



## mabauti (Sep 7, 2007)

Alguna liga o enlace tiopepe?


----------



## maunix (Sep 7, 2007)

tiopepe123 dijo:
			
		

> Yo utilizo el CCS C o PICC que es lo mismo, es el mas sencillo de utilizar y va bien. Creo que para proyectos normalitos es un buen compilador, tiene bastantes ejemplos y segun veo se va imponiendo con el tiempo.


Se impone en ciertos ambientes, pero no lo he visto en lugares muy profesionales.  Hay algunos profesionales que lo usan por supuesto pero en general es por hobbystas.



			
				tiopepe123 dijo:
			
		

> Tiene varios ejemplos que sirven de guia y todo, creo que para operaciones poco criticas como robots y temas similares es bastante practico junto con un bootloader.


Si, está bien pensado para arrancar rápido, no discuto eso.




			
				tiopepe123 dijo:
			
		

> Cuando lo probe por primera vez me perecio complicado cosa que el ccs tarde poco rato.


Si, el ccs es mas simple pero genera código menos eficiente y a veces tiene 'bugs' serios, uno hace un programa perfectamente bien y el programa no funciona... a los 15 días sale un 'parche' que soluciona el problema pero para eso perdiste 15 días que para ciertos ambientes donde el 'tiempo al mercado' es crítico no es aceptable.

Yo he usado el hitech y el c18 (el cual sigo usando) ,  el hitech es el mejor pero también el más caro, elegí el c18 por ser más económico y por tener muy buen soporte en el foro de microchip.

Conozco gente que ha usado los 3, ccs, c18 y hitech, y coinciden en que el ccs es adecuado para programas simples que se quiera desarrollarlos rápido, mientras que los otros 2 son más para aplicaciones que tengan mucho manejo de datos, muchas tareas concurrentes y deban funcionar en un esquema de 24x365.  

También en el hitech y el c18 uno puede ver el código fuente, en el ccs no, es un enlatado cosa que no me gusta para nada, me gusta 'dominar' el pic y no que el compilador me haga todo automático.  Eso me ha permitido hacer cosas que con el ccs no se pueden hacer.

Esa es mi postura, pero como dije antes, todo depende del enfoque y para qué uno usa el compilador y qué tipo de aplicaciones va a desarrollar.

Saludos


----------



## tiopepe123 (Sep 7, 2007)

Si que te deja verlo el compilador en forma lst, y si realmente alli se ver algunas burradas grandes como repeticion de secuencias de comandos sin sentido.

Lo de los bug es un tema sin solucion, creo que en todos hay y si te toca la china, como a mi me paso, el calenton de cabeza para determinar de quien es la culpa

No me comentaste el hide o algo asi, era una especie de simulador tipo proteus con pantallita y todo,parecia prometedor, existe o lo han quitado.

Que tal el compilador de microchip, me quiero pasar  a las dspic, hay un gran cambio es un poco mas delo mismo

Para conseguir el CCs pasate por los sitios habituales ya sabes esos que no se pueden nombrar (esto parece Harrypotelandia)


----------



## maunix (Sep 7, 2007)

tiopepe123 dijo:
			
		

> Si que te deja verlo el compilador en forma lst, y si realmente alli se ver algunas burradas grandes como repeticion de secuencias de comandos sin sentido.



Una cosa es ver el código assembler generado y otra es el código fuente en C.  Ver el código fuente en C es que por ejemplo en C18 si haces putc(x), puedes ver el código fuente de la función putc pero en c! no en assembler.   Y así para todas las funciones del compilador.  En CCS hasta donde yo he visto todo esto está 'oculto'.




			
				tiopepe123 dijo:
			
		

> Lo de los bug es un tema sin solucion, creo que en todos hay y si te toca la china, como a mi me paso, el calenton de cabeza para determinar de quien es la culpa


En otros los bugs son más detallistas e incluso puntuales, en CCS los había por todos lados.  De hecho en otro foro del que soy miembro lo usan bastante y también le critican lo mismo -> que tiene bugs y bugs y bugs.




			
				tiopepe123 dijo:
			
		

> No me comentaste el hide o algo asi, era una especie de simulador tipo proteus con pantallita y todo,parecia prometedor, existe o lo han quitado.


No lo he usado, no se de que se trata ese programa.




			
				tiopepe123 dijo:
			
		

> Que tal el compilador de microchip, me quiero pasar  a las dspic, hay un gran cambio es un poco mas delo mismo


Si usas ccs , pasarte al C30 será un 'gran cambio'.  El C30 según dice y he leído, es muy buen compilador, yo no lo he usado en su versión 3.x, que ha corregido numerosas cuestiones y mejorado otras.



			
				tiopepe123 dijo:
			
		

> Para conseguir el CCs pasate por los sitios habituales ya sabes esos que no se pueden nombrar (esto parece Harrypotelandia)


Je, es que me he quemado con el ccs, lo he descartado de mi lista de posibles programas, ya tengo todo desarrollado en otros C, de todas formas gracias.


----------



## Doqman (Sep 7, 2007)

la verdad  quisiera saber donde puedo encontrar mas información sobre los pic 18f4520, pues no se encuentra facilmente y lo poco que he hallado se encuentra en chino o algun idioma parecido.

lo que nocesito es mas que todo ejercicios, como programarlo, como utilizar el oscilador interno

De antemano gracias.


----------



## tiopepe123 (Sep 8, 2007)

GRACIAS MAUNIX,  siempre es interesante oir otras opiniones.

Me da un poco de repelus pasarme a los 16bits, toda una vida con 8 pues imaginate, lo mas cerca que estube con 16 bits fue con los Z80, una arquitectura que siempre me gusto.

Que tal la serie 24 que comentabas que utilizabas.




DOGMAN:
Pasate por aqui, el foro tambien.

http://www.todopic.com.ar/

No me creo que no hallas encontrado información, basicamente es como los pic18 pero con algun añadido.


----------



## maunix (Sep 8, 2007)

tiopepe123 dijo:
			
		

> GRACIAS MAUNIX,  siempre es interesante oir otras opiniones.
> 
> Me da un poco de repelus pasarme a los 16bits, toda una vida con 8 pues imaginate, lo mas cerca que estube con 16 bits fue con los Z80, una arquitectura que siempre me gusto.


Jeje, hace año no los uso ¿pero acaso el Z80 no es también es de 8 bits ? 

Si programas en C, no debiera haber grandes cambios ya que de toda la lógica se encarga el compilador, lo que sí para un micro de 16bits le es más fácil y rápido manejar datos de a 16bits, y para un micro de 8 bits, manejar datos de 8 bits.  Luego surgen las optimizaciones de si justo quieres usar un dato de 24 bits! ahi sería 1,5 words de lo que estas usando (seria , hablando así muy generalmente sin entrar en detalles, como trabajar en 12 bits con un pic de 8 bits).  Eso haría que uno pierda velocidad, por ende, es casi seguro que sería más rápido trabajar con variables de 32 bits que de 24 bits en un pic de 16bits.



			
				tiopepe123 dijo:
			
		

> Que tal la serie 24 que comentabas que utilizabas.


No los he usado, solo ojeado, tengo algunos samples pero nunca me he hecho el tiempo a usarlos.  Según lo que leí la arquitectura cambia bastante, pero cambia para mejor y además son micros mucho más rápidos que pueden andar a 30 o 40 mips , cuando un 18f anda a 12mips como máximo.


----------



## spiritbreaker (Oct 20, 2008)

comohago las interfaces entre  el pic y la compu por usb  ,,en que programo ese entorno en windows alguien sabe como aprender a hacer eso gracias
solo me falta eso para entrar a fondo en pic usb


----------



## Meta (Oct 20, 2008)

Veo que el PIC más usado al menos en España es el 18F2550 y 18F4550 entre otras variantes.


----------



## LMarVg (Jul 14, 2010)

Buenas... Estoy empezando a trabajar con los PIC de la familia 18F... el drama lo tengo con los bits de configuracion...antes con los 16F solo utilizaba la directiva __CONFIG 0x???? y de esta manera resolvia esto. Mi pregunta es si en esta familia (18F) existe alguna directiva para configurar los 18F

Gracias ....


----------



## cerebroo (Jul 14, 2010)

Tengo la misma duda que tu, pero por lo que veo tambien usas ASM como lenguaje, pues en el MPLAB hay una opcion para setear los bits de configuracion, y pues io creo que si funciona, aunque igual tengo poca informacion acerca de esta familioa de pics en la que tambien me estoy iniciando, y pues casi todos lo hacen en C.


----------

