Comenzando con la programación PIC

He estado buscando hacer algo de Programación PIC, pero a diferencia de algunos de los otros microcontroladores disponibles, la gran cantidad de chips diferentes disponibles me ha causado cierta confusión. También parece que algunos de los chips sugeridos en algunos sitios como buenas opciones para las personas que comienzan con la programación PIC pueden haber sido reemplazados (o puede que me esté confundiendo aún más).

Así que mi pregunta se reduce a tres partes:

  • ¿Cuál sería un buen chip PIC para empezar?

  • Estoy bastante contento con el ensamblador o algún otro lenguaje, así que, ¿qué IDE/idiomas sugeriría para Linux?

  • ¿Qué recomendaría en términos de obtener el código en el chip, a través de una conexión USB desde una computadora portátil Linux (¿PicKit 2? era una posibilidad) y qué configuración de circuito/placa necesitaré para hacer esto?

Editar: después de una larga discusión con Kortuk (ver los comentarios a continuación) sobre los méritos de varias partes del kit, he decidido comenzar con el kit de inicio PicKit2. Esto viene con un chip PIC16F690 instalado.

Respuestas (6)

Estoy de acuerdo con los PIC18, pero para alguien que recién comienza, pueden ser un poco intensos. Actualmente enseño desarrollo de PIC a ingenieros eléctricos de alto nivel e incluso dentro de las mismas clases, su variedad de antecedentes puede ser asombrosa.

Actualmente enseño a la gente con el compilador CCS PIC-C pero cuesta dinero. Es increíblemente simple y fue elegido porque la mayoría de nuestros estudiantes solo han trabajado en un entorno de laboratorio con ensamblaje básico o programación x86.

Tengo la sensación de que un PIC16 muy simple puede encajar mejor, pero dependerá de sus antecedentes. El PIC16F688 es un PIC muy simple que usamos en nuestro primer proyecto para animar a la gente.

