Iniciarse con los PIC's

Tras mucho tiempo enredando la electrónica "de base" creo que ha llegado el momento de empezar a aprender algo de microcontroladores. Por lo que suelo leer por aquí, supongo que me decantaré por los PIC. En tiempos aprendí a programar (cuatro cosas básicas) un 68000 tanto en C como en "código máquina", así que supongo que no tendré demasiados problemas para empezar.

En el trabajo tengo un "chisme" de marca Hi-Lo Systems (Turbo All lab 2 con módulo all 11) que usamos para grabar diferentes tipos de EPROM, pero parece que también es capaz de grabar PICS (al menos los que tienen formato DIP con

40 pines o menos; la lista es muy extensa).

Como aquí hay mucho conocedor del tema, me gustaría que me recomendaseis algún modelo con el que empezar. Creo que en la web de microchip hay documentación suficiente, así que por ese lado intentaré no molestar.

--
Un saludo,
Alberto
Reply to
Leviatan
Loading thread data ...

Buenas, yo no me considero un conocedor profundo del tema, pero te cuento mis experiencias. A la hora de enfrentarte al asunto dependerá del tiempo que quieras dedicarle

A ver, el PIC por excelencia para iniciarse es el 16F84, es el que más documentado está y sobre el que más proyectos he visto a lo largo de la red. Pero después de llevar mucho tiempo fedellando con ellos a lo mejor es un poco más divertido empezar con un 16F87x (16F876), porque tiene UART y conversores A/D, además de la capacidad de conectarle un In Circuit Debugger (ICD).

Por temas de Soft. Empieza descargandote el Mplab de la página de microchip, viene con un compilador de ensamblador de gratís, el MPASM. Puedes empezar a programar, compilar y simular los proyectos desde ya con el MPLab.

¿Lenguaje? para empezar el ensamblador es el que recomiendan siempre, porque te metes en el bajo nivel de los registros del micro, aprendes mejor la estructura del micro, pero el C es perfectamente válido. Yo utilizo el Hi-Tech, pero está muy extendido el CCS. La "ventaja" de este último es que te viene con muchas librerías para configurar periféricos (entrecomillo lo de ventajas, porque esto en ocasiones es una fuente de problemas) Evidentemente empezar a programar con el CCS y sus librerías es mucho más rápido (pero más inseguro) que empezar machacandote los Datasheet y programando en ensamblador, eso dependerá de lo que busques y de tus capacidades. ¿Documentación? desde luego que puedes empezar mirando páginas y tutoriales con código explicado y demás, pero pienso que la lectura detallada del Datasheet es fundamental para ahorrar mucho tiempo, no la evites, acabaras acudiendo a el (o a este foro u otros) cuando encuentres problemas (si no acudes tu solo, acabaremos mandándote ;) ). Yo empezé con el el libro de Angulo Usategui, no recuerdo el nombre exacto, pero era sobre el 16F84. A dí a de hoy me hubiese comprado el que trata sobre el del 16F87x, pero en cualquier caso estoy contento con el que me compré, me fue muy útil para iniciarme. Después mirarte las páginas de proyectos de la gente. ¿Programador?->¿Te gusta hacer placas, soldar y cacharrear? en sangoogle tienes muchos, el más famoso por estos lares en tiempos del canal satélite digital fue el basado en el JDM (el famoso TE20) en sangoogle tienes cienes de versiones. Los tienes también por puerto paralelo, y hasta te peudes hacer un clón del ICD e ICD2... por cierto, a mi modo de ver esta herramienta es imprescindible para desarrollar, hoy en día no me planteo empezar un desarrollo si no puedo utilizar el ICD2.

Espero no haberte liado mucho, para cualquier duda más concreta, si no te apetece utilizar el Sangoogle... aquí estamos.

Saludos.

P.D:¿Has pensado en empezar con AVR? por lo poco que estoy viendo son mucho mejores micros, están muy bien documentados y existen herramientas de código abierto, el tema es que en este grupo no se habla mucho de ellos, me imagino que será porque los newbis no preguntamos sobre los AVR, pero desconozco cuantos expertos en AVR hay por aquí

Reply to
Fleming

