Elegir un microcontrolador

Estoy buscando alejarme de arduino y comenzar algunos proyectos usando microcontroladores con más funciones. Estuve mirando el PIC18F4550 por su conjunto de funciones, pero me estoy alejando de los productos PIC, principalmente porque no tengo un programador, y el picKIT es un poco caro ($ 50 para picKIT II, ​​$ 70 para picKIT III) . No he investigado tanto sobre las ofertas de AVR, pero creo que podría querer hacerlo. Esto es lo que estoy buscando:

  1. Más de 32 pines de E/S digitales
  2. Programable con un hardware externo mínimo. Puntos de bonificación si puedo aprovechar el chip usb en una placa de desarrollo arduino, o mi cable ftdi-usb para programarlo a bajo costo.
  3. USB integrado. Esta es una de las razones por las que realmente me inclinaba por el 18F4550. ¿Hay un chip AVR comparable que tenga capacidades USB integradas?
  4. Buenos recursos en línea: me gustaría aprender a ensamblar directamente, y sería bueno si hubiera buenos recursos en línea para aprender a ensamblar para mi plataforma sin tener que leer una hoja de datos de 500 páginas.
  5. Montaje con orificio pasante.
  6. Circuito externo mínimo para ponerse en marcha. Un oscilador interno sería genial para la creación rápida de prototipos, pero no tengo ningún problema en lanzar un cristal si es necesario.

¿Alguien tiene alguna recomendación de una forma u otra?

Si desea comenzar con microcontroladores más potentes, un picKIT será una pequeña fracción de su inversión. Además, el PIC18 es muy comparable al ATmega en Arduino. ¿Cuánta potencia más quieres? Finalmente, #5 - Montaje de orificio pasante - limitará mucho sus opciones. Entiendo que te gusten los protoboards o te sientas incómodo con la soldadura fina, pero los micros potentes se montan en superficie y es difícil evitar eso.
Tal vez mi pregunta es engañosa. Estoy bien con el poder de cómputo del arduino, pero varios proyectos en los que estoy pensando necesitan más IO, periféricos, memoria de programa, etc. Haré que mis placas sean hechas profesionalmente, y estoy bien con la soldadura básica de montaje en superficie, pero en realidad sólo los tonos más anchos.
Eso tiene más sentido. Editado el texto para reflejar esto. Además, debe leer la diatriba/mantra en electronics.stackexchange.com/q/16868/857 sobre la importancia de las hojas de datos; leer la hoja de datos es obligatorio si se toma en serio la ingeniería eléctrica.
No me opongo necesariamente a las hojas de datos, simplemente me cuesta aprender de ellas como fuente principal. Es mucho más fácil si alguien me explica las funciones y el uso básico primero, así sé lo que estoy buscando en la hoja de datos.

Respuestas (6)

Aunque el PIC18F4550 es un uC decente y hay bastantes ejemplos de su uso para USB, todavía es de 8 bits y probablemente esté en la misma "liga" que su Arduino.

Si desea un poco más de potencia, tal vez miraría el PIC24/dsPIC de 16 bits (mucho más potente y todavía disponible en el orificio pasante) o incluso el PIC32 (sin embargo, solo de montaje en superficie, y generalmente usaría C para programar él)

Pensé que el PicKit3 (supongo que te refieres a esto) no tenía un precio tan malo para los programadores, pero si quieres más barato, puedes optar por el PicKit2, que aunque ya no es compatible oficialmente, todavía se puede usar con el 99% de Gama de microchips.
También hay muchos otros programadores decentes para PIC, por ejemplo, las ofertas de Embed Inc. Si opta por las piezas de 16 bits y 3,3 V, imagino que el LProg de $ 25 sería adecuado.

Aunque los recursos en línea y un buen libro relacionado (por ejemplo, Aprender a volar el PIC24 , tenga en cuenta que está basado en C) facilitan el comienzo, me acostumbraría a leer las hojas de datos (y el Manual de referencia familiar en el caso del PIC24/dsPIC) a fondo , es una parte necesaria del uso de cualquier microcontrolador y la única forma (en mi humilde opinión) de aprender a usarlos por completo, especialmente los más complicados. Incluso el libro anterior (aunque bien escrito) pierde muchos detalles de nivel inferior.

A $ 25, el Microchip PIC Stick es bastante económico microchip.com/stellent/…
También tengo uno de estos ebay.com/itm/…
@kenny: también parecen opciones bastante buenas. Especialmente el segundo que busca soportar 3.3V y 5V desde PIC10F a PIC24 a ~$21 P+P incluido. @ CMP Valdría la pena consultar la lista de dispositivos compatibles (con cualquier programador) antes de comprar para ver si los chips que desea usar están incluidos. Una vez me quemé con un programador de Wellon por no revisar con cuidado (> 10,000 dispositivos compatibles, desafortunadamente el 95% de ellos tiene más de 5 años y ya no hay actualizaciones de firmware ...)
Sí, hay algunas limitaciones de dispositivos con ese programador, es 'compatible' con PicKit2.
@kenny: vi ese, pero parecía un poco incompleto. ¿Cómo es la calidad? Parece exactamente lo que necesitaría, pero si compro uno y se rompe, también podría haber comprado el pickit 2.
El diseño es un poco barato, pero está bien hecho. El cable USB es corto, por lo que probablemente necesite un extensor. En lugar de una carcasa, tiene el 'envoltorio retráctil' amarillo.

Personalmente, juro por los chips PIC.

A menudo les digo palabrotas también.