Tengo un título con honores de primera clase en informática que incluía mucha programación (principalmente C ++, un poco de VB6, algo de ensamblador). También tengo una licenciatura en Matemáticas y enseño Matemáticas a niños de Secundaria. Puedo y programo en una variedad de lenguajes (aunque no en C) y estoy investigando varias cosas nuevas, incluido jugar con microcontroladores.
El 16f88 era uno de los chips que estaba investigando.
Simplemente vuelva a leer su respuesta y se dio cuenta de que especificó 16f688, no 16f88.
El 16F88 es una elección perfecta. Hay un millón de PIC diferentes, y creo que unos 50 000 de ellos son buenos para empezar. La programación de microcontroladores a menudo plantea problemas a las personas a las que he ayudado con experiencia en informática porque no tomaron muchas clases sobre electricidad, algo que desearía que agregaran a los programas de grado. Sin embargo, no creo que la programación sea un desafío en absoluto, pero probablemente no sería una mala elección obtener una placa de desarrollo. Esto se vería afectado por su rango de precios. microchipdirect.com/ProductSearch.aspx?Keywords=DV164120
Creo que el último enlace que publiqué podría ser una buena opción, le dará una placa ya conectada para trabajar por 50 dólares (-25% si tiene un correo electrónico .edu) y luego tendrá un programador que puede usar para cualquier otra ficha que consigas. Estoy deseando saber cómo van tus proyectos.
Estos eran exactamente los tableros que estaba mirando la semana pasada. Aunque creo que el 16f88 es de 18 pines, ¿necesitaría obtener la placa para chips de 18 pines también, que son alrededor de £ 15 adicionales?
No estoy seguro de cuál es la pregunta, eso me parece perfectamente razonable.
El que vinculó (Kit de inicio Pickit 2) viene con una placa que es buena para chips de 8, 14 y 20 pines, solo estaba comprobando que también tendría que comprar la placa DM164120-4 para hacer frente a un chip de 18 pines que es lo que es el 16f88. Estaba comprobando porque al menos un sitio al que fui la semana pasada implicaba que la placa DM164120-1 que viene con el kit también serviría para PIC de 18 pines.
Si obtiene el DM164120-1, le sugiero que use el PIC que viene con él. Estoy justo en el medio de ayudar a alguien con un proyecto que necesita para dar clase mañana o buscaría más, pero cada lugar donde encuentro su tablero no puedo encontrar su esquema. Puedo decirte, basándome en el pin-out del PIC16F631, que no es compatible con un PIC16F88. Los pines de alimentación y programación no se alinearán. Si compra una placa de desarrollo, solo use el PIC que viene con ella, será significativamente más feliz.
Esta página: microchip.com/stellent/… muestra placas que son compatibles con PicKit 2 y 3. En el segundo cuadro hacia abajo, indica que el DM161420-1 "No admite dispositivos PIC10F 8DIP o 18-Pin". y luego tiene el DM161420-4 que es compatible con 18 pines. No parece haber ningún esquema en la parte inferior de la página para el pin 18, pero hay para la otra placa en la guía del usuario. Así que supongo que ese es el camino a seguir si elijo el 16F88 como motor de arranque. Como alternativa, la placa de 18 pines viene con un PIC16F648A.
Sí, has hecho bien tu investigación. Mi ayuda puede haber sido un poco equivocada. Si quiere mojarse los pies, una placa de desarrollo es una forma de evitar tener que lidiar con el hardware de construir un PIC antes de que esté listo. Si sigue este camino, sugeriría usar el PIC que viene con la placa y determinar su próxima elección de PIC una vez que esté listo para construir sus propias placas. Si quieres tu propia imagen desde el principio, compra un programador, la imagen y cualquier cosa que necesites para ejecutar la imagen desde el principio. Puede ahorrar dinero y usar una placa de pruebas.
Creo que optaré entonces por el kit de inicio PicKit 2 y agregaré nuevos chips/placas cuando sea necesario. Inicialmente, esta parece una opción razonablemente barata, ya que puedo obtener el kit directamente del microchip por £ 31.24 que incluye una placa de desarrollo y un chip (16f690). Saludos, ahora para encontrar algunos tutoriales/libros decentes.
Oye, si lo pides con una cuenta que registraste usando un correo electrónico .edu, recibirás un 25 % de descuento.
MicrochipDirect tiene una sección en el Reino Unido que puede ser diferente a la de EE. UU. La cuenta de My School termina en .co.uk, cuando están registrados específicamente en escuelas aquí, tienden a terminar en .sch.uk, las universidades tienden a terminar en .ac.uk. De todos modos, podría ver si tienen algún descuento, aunque es para mi beneficio y no para el de la escuela, tienden a ser bastante flexibles así.
El descuento no tiene nada que ver con que la escuela obtenga beneficios, se trata de no cobrarle tanto a un estudiante universitario (Uni). Sugeriría probar suerte.
Quise decir que como nuestro nombre de dominio termina en .co.uk, la escuela probablemente tendría que verificar mi vínculo con ellos. Pero son bastante buenos en esas cosas, incluso si el beneficio para la Escuela no es evidente de inmediato. Aunque si no tengo cuidado, terminaré enseñando electrónica a estudiantes seleccionados al azar el próximo año, ya que a veces parece ser así, especialmente si los Tories entran.
Ohh, entendí, tengo bastantes amigos del Reino Unido. Te decía que ser estudiante es todo lo que necesitan, puede ser un proyecto personal.

Para el PIC, existe un compilador de código abierto llamado JAL (Just Another Language)

Al igual que otros lenguajes de programación, permite la posibilidad de utilizar bibliotecas de hardware para simplificar enormemente el proceso de adjuntar el PIC elegido a otro hardware. El software también le permitirá compilar y cargar programas a través de su PIC2 (o un clon de este programador)

JAL es un lenguaje basado en Pascal y es un software gratuito (siempre es bueno si recién está comenzando)

Entrada Wiki JAL