Yo empezaría con el PIC16F88. Es fácil de encontrar (además puedes pedir samples a Microchip), pequeño, y bastante completo en plan de probar cosas. De todas formas, si piensas programarlo en C, te va a dar casi igual qué modelo elijas, pero sí es interesante que cojas uno moderno, que incluya ya un oscilador interno completo, de forma que para ponerlo a funcionar no necesitas más que cargar el programa y alimentarlo, sin un sólo componente externo.

Tampoco sería mala cosa empezar montando alguno de los miles de diseños que hay por la red que incluyen el código fuente, sea en assembler o en C, para ver que funciona, y a partir de ahí ir modificando el programa para aprender. Lo digo porque, al principio, una de las cosas que cuesta un poco, es conseguir configurarlos correctamente para que empiecen a funcionar. La gran cantidad de funciones que se pueden configurar para cada patilla, los distintos modos de funcionamiento del oscilador, y el desconocimiento inicial sobre el entorno de programación y de grabación, suelen ser la causa.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

El problema de los AVR, y lo que hace que por aquí no se conozcan mucho, es que prácticamente no tienen (o tenían) distribución en España. Los modelos famosos de Microchip (los de las tarjetas de C+) los encontrabas hasta en la ferretería de la esquina, y si no los pides como samples, pero para conseguir un AVR, si no vives en Madrid o Barcelona, tienes que pedirlo a alguna e-tienda, a precios abusivos.

Por otro lado, yo no creo que sean ni mejores ni peores que los PICs (o que otras muchas familias, entre ellas las mil que usan el core del 8051), pero en otros países como USA se han extendido más, por razones de distribución, y por eso hay tanto publicado sobre ellos.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

"Pepitof"

He estado echando un ojo a la documentación del programador que mencionaba en el primer mensaje y hay una lista de dispositivos compatibles. Abajo copio los PIC 16* que salen. En principio parece que no hay ninguno de los que llevan oscilador interno (es posible que su aparición sea posterior a la de la documentación; el equipo lleva aquí decenios y ya no hay actualizaciones disponibles en la web del fabricante). Sí que salen los que me recomienda Fleming, así que intentaré samplearlos a Microchip.

PIC16C505 PIC16C505(JW) PIC16C52

PIC16C54 PIC16C54-HS PIC16C54-LP PIC16C54-RC

PIC16C54-XT PIC16C54A PIC16C54B PIC16C54C

PIC16C55 PIC16C55-HS PIC16C55-LP PIC16C55-RC

PIC16C55-XT PIC16C554 PIC16C556 PIC16C558

PIC16C55A PIC16C56 PIC16C56-HS PIC16C56-LP

PIC16C56-RC PIC16C56-XT PIC16C56A PIC16C57

PIC16C57-HS PIC16C57-LP PIC16C57-RC PIC16C57-XT

PIC16C57C PIC16C58A PIC16C58B PIC16C61

PIC16C62 PIC16C620 PIC16C620A PIC16C621

PIC16C621A PIC16C622 PIC16C622A PIC16C62A

PIC16C62B PIC16C63 PIC16C63A PIC16C64

PIC16C641 PIC16C642 PIC16C64A PIC16C65

PIC16C65A PIC16C65B PIC16C66 PIC16C661

PIC16C662 PIC16C67 PIC16C71 PIC16C710

PIC16C711 PIC16C712 PIC16C715 PIC16C716

PIC16C717 PIC16C72 PIC16C72A PIC16C73

PIC16C73A PIC16C73B PIC16C74 PIC16C745

PIC16C74A PIC16C74B PIC16C76 PIC16C765

PIC16C77 *PIC16C770 *PIC16C771 PIC16C773

PIC16C774 PIC16C84 *PIC16C923(PLCC) *PIC16C923(SDIP)

*PIC16C923(TQFP) *PIC16C924(PLCC) *PIC16C924(SDIP) *PIC16C924(TQFP)

*PIC16C925(PLCC) *PIC16C926(PLCC) PIC16CE623 PIC16CE624

PIC16CE625 PIC16F627 PIC16F628 PIC16F73

PIC16F74 PIC16F76 PIC16F77 PIC16F83