Sí, obtienes muchos pines IO. Sí, obtienes un oscilador interno. Sí, tiene USB, CAN, SPI, I²C, ADC, DAC integrados (en algunos dsPIC), el fregadero de la cocina e incluso la luna en el dispositivo.

Por desgracia, el soporte en línea es incompleto en el mejor de los casos. Hay una biblioteca de aplicaciones bastante completa disponible para descargar, pero la forma en que se ha organizado deja mucho que desear.

¿Dices que el programador PIC es un poco caro? No es necesario. Yo uso un clon barato de eBay. No tiene todas las campanas y silbatos (sin depuración), pero funciona bien para mí y todo el software de programación principal funciona con él. El hardware es de código abierto: puede descargar los esquemas y el firmware de Microchip si lo desea. También puede descargar las especificaciones de cómo realizar la programación si desea crear su propio programador; es solo en serie, por lo que (aparte del Vpp de +12 V) debería poder crear un programador usando un Arduino.

En cuanto a otros... Sé que las nuevas placas Arduino UNO han reemplazado el chip FDTI con un chip Atmel MEGA8U2, que tiene USB incorporado. No estoy seguro de si está disponible como PDIP o no.

1 y 5: Hay muchos modelos Atmel AVR que vienen en un paquete DIP de 40 pines, que cumple con estos requisitos. Un modelo de 40 pines que estoy usando ahora tiene 4 puertos IO de 8 bits == 32 IO (si no usa ningún otro periférico)

2: El arduino puede lograr este método de programación utilizando su cargador de arranque, que es algo que siempre reside en la memoria flash del chip. Programar sobre UART (que es lo que está haciendo arduino para programar) puede requerir un poco de trabajo. Aquí hay más información sobre el cargador de arranque si tiene curiosidad. La buena noticia es que no necesitará nada de eso si usa un programador ICSP que no requiere circuitos externos.

3: Mire aquí y use ctrl+F en su navegador para encontrar piezas compatibles con USB.

4: Tanto PIC como AVR tienen un montón de recursos para el aprendizaje. Sin embargo , no intente evitar leer una hoja de datos : esto es absolutamente esencial y no sé cómo podrá arreglárselas sin ella si desea escribir firmware (ensamblaje o C) en cualquier plataforma.

5: Ver primer punto.

6: Los osciladores internos son casi una característica estándar en estos días. Nuevamente, consulte la descripción de su producto o consulte la hoja de datos para estar seguro. Ejemplo: hacer clic en una parte aleatoria en el sitio de Atmel y desplazarse por los parámetros revela un campo que le dice Calibrated RC Oscillator: yes<-- esto significa que hay un oscilador interno.

No me preocuparía mucho sobre cuál (PIC o AVR) terminas eligiendo. De cualquier manera, lo más probable es que tengas que comprar un programador ICSP.

Me temo que si insiste tanto en el USB como en el orificio pasante, entonces probablemente se quede con AVR o PIC. La mayoría de los "grandes" usan QFP o QFN para chips con USB y suficientes pines para tener 32 GPIO. Sin embargo, usar una placa de conexión QFP no es tan difícil. Si está dispuesto a probar eso, aquí hay un par que puedo sugerir:

1) MSP430. Una buena arquitectura de 16 bits de bajo consumo, conjunto de instrucciones sano, periféricos bastante simples (IMO). Un kit de $4.30 está disponible como una introducción sin riesgos (incluye programador y depurador). Sin embargo, las partes DIP, como en el Launchpad, son bastante limitadas y tendría que ir a QFP si desea algo para sus requisitos.

2) Un chip ARM Cortex-M3 o Cortex-M0. Hay varias ofertas en el mercado, por ejemplo, la serie LPC de NXP (consulte LPCXpresso , alrededor de $ 30) o STM32 de ST (STM32VLDISCOVERY, alrededor de $ 12). Estas bellezas son de 32 bits, por lo que tienen mucha potencia, pero son algo más complejas que las de 8 bits.

¿Por qué no te quedas con Arduino, porque Arduino Due usará MCU basado en ARM Atmel SAM3U?

Si desea aprender el lenguaje ensamblador, le sugiero que obtenga un buen programador que admita la depuración. Estos son generalmente más caros ($ 50-100), pero cuando tiene un error que simplemente no puede resolver, no hay nada mejor que ver lo que sucede dentro del MicroController. Dado que viene del mundo Arduino, probablemente esté muy acostumbrado a la depuración utilizando la salida de datos a través de un puerto serie, pero especialmente si desea aprender el lenguaje ensamblador, simplemente habilitar un puerto serie sin un depurador requerirá "Codificación en la oscuridad". ".

Realmente me ha gustado el ATXMega. Muchos de los chips Atmel se pueden programar en C usando Atmel Software Framework, que tiene excelentes ejemplos y hace un gran trabajo al ocultar el uso de punteros (que es la gran ventaja con la programación de Arduino). Cumple con todos los requisitos anteriores, incluidos algunos. con USB y especialmente la E/S con 34-78 en paquetes de 44 a 100 pines, excepto que solo está disponible como montaje en superficie, pero lo he soldado a mano con un soldador, una mecha de soldadura y un aumento de 7x para verificar que no había cualquier puente de soldadura.

Me gusta mucho Atmel Studio, soy un poco parcial porque mi trabajo diario usa Visual Studio y Atmel Studio se basa en él. La depuración en Atmel Studio es realmente agradable con todos los registros de configuración y sus estados claramente visibles. He podido probar PCB fabricados a medida usando solo un método main() y el depurador.