En cuanto a los libros, vale la pena echar un vistazo a "PIC Microcontrollers, 50 project for principiantes and expertos" de Bert Van Dam como introducción a JAL.

Hasta ahora he usado solo el chip 16F877A de PIC, aparentemente un buen chip para principiantes. Bastante barato y muchos puertos disponibles.

Saludos, echaré un vistazo. ¿JAL usa un IDE específico, hay uno disponible para Linux?
Sí, tiene uno llamado JAL Edit, lo mantendrá en el lado de la codificación y tiene las herramientas típicas que tiende a encontrar en jal.sunish.net/jaledit de IDE
Desafortunadamente, eso es solo para Windows, parece haber uno para Linux llamado PicShell, la Beta actual está en: linux.softpedia.com/get/Text-Editing-Processing/IDEs/…

Para el chip, mire la serie 18F, casi tan barata como la 16F, mucho más agallas. 18F2550 es un buen chip e incluye USB, hay otros en la misma serie. Eche un vistazo a las tablas de selección de microchips en su sitio web.

IDE gratuito de microchip, incluido C, que debe usar sobre el ensamblador en mi humilde opinión. No estoy seguro de si el IDE de microchip se ejecuta en Linux, pero es posible que lo haga.

PicKit puede ser bueno para la programación, es posible que desee grabar un cargador de arranque la primera vez y luego cargarlo a través de USB. El Bitwacker (google it) es una buena configuración para usar o copiar.

Hay un montón de foros y otros sitios, solo google. Un problema con el PIC es que hay tantos lenguajes y ninguno es exactamente igual (incluso dentro de los compiladores c). Si puede escribir una buena pregunta, pregunte en piclist.com, pero primero haga su tarea. Los foros no son el mejor lugar para aprender, busque sitios de tutoriales para eso (nuevamente, el sitio de bitwacher es bueno, también busque en Google "Embedded Adventures", el tipo ha hecho mucho en C (pero no el del microchip)

He marcado Embedded Adventures para cuando tengo una hora o dos para matar, y eché un vistazo al Bitwacker para futuras referencias. Salud.

La placa Dwengo está basada en la PIC18F4550, también tienen un clon de PICkit2 de bajo costo y algunos tutoriales muy buenos para comenzar: http://www.dwengo.org/tutorials

Interesante. No serías el mismo Wim que también es uno del equipo Dwengo, ¿verdad?
Sí, el mismo ;-)

Para referencias a algunas cosas, he hecho un poco de programación con el PIC usando Pik Kit 2 Pickit 1, recomendaría los 100 proyectos de microcontroladores para el genio malvado, también tengo algunas publicaciones de blog que tratan con esas cosas.

http://blog.onaclovtech.com/2010/01/interrupts.html

http://blog.onaclovtech.com/2010/01/analog-inputs.html

http://blog.onaclovtech.com/2010/02/pic-16f913-quick-reference-guide.html

http://blog.onaclovtech.com/2010/02/pic-16f913.html

Planeo publicar una actualización de SPI y cuando descubra cómo lidiar con el tráfico del bus CAN usando algunos chips de microchip, también tendré actualizaciones.

Gracias,

onaclov

Parece interesante, echaré un vistazo más de cerca a tus cosas cuando tenga un minuto.
Tal vez no sepa dónde buscar todo el tiempo, pero siento que, en comparación con avr y arduino, prácticamente no hay tutoriales sobre PIC y realmente me gustaría cambiar eso....

Si desea utilizar PIC, consideraría seriamente la serie PIC24 de imágenes de 16 bits o la muy similar dsPIC33. Son más rápidos, más potentes, en muchos aspectos más fáciles de programar y no cuestan más que los más básicos de 8 bits. Los de gama baja también están disponibles en paquetes de enchufes DIP aptos para placas de pruebas.

Sin embargo, es mucho más difícil encontrar ejemplos en Internet, pero por lo que puedo ver, esa es la principal desventaja.