PIC16F84 PIC16F84A PIC16F870 PIC16F871

PIC16F872 PIC16F873 PIC16F874 PIC16F876

PIC16F877 PIC16LC84 PIC16LF83 PIC16LF84

--
Un saludo,
Alberto
Reply to
Leviatan

Creo que el 16F628 sí tiene (hablo de memoria, míralo a ver), y es un cacharro también interesante. De todas formas, lo del oscilador es poca cosa, un cuarzo y un par de condensadores y listo, y ciertamente, si no fuera por eso, el 16F876 (en general la serie 16F87x) es de lo más completo, con puerto I2C completo por hardware, UART, ADC, memoria autoprogramable, y muchas cosas más.

Hay una serie más moderna, similar a esta pero con algunos añadidos, entre ellos el oscilador interno, y compatible a nivel de memoria y patillaje, con lo que la puedes programar engañando al programador (lo configuras como si fuera un 16F87x). No recuerdo ahora la numeración, pero creo que era 16F88x. Míralo a ver, si vas a pedir samples.

Por otro lado, si te interesa el tema, te haces un programador en dos patadas. Tener un programador en el trabajo puede ser frustrante, porque, sobre todo al principio, pequeños fallos de configuración pueden hacer que el micro no ande, y si no puedes reprogramarlo hasta el día siguiente, la cosa se puede hacer eterna.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

El 16F628 es el sustituto pin a pin del 16f84, pero con todas las mejoras (oscilador interno, Uart, más memoria, ADC?). Es una buena plataforma, pero vas a encontrar muchos menos para compilar directamente... de cero empezaría por el 16f84 o el 16f87x.

San Google me da:

-362.000 entradas de "16f84".

-198.000 entradas de "16f877"

-27.900 entradas de "16f87x"

-94.100 entradas de "16f876" Esto último no quiere decir mucho, pero da una idea de lo que te puedes encontrar en ese mar de información...

A ver, hasta donde yo se, microchip solo tiene una forma de programar los micros, y esa no ha cambiado recientemente, así que si puede programar la familia Flash, va a poder programar un 16F88...

Pásate por aquí:

formatting link

y pide unas muestras y sales de dudas. De todas maneras un cristal de 4Mhz y dos condensadores de 21pF no son muy caros tampoco...

Reply to
Fleming

Sorry, quería decir que vas a encontrar muchos menos proyectos para compilar directamente y después introducir tu modificaciones...

Reply to
Fleming

Yo haría un primer programa para el 16f84 en asm, de acuerdo que no lleva usart ni adc ni i2c ... pero precisamente por eso es mucho más facil de comenzar con él.

De hecho yo lo hice así, me bajé el datasheet (y el mplab con el asm) y solo leyendolo, y en un solo día, pude hacerme una idea bastante exacta de lo que es el pic. Ni tutoriales ni libros ni nada parecido.

Lo mejor que tienen estos micros es que solo tiene 35 instrucciones, así que en un momento te lees el capitúlo correspondiente en el datasheet y ya no hay más que aprender, es decir que es facil de aprender y luego un coñazo para programar :-) La gestión de la memoria en bancos es un poco complicada (y de eso no te libras con ningun 16Fxxx). Luego con el 16F877 o el 16F628 (o los otros más modernos) todo es igual pero al tener más funciones (muchos pines que hacen varias funciones, más bloques internos , contadores, uart, adc...) es más complicado de configurar.

Reply to
Nolo Pongo

Il se trouve que Leviatan a formulé :

Por partes, como dijo Jack el destripador:

