Ya que algunos de ustedes ya han leído algunas de mis publicaciones aquí donde escribí que prefería que los AVR / ARM se pregunten por qué ahora quiero saber algo acerca de los PIC.
Aunque a uno le guste u odie, ofrece muchas ventajas a precios muy bajos (CANbus y Ethernet, RTCC, muchos puertos I2C y SPI y UART).
Finalmente, parecen estar entre algunos de los MCU más ampliamente utilizados en la industria (además, por ejemplo, del 8051, que aunque antiguo todavía se usa ampliamente), por lo que aprenderlos podría ser positivo para un trabajo.
Por lo tanto, quería preguntar: ¿qué arquitectura de MCU elegirías entre las muchas disponibles? PIC16 / PIC18 / PIC24F / PIC24H / dsPIC30 / dsPIC33 / PIC32?
Lo pregunto porque me parece que sus arquitecturas son muy diferentes entre sí. Por lo tanto, las instrucciones de montaje diferirán significativamente. Realmente no si en C estas diferencias son menos importantes.
Sé que no puedes realmente darme una respuesta "general" ya que cada MCU es más adecuada para una aplicación específica, pero espero que puedas darme consejos para evitar el uso de algunos MCU obsoletos y elegir los más nuevos para ~ el mismo precio.
Esto es AFAIK, donde estarían mejor preparados para:
- PIC12 / PIC16 / PIC18: circuitos básicos (controles LED, interruptores, ADC básico, DAC, SPI e I2C y UART), 8 bits [básicamente lo que haces con cualquier AVR] (muy barato)
- PIC24F / PIC24H: circuitos más complejos, ethernet MAC, 16 bits
- dsPIC30 / dsPIC33: operaciones que involucran el procesamiento de señales digitales (no planeo hacerlas en este momento)
- PIC32: la mayoría de los circuitos complejos, CAN / CANbus, ethernet MAC, 32 bits ( relativamente caro)
Ya que tengo algunos proyectos en mente, ilustraré lo que elegí para algunas aplicaciones pequeñas, para que puedas demostrar que estoy equivocado :)
- Medidor de energía: PIC32, ya que con SPI / I2C se comunicará con un medidor de potencia IC, mientras que CAN / CANbus pasará la información medida a un host (básicamente un sistema de medidor de energía distribuido con un medidor en cada enchufe [significativo] )
- Convertidor CC / CC, cargador de batería, ...: PIC12 / PIC16 / PIC18 / PIC24F / PIC24H, básicamente para hacer un PWM y retroalimentación negativa con ADC
Aceptaré cualquier declaración en la que las MCU prefieran / eviten para una aplicación en particular. Sé que algunos de ustedes pueden querer usar AVRs / ARMs / MSP430 y cada MCU tiene su propio campo de aplicación. Y, por cierto, no estoy diciendo que solo use PIC. Solo que para empezar puede ser mejor usar no todas las arquitecturas a la vez.
Por ejemplo, en mi opinión:
- Tomaría un MSP430 para aplicaciones de bajo consumo o para ADC > = 16 bits integrado
- Tomaría un AVR para un conjunto de instrucciones muy rápido (la mayoría son instrucciones de 1 ciclo)
- Tomaría un ARM para funciones más avanzadas y velocidad / memoria
Sin embargo, como los PIC suelen ser los más baratos y con la mayoría de los periféricos, creo que es mejor conocer las características de cada familia de PIC. No sé si hoy en día PIC12 / PIC16 están en desuso, especialmente porque escuché algunas cosas malas sobre su "conjunto de instrucciones complicadas", pero AFAIK hoy en día es un poco mejor.