Autor Tema: Migro a freescale  (Leído 46463 veces)

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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Migro a freescale
« Respuesta #30 en: 03 de Mayo de 2014, 09:01:28 »
Ahora si salen, gracias !! :-/ :-/
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #31 en: 03 de Mayo de 2014, 10:00:13 »
En digikey te dan plazo para 2 meses y no es tan caro.

Este MCU se utiliza principalmente para el control del motor, es decir, inyeccion, chispa, actuadores y sensores, es por eso que tiene muchos canales etpu (para controlar inyeccion, chispa, sensores y actuadores) una buena cantidad de canales ADC (para controlar los sensores) y etc... Pero la principal cualidad es que le puedes meter directamente la señal del sensor de cigueñal (previamente adaptandola a digital) y asi saber en que posicion se encuentran los pistones.

Para controlar motores DC/AC tambien he visto librerias de etpu, no se si es lo que buscas ya que no estoy muy metido en el tema http://www.freescale.com/files/32bit/doc/app_note/AN2869.pdf?&Parent_nodeId=&Parent_pageType=
El caso es que segun he podido ver todas las MCUs con ETPU son caras, STMicroelectronic tambien fabrica mcus con etpu y es lo mismo, aparte tambien son complicados de que los tengan en stock por su precio y que no son muy usados asi que no tienen grandes stock porque no los suelen vender.

Los hay de mas de 32 canales, digamos que hay otros que llevan 2 modulos etpu y son 32 por modulo (64 en total). Incluso los hay de doble nucleo (2 mcus en 1) pero su precio mejor ni decirlo xD

Simplemente enterate si es lo que necesitas y si es asi te buscas uno con etpu y que se adapte a tus necesidades (frecuencias, pines....) y si eso pues te lanzas.

Tambien comentar que hay DSPs con muchos timers tambien, recuerdo haber visto una en freescale con 12 timers, pero no es etpu. Y de microchip recuerdo el dspic33ep256mu810 que usaba que tenia 15 OC y 9 timers

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Migro a freescale
« Respuesta #32 en: 03 de Mayo de 2014, 19:05:34 »
Gracias MerLinz, me informaré,
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #33 en: 06 de Mayo de 2014, 08:38:05 »
Bueno ya le he pillado el truco al microcode del etpu. Actualmente estoy usando 5 canales y va perfecto. He conseguido una precision/resolucion de 0,1grado, es tan simple como poner un valor de por ejemplo 65 para obtener 6.5grados cosa que facilita mucho la programacion ya que en el pic tenia que calcular los 0.X por porcentajes de valor. Simplemente he dividido cada grado por 10 ticks, programo el valor y salta en ese valor.
Hacer este sistema es bastante sencillo, por un lado tengo un contador que se incrementa con el CLOCK de la CPU, en mi caso la he puesto a 10Mhz (100ns por valor), por otro lado tengo otro contador que se incrementa externamente por el sensor de posicion del cigueñal, este contador se incrementa por rising, falling o rising+falling, en mi caso cada rising = 2º de cigueñal, lo que he hecho ha sido dividir cada rising en 20 valores, todo esto se hace mediante hardware, es decir, programas un contador y se incrementa automaticamente, ahora si yo quiero poner la chispa que ocurra a 20.3º (habria que calcular todo el sistema de BTDC y demas) simplemente pongo el valor que corresponde con este tiempo acabado 203 y ya obtengo ese tiempo mediante un match (equivalente a un timer cuando seleccionas un valor y este llega a este valor).

En fin, resumiendo, muy sencillo manejarlo, lo mejor es que para controlar esos 5 canales simplemente he utilizado 1kb de los 14kb que contiene, seguramente optimizandolo consiguese menos, pero me sobra. Lo mejor de todo esto es que se controla todo con el microengine y la CPU solo inicializa esto y ya no hace nada mas (por ahora) XD

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Migro a freescale
« Respuesta #34 en: 06 de Mayo de 2014, 11:18:21 »
Excelente data !!! me agendo tu post.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Migro a freescale
« Respuesta #35 en: 07 de Mayo de 2014, 16:05:59 »
No es muy nuevo pero si, es complicado de encontrar, no hay stock en ningun sitio, pero de la placa de entrenamiento si hay stock. Incluso en la web de freescale no lo ponen como sample. El unico sitio con stock:
http://www.aliexpress.com/item/2PCS-LOT-SPC5634MF1MLQ80-SPC5634MF1M-144-LQFP/1836697098.html

El programador que uso es el multilink. De todas formas si te compras la placa de entrenamiento tiene su propio BDM que solo necesitas un cable usb (lo trae includo vamos xD), pero es mas lento que el programador.

