Ver la versión completa : Programando microcontroladores
Segata Sanshiro
08/08/2010, 12:35
Como sé que por aquí hay gente que hace virguerías, os pido vuestra opinión :D
Tengo un par de proyectos que me gustaría hacer con un microcontrolador (un PIC o alguno de estos que se ven por ahí a punta pala). Ya he hecho alguno, pero en ese caso me daban un entorno de desarrollo hardware+software muy completo del que ahora no dispongo.
De momento creo que me bastaría con un PIC de esos pequeñitos de 14 pines, como el PIC16F676. De todas formas no tengo preferencia por ninguna marca/ensamblador así que soy todo oídos :p Solo he programado para un Coldfire (basado en 68k), que parece no ser muy popular para proyectos caseros.
He visto programadores por 20€, pero imagino que así no podré depurar los programas, ¿no? ¿Qué es lo mínimo que necesito? ¿Es mucho pedir la posibilidad de poner puntos de parada, ver el contenido de los registros de la CPU, etc., o eso lo hay hasta con el equipo más básico?
Grasias de antebraso.
En el mundo micro, "programadores" son las placas con las que quemas los programas en los micros, y cuestan esos 20 euros o un poco más. No te sirven para ejecutar ni depurar programas. Para eso necesitas "entornos de desarrollo" mucho más complejos y caros.
En el caso de los PIC lo que sí que hay es muchos simuladores que quizá podrías utilizar para probar los programas en tu ordenador antes de pasarlos al micro. Aún así, no te vas a librar de tener que programar con muchísimo cuidado y sabiendo bien lo que haces en cada momento.
The_Punisher
08/08/2010, 12:44
Como dice juanvvc hay varios entornos de desarrollo que incluyen simuladores, donde puedes ver en todo momemto registros etc...
Yo personalmente te recomiendo este
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
Luego ya si quieres algo mas serio tienes estos bichos que son amor, yo trabaje con este
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010046&part=DV164005
Puck2099
08/08/2010, 14:10
Si no me equivoco para los PIC tienes el PICKit 2 que sí permite depurar el programa (no solo simularlo) además de grabarlo.
Cuesta bastante más de 20 euros, pero también tienes la opción de construírtelo tú mismo por menos de esos 20 euros. Si te interesa échale un ojo a mi web (http://www.retrowip.com/2010/01/31/mis-ultimas-adquisiciones-para-microbotica/) donde tengo una entrada con foto de mi versión y los fotolitos y demás necesarios.
Y como último consejo, te decidas por el que te decidas, que tenga interfaz USB. Los puertos serie ya casi han desaparecido y la mitad de los conversores USB-Serie no valen para programar estos cacharros.
Otra opción, si quieres probar es arduino:
http://www.arduino.cc/es/
Hay un montón de ejemplos, documentación y proyectos que lo utilizan.
Y el entorno es libre y multiplataforma.
jduranmaster
08/08/2010, 16:59
Otra opción, si quieres probar es arduino:
http://www.arduino.cc/es/
Hay un montón de ejemplos, documentación y proyectos que lo utilizan.
Y el entorno es libre y multiplataforma.
este va a mis favoritos.
FlipFlopX
08/08/2010, 17:41
El PICKIT2 que comenta Puck está muy bien, es abierto y hay mucha info para construirtelo en la red. Yo usaba Proteus como simulador que era bastante completo (Usaba el 16F84)
Segata Sanshiro
08/08/2010, 18:56
Gracias a todos por contestar, a ver si me aclaro:
El PICKIT2 se conecta al ordenador por USB y a la placa del PIC con el conector ese de 6 pines (ICSP), ¿no es así? Por lo tanto, cuando quiera hacer mi propia placa, tendré que ponerle un conector ICSP (vamos, esos 6 pines). Aunque solo sea compatible con PICs, si ofrece depuración y tal, parece muy buena opción.
Por otro lado las placas Arduino molan, también tendré que echarles un ojo. Demasiada información :|
Puck2099
08/08/2010, 19:08
El PICKIT2 se conecta al ordenador por USB y a la placa del PIC con el conector ese de 6 pines (ICSP), ¿no es así? Por lo tanto, cuando quiera hacer mi propia placa, tendré que ponerle un conector ICSP (vamos, esos 6 pines). Aunque solo sea compatible con PICs, si ofrece depuración y tal, parece muy buena opción.
El programar directamente en la placa con el conector ICSP que dices es un extra, así te evita tener que andar sacando y metiendo el PIC del zócalo de tu placa al del programador cada vez que quieras cambiar algo y te permite depurar en tu propio circuito.
Por otro lado si lo que te mola es andar con el "mete-saca" de zócalos porque te es más cómodo diseñar tus placas sin ICSP puedes hacerte una plaquita aparte con varios zócalos y el conector ICSP y la usas como extensión del programador.
Yo desde luego es la opción que te recomiendo, además, al igual que puedes hacerte tu propio clon del PICKIT2 seguro que encuentras algún clónico "casero" a la venta en eBay o similar.
Segata Sanshiro
08/08/2010, 20:57
Vale, gracias, ya me va quedando claro. Con el PICKIT2 (clon u original) a secas, solo puedo grabar el programa mediante ICSP, ¿no? Ya que no tiene zócalo para el PIC. Aún así, imagino que depurar en el propio circuito es tan útil que merece la pena poner ICSP (a no ser que haya algún inconveniente que estoy pasando por alto).
¿Alguien que trabaje con Atmel me puede decir cuál sería el equivalente de todo esto? Estoy viendo plaquitas de Arduino con muy buena pinta, tendré que estudiarlas más detenidamente.
Ah, y gracias por la pista de eBay, estoy viendo que hay de todo.
Puck2099
08/08/2010, 21:07
Vale, gracias, ya me va quedando claro. Con el PICKIT2 (clon u original) a secas, solo puedo grabar el programa mediante ICSP, ¿no? Ya que no tiene zócalo para el PIC. Aún así, imagino que depurar en el propio circuito es tan útil que merece la pena poner ICSP (a no ser que haya algún inconveniente que estoy pasando por alto).
Sí, necesitas el ICSP por narices, pero ya te digo, si eso es molestia te haces una plaquita por 2-3 euros con todos los zócalos que quieras y lo programas desde ahí.
Segata Sanshiro
12/08/2010, 17:03
Upeo por si alguien me puede comentar cómo se suele desarrollar y depurar con Atmel (por una cantidad de dinero comparable a la del PICKIT2, a ser posible, que sale muy barato sobre todo si es clon/casero).
< - >
Voy a ir probando el AVR Studio. Supongo que para proyectos pequeños (y no tan pequeños) da igual usar un simulador que depurar sobre el hardware real, y quizás sea menos lioso.
Puck2099
12/08/2010, 18:21
Por cierto, supongo que lo sabrás, pero Microchip envía muestras gratuitas de sus chips. ¿Atmel hace lo mismo?
Epa, a ver, un AVRero por aqui, aunque también trabajo con pics, de hecho tengo un pickit2 original, que hay que decir que va muy bien.
Los AVR, bueno, entrar en esto es un poco como entrar en vim/emacs, windows/linux, etc, pero te comento mis impresiones.
El core de los AVR de 8 bit, es el mismo en toda la gama, a diferencia de los pics, que los 10F, 12F, 16F y 18F llevan cores diferentes. Ventaja? Sólo necesitas aprenderte un conjunto de instrucciones.
Segundo, bien tanto el AVR más pequeño, como el más grande, comparten el mismo core como he dicho, y es un core muy majo, con 32 registros, bastante ortogonal, 1 MIPS por MHZ, pila en RAM... con lo que además de tener un ensamblador muy majo y potente, su diseño permite que sean eficientes con C. Y de esto se deriva otra ventaja grande, el compilador libre GCC está portado para AVR, junto con una libreria libc muy completa, asi que puedes programar en C gratuitamente desde cualquier plataforma (windows, linux, mac) para los AVR.
Además hay un montón de herramientas libres para AVR, además de las gratuitas de la propia Atmel.
La gama es grande, desde AVR de 8 pines con lo minimo de silicio, hasta alguno de 144 pines con KBs y KBs de Flash y RAM y muchos periféricos.
Luego, como comentan por ahi, hoy en dia tienes la plataforma Arduino, basada en un AVR (ATMega328 actualmente), que es cojonuda para aprender y testear, y no necesita programador, ya que lleva un bootloader integrado, y se mandan los programas desde el PC a través de USB. Una pasada por el precio que vale. Yo tengo unos cuantos para hacer prototipos rápidos o pruebas y estimación de recursos antes de pasar a diseñar hardware definitivo.
Luego el programador, para AVR, hoy en dia se hace casi todo por ISP, y tienes diseños desde cuatro resistencias al puerto paralelo, a programadores-debuggers in-circuit USB.
Yo uso un clon del AVRISPII chino, que lleva conmigo unos tres años dandole mucho uso, y va como el primer dia, anda por ebay por unos 25-30 euros, aunque este no tiene debug. Tendrias que irte a un AVR Dragon o similar.
Luego también tienes simuladores en software, como el avrora (http://compilers.cs.ucla.edu/avrora/) o el simulavr.
Vamos, a mi me gustan mucho los AVR, pero conozco alguna ventaja de los PIC (aunque hay muchos AVR la gama PIC es más amplia y tienen alguna cosa que los AVR no tienen), aunque normalmente no he necesitado de ellas.
Atmel también envia muestras de los chips, pero no suelen responder a todas las peticiones... Ah y por cierto, PIC ya no envia muestras a españa... :P
Puck2099
12/08/2010, 19:39
Atmel también envia muestras de los chips, pero no suelen responder a todas las peticiones... Ah y por cierto, PIC ya no envia muestras a españa... :P
Interesante, no sabía que Atmel también daba muestras :)
Por cierto, lo que dices de que Microchip ya no envía a España, ¿ha sido algo muy reciente? Porque hace unos meses me mandaron sin problema unos expansores de puertos por I2C...
Pues si, yo hace un par de años pedi algun micro y me los mandaron, pero ahora mismo, si pillas españa te dice que nanai...
PD: acabo de hacer la prueba, que queria probar alguno de los PIC de 16 bits xDD
We were unable to process your request for samples due to the reason(s) outlined below.
We currently do not accept orders for the selected shipping country.Thank you for your interest in Microchip
lo que me extraña es que nadie diga nada del 8051...
limitado, poco potente, pero muy usado en la industria... por su bajo precio. Hoy en dia, anda mas o menos por el precio de un pic de similares caracteristicas, y existe el entorno de desarrollo microvision (uvision), que sirve tanto para 8051 como para varios pic y avr... con depurador incluido
El entorno es caro, pero, se encuentra facilmente por internet
jduranmaster
12/08/2010, 20:45
lo que me extraña es que nadie diga nada del 8051...
limitado, poco potente, pero muy usado en la industria... por su bajo precio. Hoy en dia, anda mas o menos por el precio de un pic de similares caracteristicas, y existe el entorno de desarrollo microvision (uvision), que sirve tanto para 8051 como para varios pic y avr... con depurador incluido
El entorno es caro, pero, se encuentra facilmente por internet
si señor buen cacharro, yo mismo he hecho algunas cosas interesantes con el y con otros modelos como el 80C552, que es mas potente y trae algunos perifericos mas. ademas el entorno uVision2 es muy bueno y completo para el desarrollo del codigo C que luego se puede simular y depurar antes de cargarlo en el microcontrolador. lo recomiendo mucho.
< - >
de hecho si ha alguien le interesa, puedo pasar el entorno de desarrollo uVision2 por mail.
Segata Sanshiro
12/08/2010, 20:52
Gracias xzakox por el comentario. Teniendo en cuenta que ambas familias tienen más o menos lo mismo (tamaños variados de EEPROM, montones de ADC) y que ambos tienen una gama baja muy barata, creo que me pillaré un AVR, ya que me viene especialmente bien el tener varios registros. ¿Echas de menos el poder depurar sobre el hardware real, o con los simuladores se apaña uno bien? Es una pena porque el PICKIT2 como dice Puck te puede salir por 20€ y si no me equivoco puedes poner breakpoints, ver el valor de los registros...
La verdad es que yo personalmente, raras veces simulo, normalmente como te digo pruebo trozos de código (por ejemplo un chip i2c nuevo, pues su protocolo) en el arduino, y luego empiezo a prototipear/diseñar con el hard directamente. Eso, con el osciloscopio, el analizador lógico, el buspirate, y a veces enviar datos de debug por un puerto serie o incluso algun led... normalmente me sobra :P
Aunque eso, más adelante tienes el AVR Dragon, que se puede sacar por unos 50$ y hace de todo (programación ICSP, HVICSP, Paralela, JTAG y debug por JTAG y DebugWire). O ya un clon del AVR JTAGICE que te saldrá por 75 euros, pero es una pasada (AVR JTAGICE Emulator Debugger ATMEL Programmer JTAG ICE (http://cgi.ebay.es/AVR-JTAGICE-Emulator-Debugger-ATMEL-Programmer-JTAG-ICE-/300401548244?pt=LH_DefaultDomain_0) en la bahia).
De momento te puedes hacer un programador icsp USB por unos 5 euros... http://fab.cba.mit.edu/content/projects/fabisp/index.html (aunque necesitas de otro programador para programar este, ¿alguien dijo huevo y gallina? xD)
De todas maneras, si quieres simular, como decia, el simulavr por ejemplo:
http://www.nongnu.org/simulavr/intro.html
Es muy sencillo de usar y bastante potente, aunque solo emula unos pocos micros...
Luego asi en plan integrado, para windows tienes gratuito el VMLab, que ademas funciona en linux con wine... xD
http://www.amctools.com/screen1.gif
Bueno, ya nos comentas tus progresos :-)
Segata Sanshiro
12/08/2010, 22:30
Genial, qué buena pinta tiene el último entorno que has puesto :) De momento creo que me las arreglo de sobras con un programador simple y uno de los muchos simuladores que hay, y más adelante según lo necesite iré desembolsando por el resto del equipo :D
A ver si después del verano puedo volver al labo de la universidad y "documento" aquí en el foro el proyecto que hice con un amigo, que nos quedó muy mono xD (Aunque ése está basado en Coldfire, no en AVR).
Puck2099
12/08/2010, 22:35
Para programar los AVR también puedes pillarte un Bus Pirate que salen baratitos (si siguen quedando a la venta) que además te valdrá para muchas cosas más.
pues yo tengo el uVision 1, version estudiante, y me gustaria tener el 2...
solo por probar que tal va para escribir en asm
jduranmaster
12/08/2010, 22:47
pues yo tengo el uVision 1, version estudiante, y me gustaria tener el 2...
solo por probar que tal va para escribir en asm
Me lo estas Pidiendo a mi????:D
Segata Sanshiro
12/08/2010, 23:11
Para programar los AVR también puedes pillarte un Bus Pirate que salen baratitos (si siguen quedando a la venta) que además te valdrá para muchas cosas más.
Pues por lo que veo los siguen vendiendo (v3), por menos de 30$ y tiene de todo...
Puck2099
12/08/2010, 23:29
Pues por lo que veo los siguen vendiendo (v3), por menos de 30$ y tiene de todo...
Si te mola el mundillo de la electrónica yo lo veo una muy buena opción para cacharrear.
Yo tengo uno, aunque apenas he tenido tiempo de probarlo tiene muy buena pinta :)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.