Por un lado, yo estoy con Nolopongo en que mejor empezar con un F84 que los hay a patadas en las tiendas si los quieres para ya, encuentras proyectos documentados a cientos en la red y alberga muy pocos gadgets que te distraigan o líen. Por otro, IMHO, lo mejor es empezar programando en ASM, que tampoco es para tanto: un puñado de instrucciones fáciles de aprender y 'pensar en pic', olvidarse de otras arquitecturas. De esta manera, conocerás mucho mejor el micro y sabrás lo que pueden y no pueden hacer y entenderás más fácilmente porqué a veces no hacen lo que quieres en c u otro lenguaje de alto nivel. Tampoco hay problema en empezar directamente con lenguajes de alto nivel, pero opino que pierdes bastante noción de lo que realmente hay debajo. Luego, yo de tí me construiría un programador que te saldrá a cuenta. 4 duros (más lo que valga el zócalo ZIF si lo prefieres) y una tarde te valen. Sin ir más lejos, en la página de pepitof tienes al menos un par de ellos si no recuerdo mal. También puedes pillarte uno por usb por la comodida y seguridad si no tienes un pc dedicado y con los conectores fácilmente accesibles. Son baratos. EL MPLAB, libremente ofrecido por la propia Microchip, imprescindible. Por último, no te lo mencionan, pero te recomiendo que te montes una placa de prototipos básica: la parte del reloj, alimentación, zócalo y si quieres luego sencillamente espadines, regletas o lo que sea para sacar las señales. Si te montas como mínimo esa base, te podrás centrar en lo tuyo y olvidarte de esas cosillas que distraen demasiado tiempo. Las protoboard en sí no son malas, pero acabas equivocándote o teniendo un falso contacto y volviéndote loco co nel soft cuando es un problema de conexionado.

Reply to
franois

Yo hice algunos inventos con el 16F84 y el programador de Microsystem (Angulo). Puedes ver algo en

formatting link

G.

Reply to
gvidalr

snipped-for-privacy@telefonica.net a écrit :

Uff, si te oye uno que yo me sé y que hace mucho que no aparece... BienREvenido, Gaspar.

Reply to
franois

Si te refieres a la mala opinión que tenía GasparV sobre Angulo, yo la comparto. Tuve que padecer sus libros sobre el Z80, y creo que es de lo peor que he visto en publicaciones técnicas. No sé si se reformaría años después al publicar sobre otros micros, pero me huelo que no. Alguien dijo por aquí que el del 16F84 era poco más que una mala traducción del data-sheet.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

Pepitof vient de nous annoncer :

No, GasparV que yo recuerde aconsejaba a Angulo. De hecho, mi post responde a un post de GasparV recomendándolo, por eso puse lo de bienrevenido: parece que vuelve a la carga ;) Así que si estás en lo cierto, Gaspar ha sufrido una metamorfosis inversa: de denostarlos ha pasado a defenderlos, cuando lo normal es empezar con ellos satisfecho y empezar a echar pestes según aprendes y te das cuenta que te han vendido un librillo de divulgación al precio de un tocho de los que apreciarás toda la vida como el Malvino, por citar un clásico.

Me refería a otro histórico: KT88 que sí echaba pestes, sapos y culebras sobre el autor muy en su línea. Yo también he leído e incluso tengo libros de Angulo y depende del enfoque y filosofía con que lo cojas: si te mola buscarte la vida y liarte solito hasta llegar a la conclusión aprendiendo un huevo por el camino, con mucha chicha auqnue haya que digerirla despacio, al estilo universidad, pues sí, Angulo es de lo peorcito. Ahora, si te van las cosas masticaditas, que te pongan a trabajar al instante auqnue no sepas qué haces exactamente para luego ir engordando los conocimientos por otro lado si te interesa (porque de Angulo no los vas a sacar), al estilo egb o incluso bup, entonces Angulo es tu libro. En general, en cuanto uno tiene la base establecida y profundiza _un poco_, ve que los libros de angulo se quedan muy cortos, que podía haber explicado lo mismo en un formato revista con el 25% de páginas (y

10% de precio ;) ) y que todo está al nivel de ojear datasheets y las notas de aplicación básicas o incluso simplemente estudiar un puñado de montajes públicos bien documentados. A día de hoy con casi todo el mundo accediendo a internet en casa y/o trabajo, la verdad es que son más bien innecesarios, pero no hace tanto, era IMHO una buena herramienta de aproximación para el que era su primer micro, no tenía idea de cómo afrontarlo y/o no controla el inglés (*) y/o estaba sin acceso a internet.

P.S. Tengo varios y dudo que los vuelva a ojear nunca si no es como leería Guerra y Paz: como novela histórica :p

(*) Al hilo de esto, solo curiosidad: ¿hay algún libro decente sobre los pic en castellano? porque si hay que recomendar y no hay otro, será malo, pero para el que no sepa leer a bush, es lo que hay.