MLGSOFT a mi si me sale, te sale la imagen de la placa en los primeros posts?? A ver si es que tu pais ha bloqueado ese servidor o algo xD

MerLinz,

he vuelto a mirar en Freescale y he visto que se pueden comprar algunos micros directamente a ellos (qfp144) por unos 12$ cada uno: por si es de tu interés.

Sigo evaluando utilizarlos o no. En realidad sería un proyecto en común con otra gente. El problema es que sólo hay comunicación por CAN-bus y SPI por lo que los PID debería hacerlos ese micro y no se si va a dar para controlar varios motores en lazo cerrado...

Un saludo!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #36 en: 07 de Mayo de 2014, 16:41:11 »
No comprendo mucho tu proyecto, pero tienes una MCU de 32bits @ 80Mhz (no se cuantos DMIPS daba) sin contar que tienes por otro lado un modulo etpu que corre en paralelo con la CPU asi que es como si tuvieses 2 MCUs. Tambien tiene 2 modulos CAN y 2 modulos SPI, si te explicas un poco mas te podria ayudar, cuantos motores, a que frecuencia irian...

Desconectado cicloide2

  • PIC18
  • ****
  • Mensajes: 359
Re: Migro a freescale
« Respuesta #37 en: 07 de Mayo de 2014, 22:03:47 »
Hola MerLinz, MUY BUENO! lo tuyo, mi interes en aprender a programar microcontroladores siempre fue para implementarlos en el control de motores de DC, y actuadores.
En mi caso me decidí directamente por los Freescale, aunque mi nivel es nulo y los agarro en cuanto tengo tiempo, acá en esta sección  encontré a personas muy avanzadas siempre dispuestas a tenderme una mano.
La placa evaluadora que estas utilizando trae terrible micro, lastima que por aca, Argentina, el tema de las importaciones esta muy complicado, y debemos conformarnos con mucho menos (en lo que respecta a Freescale), yo utilizo un BDM, de fabricacion nacional que es muy bueno  para principiantes como yo, aunque un P&E, me facilitaría mas las cosas.
Implemente un vector para hacer parpadear 8 led, pulsador y led con debunce por software, y ahora estoy tratando de configurar mi primer PWM, en un MC9S08QG8, primero interpretar como configurar los registros coreespondientes, y despues implementar alguna condicion que me desbanezca un led,  comparado con lo que muchos han logrado una pabada total, pero por algo hay que empezar, espero poder construir algun dia algo interesante relacionado con motores y Freescale.

Bueno esto no ayudo a nadie, solo lo quería comentar, un saludo y a practicar se ha dicho. :-) 

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #38 en: 08 de Mayo de 2014, 06:37:51 »
Es bueno saber que hay gente con freescale, porque realmente he visto muy poco por ahi, la mayoria la he tenido que sacar del datasheet y de los limitados ejemplos que pone el fabricante, cuando digo limitados lo digo porque son muy pocos y son ejemplos muy complejos a diferencia de un "hello world" de toda la vida, es mucho codigo y es dificil comprenderlo pero nos apañamos.

El caso es que se me esta haciendo bastante sencillo, recuerdo cuando me tire varios dias buscado la manera de meter el codigo a la etpu, ahora me resulta tan simple como encender un led xD

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Migro a freescale
« Respuesta #39 en: 08 de Mayo de 2014, 12:01:19 »
Es bueno saber que hay gente con freescale, porque realmente he visto muy poco por ahi, la mayoria la he tenido que sacar del datasheet y de los limitados ejemplos que pone el fabricante, cuando digo limitados lo digo porque son muy pocos y son ejemplos muy complejos a diferencia de un "hello world" de toda la vida, es mucho codigo y es dificil comprenderlo pero nos apañamos.

El caso es que se me esta haciendo bastante sencillo, recuerdo cuando me tire varios dias buscado la manera de meter el codigo a la etpu, ahora me resulta tan simple como encender un led xD

+1

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #40 en: 12 de Mayo de 2014, 18:43:33 »
Bueno ya me ha quedado bastante claro todo el etpu2, ya he conseguido hacer todo el sistema de encendido e inyeccion y me ha resultado bastante sencillo, ademas en muy poco codigo, simplemente quedaria afinarlo un poco y ya no quedaria mucho mas que hacer. Este seria el resultado:


Me faltarian 2 señales mas de los inyectores, pero el analizador logico solo tiene 8 canales xD
Serian los 2 primeros las señales del cigueñal/arbol de levas, los 4 siguientes el encendido (chispa) y los 2 siguientes la inyeccion (en total he usado 10 canales).

Tambien otra novedad es que he pedido 5 samples de estas MCU, no se porque en el apartado samples no me aparecia, pero si pongo el numero directamente si me aparecen los samples

