Autor Tema: ST ya ha suministrado más de mil millones de micros STM32  (Leído 10440 veces)

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

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
ST ya ha suministrado más de mil millones de micros STM32
« en: 26 de Febrero de 2016, 12:11:25 »
.

No se si son muchos, pero mola, ST ya lleva suministrados más de mil millones de microcontroladores ARM STM32.
http://profesionaleshoy.es/electronica/2016/02/25/stmicroelectronics-ya-ha-suministrado-mas-de-mil-millones-de-microcontroladores-stm32-basados-en-arm/6307

Personalmente ya me voy a meter con mi primer desarrollo profesional con los STM32. Unos micros que cada vez me gustan más, de la misma manera que cada vez me gustan menos los PIC por su política de cobrar las herramientas de trabajo y por sus precios abusivos en placas de evaluación y compiladores, todo lo contrario que ST.

Microchip debería de replantearse sus políticas de mercado o le puede terminar pasando lo que le ha pasado a Yahoo con respecto a Google, pasar de tocar el cielo a besar el infierno. En mi están a punto de perder un cliente, y eso que he estado con los PIC32 desde hace un carro de años, pero cada vez le veo más ventajas a los STM32 y me gustán más, y más pegas a los PIC.


« Última modificación: 26 de Febrero de 2016, 12:15:43 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #1 en: 26 de Febrero de 2016, 13:43:26 »
microchip no va a perder por sus micros de 8/16 bits. Pero no se que tal les va con sus PIC32.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #2 en: 26 de Febrero de 2016, 15:25:56 »
Un consejo, planeta, cuando arranques con los ST dedicate un buen tiempo a buscar librerías alternativas a las HAL (hay unas que tienen buena pinta, http://www.libopencm3.org/wiki/Main_Page pero no se si el proyecto siga avanzando)... Hace ya un año que estoy con un proyecto comercial usando un F411 y si bie las HAL te permiten arrancar rápido, uno se endulza fácil, pero despues, a maedida que vas queriendo hacer cosas mas complejas te das cuenta que las HAL son una porquería. Lamentablemente si ya tenes muchos meses de trabajo ya es muy complejo cambiarte.
Yo al principio estaba maravillado de como avanzaba configurando periféricos y usandolos, incluso con canales DMA... era todo tan rápido! y con el CubeMX el micro lo configuras en un nada de tiempo, es una verdadera maravilla. Lástima que el soporte sea malìsimo y que al queres hacer cosas un poco más avanzadas la cosa se complique tanto.

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #3 en: 26 de Febrero de 2016, 16:08:12 »

Gracias por el consejo elgarbe, lo miraré en ese enlace y a ver que hay por Google, y si encuentro alguna comunidad con experiencia que ya recomienden algún paquete de librerías potentes.

También me gustaría tener un pack de programas modelo para echar mano según necesidades, mi idea es terminar el bootloader encriptado que empecé hace tiempo y crear algunos programas base para manejar tarjetas SD con FAT/FAT32, USB, SPI, I2C, DMA, gestión de la flash, etc...

Desconectado schzrodriguez

  • PIC10
  • *
  • Mensajes: 43
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #4 en: 19 de Julio de 2016, 04:15:23 »
Lástima que el soporte sea malìsimo y que al queres hacer cosas un poco más avanzadas la cosa se complique tanto.

Saludos!
A que te refieres con que el soporte es malisimo? estoy intentando investigar con el tema para meterme con un uC STM32, y estoy barajando las opciones. A priori tiene buena pinta, tanto lo que he leido por aquí como por otros lados, los veo potentes y el precio es económico.

Un saludo!

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #5 en: 19 de Julio de 2016, 07:18:26 »
Lástima que el soporte sea malìsimo y que al queres hacer cosas un poco más avanzadas la cosa se complique tanto.

Saludos!
A que te refieres con que el soporte es malisimo? estoy intentando investigar con el tema para meterme con un uC STM32, y estoy barajando las opciones. A priori tiene buena pinta, tanto lo que he leido por aquí como por otros lados, los veo potentes y el precio es económico.

Un saludo!

Se refiere a que los ejemplos que traen las HAL muchas veces son básicos y cuando queres hacer algo un poco más complejo estas por tu cuenta. En el foro de ST no daban muchas respuestas a las preguntas, no sé como estará eso ahora. LReference Manual son medianamente buenas, aunque la informacion parece que esta escrita para generar cantidad de páginas diciendo lo mismo y sin profundizar mucho en detalles.

Saludos
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #6 en: 19 de Julio de 2016, 08:30:38 »
Mi experiencia ahora con 2 micros ARM, uno de TI y el otro de ST, te voy a decir lo que le falla a mi gusto ST al menos en documentacion.

No tengo problemas en que existan varios PDFs para un mismo integrado, como es el caso de Microchip con un PDF por modulo, Pero ST tiene algo bastante raro.

El Reference Manual normalmente tiene "casi TODO" explicado, los registros, etc. PERO con muchas falencias, si quisiera ver el Pinout del micro tengo que bajarme el "datasheet" que es una version mini del reference manual, Otra de las cosas que note y que son distintas que con TI que es ARM tambien es, que no explica casi cada del nucleo ARM, es decir si no tenes la menor idea de que cosas posee el nucleo ARM solo te da una muy pequeña introduccion y luego buscalo como si fuera algo aparte al micro, lo cual es, pero al menos a mi opino que es molesto.

La principal diferencia es que la documentacion de ST solamente te da como funciona el modulo pero no como ponerlo en funcionamiento, te dice: "En X registro haces esto" y a veces ni eso. Distinto a la de TI que tenes un paso a paso de que configurar para poner en marcha el modulo en distintas formas. Yo que venia de PIC acostumbrado como es la arquitectura alli, si hubiera agarrado primero el ST creo que hubiera estado perdido, por ejemplo lo de acostumbrarse que cada modulo posee una habilitacion de interrupcion, pero que como el nucleo ARM es aparte, tambien tenes que habilitarlo desde el NVIC, Y si no te dan el paso a paso de eso y como te digo, estas acostumbrado a otra cosa, te cuesta un poco mas.

-----------------
Soft:

Otra de las cosas que me tope fue su entorno de desarrollo, como creo que no hay ninguno oficial de ST, ya que la mayoria usa KEIL o uVision, o sino el System Worbench de OpenSTM32, no esta demasiado integrado. Al menos con el System Worbench se nota que le falta todavia "integracion", para que alguien que recien comienza le sea facil de entender. Distinto fue el caso de TI por ejemplo, que creas el proyecto, solo agregas el link a las librerias y listo. Sobre el foro de TI me contestaron rapidamente cuando pregunte, no se ST por que no tuve experiencia preguntando.

Sobre las librerias:

CMSIS es puro registro. Es decir ahi estan definidos registros y estructuras. Luego las HAL, que me parece a mi gusto son demasiado complejas en su estructura o de la forma que estan separadas en archivos, para algunos modulos tenes como 3 archivos, por ejemplo:

stm32f0xx_hal_uart.c
stm32f0xx_hal_uart_ex.c
stm32f0xx_hal_usart.c

Cuando en TI simplemente agrego un gpio.c por asi decirlo y tengo para los integrados, el tema es que TI no usa CMSIS, y define los registros con puros #define

Luego esta STMCube que es lindo, grafico, con algunas opciones bloqueadas, por ejemplo no podia quitar la interrupcion del systick, es obligatorio las HAL, pero al menos con el System Worbench no pude importarlos, a no ser que copie y pegue los archivos imagino.

-------------

Hasta ahora esa fue mi experiencia con ST, por supuesto no implica que es imposible de realizar algo, sino que al menos TI presenta mas "facilidad", no se como sera NXP y otros mas fabricantes

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #7 en: 19 de Julio de 2016, 09:01:01 »
99% de acuerdo con KILLER, jeje
Me ha pasado exactamnte las mismas cosas que comenta y como tenia que trabajar en un proyecto en el que ya estaba impuesto el micro, como que no me quedó otra que aprender a la fuerza.

El CubeMX para generar código de inicializacion de periféricos es genial. Para código rápido y usando las HAL es una maravilla. Encender y configurar perifericos en ARM no es de lo más sensillo, muchos registros a tocar, entonces que ya te configure todo una aplicacion gráfica, pudiendo asignar a cada pin la funcion que queremos ahorra muchísimo tiempo.
La importacion del proyecto generado es lo que no está perfectamente hecho. Pero se puede. Yo lo hago. Aunque el proyecto que se genera está hecho con links a los archivos y crear agregar nuevos archivos al proyecto es un quilombo... Pero bueno, uno puede importar el proyecto generado, copiar el código y usarlo en nuestro proyecto.

NXP tiene un excelente IDE, buenos Reference Manuals, pero sus librerías (LPCOpen) estan poco documentadas y en el foro no se responden preguntas. O por lo menos se responden muy pocas.

ST tiene placas de evaluacion regaladas por su precio y eso creo que es lo que inclina un poco la balanza hacia ellos.

Siempre quise probar los TI, pero aún no me he hecho tiempo y con la gran variedad de ST, creo que bien vale la pena gastar un poco de tiempo en ellos....

Saludos!
-
Leonardo Garberoglio

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #8 en: 19 de Julio de 2016, 12:20:15 »
Supuestamente el cubeMX puede generar el proyecto para System Workbench, nunca lo he probado por que prefiero no usar ningún IDE, en lugar de eso uso cmake para compilar y  vim como editor.

Con respecto a la documentación concuerdo con que los PDF son escuetos y en ocasiones no puedes extraer información que te ofrezca alguna idea sobre como trabajar con los periféricos.

La mayoría de los ejemplos que encuentras en internet son para las std libs (anteriores al cube).

Pero (aquí el pero) si lees el código fuente de las librerías te darás cuenta de que ahí explican paso a paso como usar los periféricos.

Por ejemplo si quiere saber como usar el ADC en el stm32f1, entra al siguiente directorio (en la ruta donde descomprimiste el stm32cube (para estecaso stm32cubef1)

STM32Cube_FW_F1_V1.3.0/Drivers/STM32F1xx_HAL_Driver/Src

Y abre el archivo stm32f1xx_hal_adc.c y el stm32f1xx_hal_adc_ex.c

Al inicio verás los pasos y funciones a implementar

stm32f1xx_hal_adc.c

Código: [Seleccionar]
                     ##### How to use this driver #####
  ==============================================================================
    [..]

     *** Configuration of top level parameters related to ADC ***
     ============================================================
     [..]

    (#) Enable the ADC interface
      (++) As prerequisite, ADC clock must be configured at RCC top level.
           Caution: On STM32F1, ADC clock frequency max is 14MHz (refer
                    to device datasheet).
                    Therefore, ADC clock prescaler must be configured in
                    function of ADC clock source frequency to remain below
                    this maximum frequency.
        (++) One clock setting is mandatory:
             ADC clock (core clock, also possibly conversion clock).
             (+++) Example:
                   Into HAL_ADC_MspInit() (recommended code location) or with
                   other device clock parameters configuration:
               (+++) RCC_PeriphCLKInitTypeDef  PeriphClkInit;
               (+++) __ADC1_CLK_ENABLE();
               (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
               (+++) PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
               (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);

    (#) ADC pins configuration
         (++) Enable the clock for the ADC GPIOs
              using macro __HAL_RCC_GPIOx_CLK_ENABLE()
         (++) Configure these ADC pins in analog mode
              using function HAL_GPIO_Init()

    (#) Optionally, in case of usage of ADC with interruptions:
         (++) Configure the NVIC for ADC
              using function HAL_NVIC_EnableIRQ(ADCx_IRQn)
         (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler()
              into the function of corresponding ADC interruption vector
              ADCx_IRQHandler().

    (#) Optionally, in case of usage of DMA:
         (++) Configure the DMA (DMA channel, mode normal or circular, ...)
              using function HAL_DMA_Init().
         (++) Configure the NVIC for DMA
              using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn)
         (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler()
              into the function of corresponding DMA interruption vector
              DMAx_Channelx_IRQHandler().

     *** Configuration of ADC, groups regular/injected, channels parameters ***
     ==========================================================================
     [..]

    (#) Configure the ADC parameters (resolution, data alignment, ...)
        and regular group parameters (conversion trigger, sequencer, ...)
        using function HAL_ADC_Init().

    (#) Configure the channels for regular group parameters (channel number,
        channel rank into sequencer, ..., into regular group)
        using function HAL_ADC_ConfigChannel().

    (#) Optionally, configure the injected group parameters (conversion trigger,
        sequencer, ..., of injected group)
        and the channels for injected group parameters (channel number,
        channel rank into sequencer, ..., into injected group)
        using function HAL_ADCEx_InjectedConfigChannel().

    (#) Optionally, configure the analog watchdog parameters (channels
        monitored, thresholds, ...)
        using function HAL_ADC_AnalogWDGConfig().

    (#) Optionally, for devices with several ADC instances: configure the
        multimode parameters
        using function HAL_ADCEx_MultiModeConfigChannel().

     *** Execution of ADC conversions ***
     ====================================
     [..]

    (#) Optionally, perform an automatic ADC calibration to improve the
        conversion accuracy
        using function HAL_ADCEx_Calibration_Start().

    (#) ADC driver can be used among three modes: polling, interruption,
        transfer by DMA.

        (++) ADC conversion by polling:
          (+++) Activate the ADC peripheral and start conversions
                using function HAL_ADC_Start()
          (+++) Wait for ADC conversion completion
                using function HAL_ADC_PollForConversion()
                (or for injected group: HAL_ADCEx_InjectedPollForConversion() )
          (+++) Retrieve conversion results
                using function HAL_ADC_GetValue()
                (or for injected group: HAL_ADCEx_InjectedGetValue() )
          (+++) Stop conversion and disable the ADC peripheral
                using function HAL_ADC_Stop()

        (++) ADC conversion by interruption:
          (+++) Activate the ADC peripheral and start conversions
                using function HAL_ADC_Start_IT()
          (+++) Wait for ADC conversion completion by call of function
                HAL_ADC_ConvCpltCallback()
                (this function must be implemented in user program)
                (or for injected group: HAL_ADCEx_InjectedConvCpltCallback() )
          (+++) Retrieve conversion results
                using function HAL_ADC_GetValue()
                (or for injected group: HAL_ADCEx_InjectedGetValue() )
          (+++) Stop conversion and disable the ADC peripheral
                using function HAL_ADC_Stop_IT()

        (++) ADC conversion with transfer by DMA:
          (+++) Activate the ADC peripheral and start conversions
                using function HAL_ADC_Start_DMA()
          (+++) Wait for ADC conversion completion by call of function
                HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback()
                (these functions must be implemented in user program)
          (+++) Conversion results are automatically transferred by DMA into
                destination variable address.
          (+++) Stop conversion and disable the ADC peripheral
                using function HAL_ADC_Stop_DMA()

        (++) For devices with several ADCs: ADC multimode conversion
             with transfer by DMA:
          (+++) Activate the ADC peripheral (slave) and start conversions
                using function HAL_ADC_Start()
          (+++) Activate the ADC peripheral (master) and start conversions
                using function HAL_ADCEx_MultiModeStart_DMA()
          (+++) Wait for ADC conversion completion by call of function
                HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback()
                (these functions must be implemented in user program)
          (+++) Conversion results are automatically transferred by DMA into
                destination variable address.
          (+++) Stop conversion and disable the ADC peripheral (master)
                using function HAL_ADCEx_MultiModeStop_DMA()
          (+++) Stop conversion and disable the ADC peripheral (slave)
                using function HAL_ADC_Stop_IT()

     [..]

    (@) Callback functions must be implemented in user program:
      (+@) HAL_ADC_ErrorCallback()
      (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog)
      (+@) HAL_ADC_ConvCpltCallback()
      (+@) HAL_ADC_ConvHalfCpltCallback
      (+@) HAL_ADCEx_InjectedConvCpltCallback()

     *** Deinitialization of ADC ***
     ============================================================
     [..]

    (#) Disable the ADC interface
      (++) ADC clock can be hard reset and disabled at RCC top level.
        (++) Hard reset of ADC peripherals
             using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET().
        (++) ADC clock disable
             using the equivalent macro/functions as configuration step.
             (+++) Example:
                   Into HAL_ADC_MspDeInit() (recommended code location) or with
                   other device clock parameters configuration:
               (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC
               (+++) PeriphClkInit.AdcClockSelection = RCC_ADCPLLCLK2_OFF
               (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit)

    (#) ADC pins configuration
         (++) Disable the clock for the ADC GPIOs
              using macro __HAL_RCC_GPIOx_CLK_DISABLE()

    (#) Optionally, in case of usage of ADC with interruptions:
         (++) Disable the NVIC for ADC
              using function HAL_NVIC_EnableIRQ(ADCx_IRQn)

    (#) Optionally, in case of usage of DMA:
         (++) Deinitialize the DMA
              using function HAL_DMA_Init().
         (++) Disable the NVIC for DMA
              using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn)

    [..]

Si quiero usar el PWM
stm32f1xx_hal_tim.c
Código: [Seleccionar]
            ##### How to use this driver #####
  ==============================================================================
    [..]
     (#) Initialize the TIM low level resources by implementing the following functions
         depending from feature used :
           (++) Time Base : HAL_TIM_Base_MspInit()
           (++) Input Capture : HAL_TIM_IC_MspInit()
           (++) Output Compare : HAL_TIM_OC_MspInit()
           (++) PWM generation : HAL_TIM_PWM_MspInit()
           (++) One-pulse mode output : HAL_TIM_OnePulse_MspInit()
           (++) Encoder mode output : HAL_TIM_Encoder_MspInit()

     (#) Initialize the TIM low level resources :
        (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE();
        (##) TIM pins configuration
            (+++) Enable the clock for the TIM GPIOs using the following function:
             __HAL_RCC_GPIOx_CLK_ENABLE();
            (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();

     (#) The external Clock can be configured, if needed (the default clock is the
         internal clock from the APBx), using the following function:
         HAL_TIM_ConfigClockSource, the clock configuration should be done before
         any start function.

     (#) Configure the TIM in the desired functioning mode using one of the
       Initialization function of this driver:
       (++) HAL_TIM_Base_Init: to use the Timer to generate a simple time base
       (++) HAL_TIM_OC_Init and HAL_TIM_OC_ConfigChannel: to use the Timer to generate an
            Output Compare signal.
       (++) HAL_TIM_PWM_Init and HAL_TIM_PWM_ConfigChannel: to use the Timer to generate a
            PWM signal.
       (++) HAL_TIM_IC_Init and HAL_TIM_IC_ConfigChannel: to use the Timer to measure an
            external signal.
         (++) HAL_TIM_OnePulse_Init and HAL_TIM_OnePulse_ConfigChannel: to use the Timer
              in One Pulse Mode.
       (++) HAL_TIM_Encoder_Init: to use the Timer Encoder Interface.

     (#) Activate the TIM peripheral using one of the start functions depending from the feature used:
           (++) Time Base : HAL_TIM_Base_Start(), HAL_TIM_Base_Start_DMA(), HAL_TIM_Base_Start_IT()
           (++) Input Capture :  HAL_TIM_IC_Start(), HAL_TIM_IC_Start_DMA(), HAL_TIM_IC_Start_IT()
           (++) Output Compare : HAL_TIM_OC_Start(), HAL_TIM_OC_Start_DMA(), HAL_TIM_OC_Start_IT()
           (++) PWM generation : HAL_TIM_PWM_Start(), HAL_TIM_PWM_Start_DMA(), HAL_TIM_PWM_Start_IT()
           (++) One-pulse mode output : HAL_TIM_OnePulse_Start(), HAL_TIM_OnePulse_Start_IT()
           (++) Encoder mode output : HAL_TIM_Encoder_Start(), HAL_TIM_Encoder_Start_DMA(), HAL_TIM_Encoder_Start_IT().

     (#) The DMA Burst is managed with the two following functions:
         HAL_TIM_DMABurst_WriteStart()
         HAL_TIM_DMABurst_ReadStart()
stm32f1xx_hal_tim_ex.c
Código: [Seleccionar]
            ##### How to use this driver #####
  ==============================================================================
    [..]
     (#) Initialize the TIM low level resources by implementing the following functions
         depending from feature used :
           (++) Complementary Output Compare : HAL_TIM_OC_MspInit()
           (++) Complementary PWM generation : HAL_TIM_PWM_MspInit()
           (++) Complementary One-pulse mode output : HAL_TIM_OnePulse_MspInit()
           (++) Hall Sensor output : HAL_TIMEx_HallSensor_MspInit()

     (#) Initialize the TIM low level resources :
        (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE();
        (##) TIM pins configuration
            (+++) Enable the clock for the TIM GPIOs using the following function:
              __HAL_RCC_GPIOx_CLK_ENABLE();
            (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();

     (#) The external Clock can be configured, if needed (the default clock is the
         internal clock from the APBx), using the following function:
         HAL_TIM_ConfigClockSource, the clock configuration should be done before
         any start function.

     (#) Configure the TIM in the desired functioning mode using one of the
         initialization function of this driver:
          (++) HAL_TIMEx_HallSensor_Init and HAL_TIMEx_ConfigCommutationEvent: to use the
              Timer Hall Sensor Interface and the commutation event with the corresponding
              Interrupt and DMA request if needed (Note that One Timer is used to interface
             with the Hall sensor Interface and another Timer should be used to use
             the commutation event).

     (#) Activate the TIM peripheral using one of the start functions:
           (++) Complementary Output Compare : HAL_TIMEx_OCN_Start(), HAL_TIMEx_OCN_Start_DMA(), HAL_TIMEx_OCN_Start_IT()
           (++) Complementary PWM generation : HAL_TIMEx_PWMN_Start(), HAL_TIMEx_PWMN_Start_DMA(), HAL_TIMEx_PWMN_Start_IT()
           (++) Complementary One-pulse mode output : HAL_TIMEx_OnePulseN_Start(), HAL_TIMEx_OnePulseN_Start_IT()
           (++) Hall Sensor output : HAL_TIMEx_HallSensor_Start(), HAL_TIMEx_HallSensor_Start_DMA(), HAL_TIMEx_HallSensor_Start_IT().

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #9 en: 19 de Julio de 2016, 12:34:41 »
.

Hay otros factores a considerar a la hora de decantarse por una familia de microcontroladores, además cuando un producto tiene poca demanda por algo será.

A ver, una comparativa comercial, porque las empresas que distribuyen, ofrecen lo que la gente demanda, asi que si de un producto ofrecen poca variedad es porque tiene poca demanda, y en eso Texas no sale nada bien parado.

Entrando a los polacos, microcontroladores y placas de desarrollo disponibles por fabricante.

Microchip,  898 referencias de chips, 118 de placas de desarrollo
ST, 80 referencias de chip, 24 de placas de desarrollo
Texas, 18 referencias de chips, 4 de placas de desarrollo
NXP Freescale,  62 referencias de chips, 1 de placas de desarrollo.

Teniendo en cuenta que con ARM todo el entorno de desarrollo y el compilador de C son gratuitos, y que las placas de desarrollo de ST son las más baratas del mercado con diferencia, está claro que ST es la mejor opción. Yo ahora mismo tengo a los STM32 como primera opción para nuevos desarrollos y como segunda opción los Kinetis de Freescale.

En ningún momento he pensado en Texas, y de igual modo parecen pensar los distribuidores, que ofrecen producto según demanda.


« Última modificación: 19 de Julio de 2016, 12:39:27 por planeta9999 »

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #10 en: 19 de Julio de 2016, 12:54:21 »
Y luego te encuentras con estos, no se si llamarlos clones  :lol: de los stm32.

http://www.gigadevice.com/product-category/1.html?locale=en_US

Que son más económicos , según una comparativa que vi por Internet ofrecen más MIPS a la misma frecuencia, y con una Flash que proporciona cero latencia, jejejejeje

http://www.rogerclark.net/gd32f103-a-stm32f103-on-steroids/
http://www.cnx-software.com/2015/12/21/gigadevice-gd32-is-a-faster-software-and-pin-to-pin-stm32-compatible-cortex-m3-mcu/

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #11 en: 19 de Julio de 2016, 20:36:23 »
Supuestamente el cubeMX puede generar el proyecto para System Workbench, nunca lo he probado por que prefiero no usar ningún IDE, en lugar de eso uso cmake para compilar y  vim como editor.

y en un proyecto grande, con muchos fuentes en diversos directorios, cuando quieres encontrar la definicion de una funcion que estas usando en alguna parte del código, como haces?
Por que con un IDE tipo eclipse, te paras arriba de la llamada a la funcion, apretas F3 y te vas directo al archivo .c donde la funcion está definida... Como haces eso sin IDE?

Pero (aquí el pero) si lees el código fuente de las librerías te darás cuenta de que ahí explican paso a paso como usar los periféricos.

A mi me parece que esa informacion que mencionas debería estar en un documento y más ampliado. Ahí tenes solo una guía de como usar cada .c pero para mí no esta bien desarrollado. El documento que explica el funcionamiento de las HAL es un pdf de mil hojas que solo tiene las cabeceras de las funciones de cada modulo con sus parámetros pero nada de como se usan...

saludos!
-
Leonardo Garberoglio

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #12 en: 20 de Julio de 2016, 03:41:35 »
Supuestamente el cubeMX puede generar el proyecto para System Workbench, nunca lo he probado por que prefiero no usar ningún IDE, en lugar de eso uso cmake para compilar y  vim como editor.

y en un proyecto grande, con muchos fuentes en diversos directorios, cuando quieres encontrar la definicion de una funcion que estas usando en alguna parte del código, como haces?
Por que con un IDE tipo eclipse, te paras arriba de la llamada a la funcion, apretas F3 y te vas directo al archivo .c donde la funcion está definida... Como haces eso sin IDE?

Pero (aquí el pero) si lees el código fuente de las librerías te darás cuenta de que ahí explican paso a paso como usar los periféricos.

A mi me parece que esa informacion que mencionas debería estar en un documento y más ampliado. Ahí tenes solo una guía de como usar cada .c pero para mí no esta bien desarrollado. El documento que explica el funcionamiento de las HAL es un pdf de mil hojas que solo tiene las cabeceras de las funciones de cada modulo con sus parámetros pero nada de como se usan...

saludos!
Acabo de ver y hay unos archivos con extensión CHM, y si incluyen los pasos,sólo que por alguna razón no fueron interpretados como lo que son (markdown). Inicialmente pensaba que era por la versión de doxygen, ya que le añadieron soporte a markdown hasta la versión 1.8.0.



Hice la prueba con la 1.8.X que viene con Ubuntu



Pero aún así no fuero interpretados. Como puedes regenerar la documentación se pueden añadir algunos archivos md (markdown) con ejemplos para tener de referencia, o puedes editar los archivos .h/.c para añadirle los ejemplos a la documentación de tal forma que estos se muestren en el lugar correcto y no hasta el final. En el archivo PDF que generé los pasos se encuentran a partir de la página 1319, lo cual no me parece correcto, estos se debería de encontrar en la documentación de los módulos.

https://www.dropbox.com/s/hv5ey7eno1w9xk1/refman.pdf?dl=0

Por otro lado VIM es lo que me funciona, y también al consumir pocos recursos puedo tener más aplicaciones abiertas sin saturar el sistema.

Viene con una serie de comandos que si los aprendes a manejar te hacen el trabajo más fácil por ejemplo, si en el proyecto actual quiero buscar la definición de SysTick_Handler ejecuto el siguiente comando dentro de VIM

Código: [Seleccionar]
:grep -F “SysTick_Handler” **/*.*
:copen

Aunque también hay formas de buscar e imitar el comportamiento del F3 que mencionas.

Puedes buscar y remplazar en todos los buffers o tabs abiertas con un sólo comando. Acepta expresiones regulares.

Puedes dividir la ventana tanto vertical como horizontal, por lo que puedes tener lado a lado dos o más archivos para inspeccionarlos, e incluso puede ser el mismo archivo pero en diferentes líneas, por lo que no tienes que estar con el scroll de arriba a abajo.

Si quieres moverte a una línea en específico, por ejemplo la 1500

Código: [Seleccionar]
:1500
Puedes escribir al mismo tiempo en varias líneas

Al igual que en cualquier IDE puedes tener plantillas para generar código.

De igual forma podría usar eclipse detrás de vim con

https://sourceforge.net/projects/eclim/

También uso varios plugins como
http://valloric.github.io/YouCompleteMe/
https://github.com/wincent/command-t
https://github.com/terryma/vim-multiple-cursors
http://vim-taglist.sourceforge.net/screenshots.html
http://majutsushi.github.io/tagbar/
http://kien.github.io/ctrlp.vim/
https://sites.google.com/site/vimcctree/

http://www.thegeekstuff.com/2009/01/tutorial-make-vim-as-your-cc-ide-using-cvim-plugin/
https://www.safaribooksonline.com/blog/2014/11/23/way-vim-ide/


Una captura de pantalla con gvim


Desconectado schzrodriguez

  • PIC10
  • *
  • Mensajes: 43
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #13 en: 20 de Julio de 2016, 04:41:02 »
La verdad que los kit de desarrollo que ofrece ST son una maraviolla por su precio, stán muy baratos. Aún no había barajeado la posibilidad de los kinetics de frescale pero los tendre en cuenta.

En cuanto a TI estaba viendo la beaglebone black que a priori me gusta bastante. Antes de elegir el micro iba a probar varias placas de desarrolo. La idea es hacerlo con ST pero el la duda que me surgia era si el programa Cube no limitaba bastante, la facilidad a la hora de programar los perfiericos me atrae mucho.

Muchas gracias compañeros!

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:ST ya ha suministrado más de mil millones de micros STM32
« Respuesta #14 en: 20 de Julio de 2016, 08:02:46 »
Viene con una serie de comandos que si los aprendes a manejar te hacen el trabajo más fácil por ejemplo, si en el proyecto actual quiero buscar la definición de SysTick_Handler ejecuto el siguiente comando dentro de VIM

Código: [Seleccionar]
:grep -F “SysTick_Handler” **/*.*
:copen

Aunque también hay formas de buscar e imitar el comportamiento del F3 que mencionas.

Pero esa busqueda te mostrará todas las ocurrencias de SysTick_Handler, que seguramente puede ser solo una. Pero si busco HAL_Delay, por decir algo, en un proyecto gigante, me va a arrojar cientos de apariciones y puedo pasar horas buscando en que archivo se define.
Te pregunto esto porque un compañero de trabajo usa linux y le estaba ayudando para entender un código de un sistema embebido, pero me resulta imposible seguir el rastro al código. Por ejemplo en el main tengo llamada a 3 funciones y al buscarlas hay referencias en decenas de archivos y revusarlos uno por uno es una perdida de tiempo...

Eso es una de las cosas que menos me gusta de trabajar sin IDE.

Sds.
-
Leonardo Garberoglio


 

anything