Reply to
franois

"franois" escribió en el mensaje news: snipped-for-privacy@terra.es...

Ah, no es que recordara su postura al respecto (radical, seguro), pero por lo que decías, me pareció entender que era contraria.

Mmmm... GasparV = gvidal... mira que soy torpe.

Pues si es así, bienvenido sea. Parece que la gente vuelve a casa por Navidad (Cram también creo que ha posteado últimamente).

A esto me refería. Que te venden una especie de guía de iniciación, al estilo de aquellas magníficas Guías Anaya (pero con una fracción de su calidad editorial), y te la cobran a precio de libro técnico de los de verdad (me refiero a algo como el Hayes de sistemas digitales, o el Malvino que has nombrado, que no puede ser un ejemplo mejor).

Sí, como una forma de perderles el miedo a los micros está bien. Pero ni se acerca a lo que yo entiendo por libro técnico. Para mí un buen libro técnico es ese que tienes en la estantería, y por más años que pasen, sigues consultándolo de vez en cuando para resolver alguna duda.

Que yo sepa no, aunque tampoco he buscado mucho, la verdad. Aunque ahora pueda estar desfasado, en su momento, casi de lo mejor que he visto en castellano, aunque también en plan de iniciación, era un proyecto fin de carrera sobre microcontroladores en general, y sobre los PICs en especial (lo tengo colgado en mi web, con permiso de los autores).

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

Hola a todos,

es verdad, hace un porr=F3n que no participo en los grupos .. cosas de dejar el poco tiempo libre para otras cosas. Ahora escribo desde Google groups y hay un detalle que no me aclaro, y es para hacer que salga mi apodo GasparV .. no se si tendr=E1 incidencia en las b=FAsquedas o estad=EDsticas. Si alguno sabe algo al respecto estar=E9 cyber_agradecido por ello.

Respecto a los PIC, creo que el libro concreto que trata de los PIC en general, est=E1 bastante bien. Toca algunos modelos de hace unos a=F1os y aclara algunos conceptos de conectividad y programaci=F3n. Yo tambi=E9n adquir=ED el programador (de su misma empresa) por un tema de ahorrro de tiempo (para montar el prototipo de mi proyecto), ya que los m=FAltiples esquemas que circulaban por la red, incluso del propio del fabricante, daban ciertos problemas.

Por supuesto que tambi=E9n me le=ED MUCHOS datasheets y mucha parafernalia de las APPLICATIONS NOTES, algo fabuloso para alguien que empez=F3 en la electr=F3nica hace muchos a=F1os. S=F3lo recordar que el primer ordenador 'personal' que conoc=ED era el ZX80 / ZX81 y estaba haciendo la mili .. no te digo m=E1s.

Saludos especiales a franois y pepitof, me sorprende veros todav=EDa en primera l=EDnea y por los datos que proporciona San Google veo que sois inagotables !

G.

Reply to
gvidalr

Si no estas suscripto antes de mandar el mensaje podes elegir el nombre. Tambien la podes elegirla al hacer la suscripcion. Si ya estas suscripto y queres cambiarla vas a "Edit my subscrition" o a "Edit my memberships"

Para las estadisticas solo se fija en el email.

Yo lo uso solo cuando tengo que mandar un mensaje, para leer me resulta mas comodo el OE. Deje de usar servidores gratuitos que permitian posting porque eran malisimos. No sera tan comodo como un servidor de news pago, pero tampoco es la muerte, es como decia Inodoro Pereyra "Ando mal pero acostumbrado"

Eduardo.

Reply to
Eduardo

o el

o

mpezar.

on

arece

P con

eis

r.

Tengo la Hi-Lo systems Turbo all-lab2, pero no tengo ni los drivers ni el s oftware, tu los tienes?. Me seria de gran ayuda

Mil gracias

Curro

Reply to
currobg

Y va snipped-for-privacy@gmail.com y suelta:

lo miro.

--
Un saludo, 
Alberto
Reply to
Leviatan

Leviatan, pensando en voz alta, dice:

--
Un saludo, 
Alberto
Reply to
Leviatan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.