Autor Tema: ARM O PIC32  (Leído 5873 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
ARM O PIC32
« en: 07 de Diciembre de 2012, 09:09:34 »
Hola,

Seguramente esta pregunta se habrá realizado varias veces en este foro, pero no encuentro el sitio.

Puestos a aprender a usar micros de 32 bits se me plantean las siguientes incógnitas:

¿Que micro usar ARM o PIC32?
¿Cual es más potente?
¿Cual se usa en más dispositivos?

Estoy haciendo un curso de PIC32 pero también me gustaría aprender a usar el STM32F103RC ya que dispongo de herramientas con este micro.

Creo que el ARM es más potente y complejo de programar, pero quería que algún experto me dijera su opinión.
No se si es verdad, pero por otros foros se comenta que el mayor de los PIC32 sería de la gama baja de los ARM ¿es eso cierto?

De paso que hago esta consulta hago un aporte para los que estén en mi situación, adjunto dos títulos de libros que se pueden encontrar en pdf por san Google:

- Programming 32-bit Microcontrollers in C: Exploring the PIC32
- THE DEFINITIVE GUIDE TO THE ARM CORTEX-M3

Si alguien sabe de algún libro de CORTEX-M3 bueno para la iniciación le agradecería que me dijese el titulo.

Saludos.
« Última modificación: 07 de Diciembre de 2012, 10:43:23 por bitpic »
BitPIC

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ARM O PIC32
« Respuesta #1 en: 07 de Diciembre de 2012, 13:27:43 »
¿Que micro usar ARM o PIC32?

Primero: ARM es una empresa(ARM Holdings) y arquitectura. No es un microcontrolador. En todo caso será el core ARM. El resto suele ser fabricado por compañias que licencian la arquitectura ARM.
Cuál usar es una cuestión de gustos y todo depende de tus conocimientos, costos y proyecto involucrado.
Personalmente no he trabajado nunca con PIC32. De los 24H/30F he pasado a los ARM sin escala media.

¿Cual es más potente?

La mayoría de los ARM son más potentes que un PIC32. Hay algunas excepciones en las que el PIC32 es ligeramente mejor. En este post hago un side-by-side:

http://www.todopic.com.ar/foros/index.php?topic=39303.msg327308#msg327308

¿Cual se usa en más dispositivos?

ARM, lejos.

No se si es verdad, pero por otros foros se comenta que el mayor de los PIC32 sería de la gama baja de los ARM ¿es eso cierto?

Totalmente cierto.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: ARM O PIC32
« Respuesta #2 en: 07 de Diciembre de 2012, 13:41:48 »
Gracias BrunoF,

Casualmente mientras tu contestabas yo estaba acabando de leer este articulo ARM vs PIC

Seguiré conociendo a los PIC32 por que estoy inmerso en un curso sobre este tema (el saber no tiene lugar) pero creo que en cuestiones de 32bits me encaminare hacia ARM.

Tienes razón en cuanto a que ARM es la arquitectura, no me he explicado bien, gracias por aclararlo. En mi caso empezare por los STM32 que son los que tengo a mano.

Solo tres dudas más:

¿Cambiar de fabricante de chip pero manteniendo arquitectura ARM es fácil?
¿Aprendes a programar la arquitectura o también te casa con la marca?
¿La programación es más compleja que un PIC?

Saludos.
BitPIC

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ARM O PIC32
« Respuesta #3 en: 07 de Diciembre de 2012, 14:42:24 »
¿Cambiar de fabricante de chip pero manteniendo arquitectura ARM es fácil?

Es bastante fácil migrar a otro fabricante desde que apareció el CMSIS y se estandarizó el mapa de asignación de memoria de los periféricos.

¿Aprendes a programar la arquitectura o también te casa con la marca?

Aprendes a programar la arquitectura. Obviamente cada fabricante posee módulos que pueden diferir del resto, pero no necesariamente terminas casandote con una. Eso depende mucho de ti. Sí cabe mencionar que sería importante si deseas moverte entre fabricantes utilizar un compilador que soporte muchos fabricantes, como el Keil de ARM.

¿La programación es más compleja que un PIC?

Depende. No necesariamente. Personalmente uso mucho los ARM de NXP y ahora también algunos de TI. Ambos tienen una documentación muy buena y por lo general, excepto sean periféricos muy complejos(CAN, USB, ETHERNET) no hay mayor dificultad en leer el manual e implementar lo que haga falta uno mísmo. Obviamente estamos hablando de programarlos en lenguaje C/C++.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: ARM O PIC32
« Respuesta #4 en: 07 de Diciembre de 2012, 17:34:27 »
Pensaba usar Coocox, pero voy a probar el IAR.

Gracias por todo.

Un saludo
BitPIC

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ARM O PIC32
« Respuesta #5 en: 07 de Diciembre de 2012, 19:24:35 »
Agrego un granito de arena, me compré la LPCExpreso 1769. Con las librerías CMSIS y el user manual del micro me tomó poco más de una semana hacer andar (y entender como funciona) las GPIO (incluyendo modificar una librería para hacer funcionar un LCD 2x16), los TIMER, PWM y UART. Por supuesto que prácticas sencillas, pero lo suficiente como para poder hacer uso de esos periféricos.

Mi forma de ver el inicio en ARM es que al principio cuesta un monton porque hay muchísima informacion y cuesta seleccionar lo que a uno le sirve y lo que no... Una vez que estas centrado en lo que tenes que usar es muy, pero muy fácil obtener resultados. Por lo menos las cosas básicas que yo he hecho con pic's (no mayores a 18F) lo veo mucho mas transparente en ARM... Y la documentacion!!!!! eso si que es documentación, completa, extensa y entendible a la perfeccion. Ni hablar que los registros del micro tienen el mismo nombre en las librerías CMSIS, cada minuto que paso con este micro más me odio por haber renegado con CCS.

Otro tema es el hardware, ahí hay una pequeña contra. Creo que no hay "micros con core ARM" en formato DIP y si los hay deben ser muy pocos. Es una arquitectura pensada para cosas grandes...

Saludos!
-
Leonardo Garberoglio

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: ARM O PIC32
« Respuesta #6 en: 08 de Diciembre de 2012, 05:24:04 »
Bueno pues manos a la obra!! Supongo que lo primero de todo es entender como funciona el micro por dentro...

El datasheet son 130 paginas, pero el manual de programación son 1093 paginas.... jejeejej mal lo veo... no acabo en una semana como decias jajajaj

Bueno iremos por pasos, voy ha hacer plantear que quiero que haga mi primera practica y me centraré en estudiar solo las partes que intervienen.

Por cierto voy a usar Coocox al fina. Me baje el IAR pero me parece que la IDE de Coocox es mejor y viene con mucha ayuda sobre librerias y otras cosas.

Saludos.
BitPIC

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ARM O PIC32
« Respuesta #7 en: 08 de Diciembre de 2012, 12:19:28 »
El datasheet en principio no dice nada interesante (por lo menos para mi), sirve cuando quieras hacer un hardware que use el micro, pero si vas a usar una placa de desarrollo como la LPCExpresso creo que no agrega mucho el datasheet.
En cuanto al manual lo vas a tener que leer si o si. no te  asustes por la cantidad de hojas, hay muchas que son de modulo que no usaras (yo nunca leí el CAN, por ahora no lei ethernet, usb etc) 1/4 de manual es para el set de instrucciones que tampoco usaras al principio. Luego si ves bien los módulos principales, oscilador, GPIO, Timer, PWM y UART's te quedarán 200 páginas como mucho. se leen en una patada. Ovbio que lo lees mienntras vas practicando cada cosa... ya verás que te va a resultar simple.

En cuanto al IDE quería opiniones, yo estoy con el code red y como recien empiezo no me puedo quejar. Pero no se que tal serán los otros... me gustaría saber que piensan y cual recomiendan...

Cualquier cosa no dudes en postear avances/dudas. Despues si te interesa posteo un pequeño compendio de "conceptos importantes" que me fui machetiando a medida iba avanzando, cada vez que mi cerebro decía "Mirá vos como era esto!" lo anotaba en un txt, algunas son cosas pabas, pero otras quizá no...

Saludos!
-
Leonardo Garberoglio

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: ARM O PIC32
« Respuesta #8 en: 08 de Diciembre de 2012, 13:22:26 »
Bieeenn!!! ya comienza a funcionar!!! ya he hecho mi primer programa que controla unos pulsadores y unos leds. Los leds son la retoiluminacion de una pantalla gráfica (B/N). Voy a estudiarme el datasheet de la pantalla a ver si consigo hacer una libreria para ella. Es una pantalla 128x64 con driver ST7565. ¿Alguien sabe si existe alguna libreria para este display?

A qui os dejo el codigo:

Código: [Seleccionar]
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

#define RED_ON() GPIO_ResetBits(GPIOA,GPIO_Pin_0)
#define RED_OFF() GPIO_SetBits(GPIOA,GPIO_Pin_0)
#define GREEN_ON() GPIO_ResetBits(GPIOA,GPIO_Pin_1)
#define GREEN_OFF() GPIO_SetBits(GPIOA,GPIO_Pin_1)
#define BLUE_ON() GPIO_ResetBits(GPIOA,GPIO_Pin_2)
#define BLUE_OFF() GPIO_SetBits(GPIOA,GPIO_Pin_2)

void config_output(void);
void config_input(void);

void main(void)
{
    int i;

    config_output();
    config_input();

    GPIO_SetBits(GPIOA,GPIO_Pin_0); // RED OFF
    GPIO_SetBits(GPIOA,GPIO_Pin_1); // GREEN OFF
    GPIO_SetBits(GPIOA,GPIO_Pin_2); // BLUE OFF

    while (1)
    {
    // Color Red
    if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0)){
    RED_ON(); // RED
    }
    else{
    RED_OFF(); // RED OFF
    }

    // Color Green
if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1)){
GREEN_ON(); // Green
}
else{
GREEN_OFF(); // Green OFF
}

// Color Blue
if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)){
BLUE_ON(); // Blue
}
else{
BLUE_OFF(); // Blue OFF
}

    }

}

void config_output(void){
 
    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

void config_input(void){

    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
}
BitPIC

Desconectado ElectroVolt

  • PIC10
  • *
  • Mensajes: 22
Re: ARM O PIC32
« Respuesta #9 en: 01 de Febrero de 2013, 20:33:39 »
creo q en poco tiempo terminare dando el salfo de un 16F a un ARM :v


 

anything