Otra cosa a añadir es que los canales pueden compartir funciones, en mi caso solo existe una funcion de encendido y una de fuel, estas funciones estan compartidas por 4 canales distintos pero a la hora de la verdad seria como tener una funcion replicada por canal, existe la posibilidad tambien de poder compartir las variables o bien que cada canal tenga sus variables propias, en mi caso el fuel cada canal tiene sus variables y el spark como no lo necesito todos los canales utilizan la misma RAM.

Todo esto lo he hecho en muy poco tiempo, es cierto que en mi cabeza ya tenia la teoria de como hacerlo y era cuestion de ponerlo en practica, sin embargo hacerlo con un pic era bastante mas complejo, seria lo equivalente a clavar un clavo con un martillo y con una piedra, en ambos casos se puede clavar, pero con el martillo es mas facil y efectivo, voy a poner unas ventajas e inconvenientes que he visto al cambio con el dspic33 que usaba:

Ventajas:
-ETPU2 (facil diseño, rapidez y efectividad)
-Puedes alimentar el MCU con varias tensiones y tienes un ADC de 5V, con varias tensiones quiero decir por ejemplo ponerle al spi 3.3v, al GPIO 5V... pero esta limitado, es decir, tienes varios perifericos unidos a cada voltaje, por ejemplo el SPI A y B solo tienen un voltaje y no le puedes poner distintos a cada uno.
-El MCU funciona a 1.2V y unicamente requiere un transistor NPN conectado a varios pin del MCU para regular esa tension de 5V a 1.2V
-Tiene bastantes mas perifericos que el pic: muchos timers (sin contar etpu2), CAN, LIN.
-Seleccionable caracteristicas de los PIN GPIO, por ejemplo capacitancia, rising time....

Inconvenientes:
-No trae USB
-La seleccion de perifericos por puertos la echo de menos, en el dspic podias asignar la mayoria de perifericos al PIN que tu deseabas, en freescale cada PIN tiene sus funciones que se pueden elegir, suele ser 3 perifericos por PIN pero esos pines se repiten, por ejemplo la mayoria de pines analogicos solo sirven para eso, no los puedes usar como GPIO por ejemplo.
« Última modificación: 12 de Mayo de 2014, 19:16:16 por MerLiNz »

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Migro a freescale
« Respuesta #41 en: 12 de Mayo de 2014, 18:50:02 »
Felicitaciones por enésima vez !!!, perdón por la indiscreción pero este trabajo es para Argentina u otro país ?

Saludos !

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #42 en: 12 de Mayo de 2014, 19:18:25 »
Por ahora seria para España, sin embargo al final seria internacional ya que iria orientado al mundo del automovil y seguramente tendria mas exito fuera que aqui.

Desconectado cicloide2

  • PIC18
  • ****
  • Mensajes: 359
Re: Migro a freescale
« Respuesta #43 en: 12 de Mayo de 2014, 21:31:03 »
 ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-))MUY BUENO, MIS FELICITACIONES. Y AGUANTE FREESCALE!.


Salu2.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Migro a freescale
« Respuesta #44 en: 15 de Mayo de 2014, 10:38:16 »
Bueno, hoy he conseguido hacer funcionar las interrupciones, pense que iba a ser mas complejo pero codewarrior tiene unas funciones que hace que sea "supersencillo", hasta que las encontre me he tirado 2 dias buscando informacion ya que como repito, es muy limitada, apenas hay informacion de usuarios asi que la mayoria de veces te tienes que buscar la vida.

Pongo un pequeño ejemplo:

   INTC_InitINTCInterrupts(); //INICIALIZAMOS INTC (funcion creada por codewarrior)
   INTC_InstallINTCInterruptHandler(ISR_ETPU_CH27,VECTOR_ETPU_CH27,10); //Asignamos la ISR_ETPU_CH27 al VECTOR 95 (los vectores estan en el reference manual del mcu); PRIORIDAD 10; 0->15
   INTC_InstallINTCInterruptHandler(ISR_ETPU_CH29,VECTOR_ETPU_CH29,10);
   ETPU_InitInterrupts(); //Iniciamos los FLAGS IE=1 de los correspondientes canales
   INTC.CPR.B.PRI = 0; //Ponemos la prioridad mas baja en 0, si se pusiera por encima de 10 no saltarian las interrupciones, en los pics es similar
   asm(" wrteei 1"); //interrupciones ENABLE, parecido al GIE de los pics

void ISR_ETPU_CH27(void) { //FUNCION interrupcion, se salva/restaura todo automaticamente
   eTPU->CISR_A.B.CIS27=1; //clear flag (un write = 1 equivale a CLEAR, sin embargo el registro se lee como 0 en caso de estar clear)
   *cFUEL_TIME=2000;
   
}