MSP430G2452. LaunchPad Texas instrument.

Hola, antes he publicado una duda en este foro y me habéis cerrado el tema, no entiendo muy bien el por qué. Me habéis dicho que no todo se basa en la ley del mínimo esfuerzo y conseguirlo todo así, cuando yo lo único que he preguntado es donde se guardan las variables, si en la memoria RAM o en donde? para sabiendo eso hacer mi programa. NO ENTIENDO DONDE ESTÁ AHÍ LA LEY DEL MÍNIMO ESFUERZO!

Os dejo el comentario que he puesto antes:
"Hola, cómo veis estoy trabajando con el microcontrolador MSP430G2452. Tengo que hacer un programa que se divide en 2 partes:
1) El programa me tiene que sacar una señal PWM, configurando el periodo y el tiempo de servicio. Esta primera parte ya la he hecho, simplemente he tenido que configurar el Timer_A.

2) En esta segunda parte tengo que ir midiendo la tensión de los bornes de una pila, cada cierto tiempo e ir almacenando los valores.. Para este he pensado hacer una rutina de tratamiento de interrupción con el Timer_B para que cada cierto tiempo me haga la conversión Anólgica/Digital y la almacene en el registro correspondiente. El problema me ha surgido a la hora de ir guardando todos los valores digitales de la tensión de la pila. Ya que no sé si guardarlos en un array, cosa que veo bastante complicada porque este tendría que ser bastante grande o almacenarlos ir almacenandolos en memoria cada vez que el programa entre en la rutina de tratamiento de interrupción. Aquí tengo varias dudas:
¿Dónde tengo que guardar los valores de tensión convertidos: en la RAM, en la Flash/Rom o en donde?
¿En función de donde lo tengo que guardar, quiero saber la capacidad total de almacenamiento para saber cuantas mediciones puedo hacer ya que la pila puede durar unas 8 horas segun los patrones de carga que le voy a poner y el profesor me dijo que midiera la tensión en la pila cada 1 segundo?
En la hoja de características he leido que la memoria del micro es de 8KB, pero ahí que va incluido la RAM, la Flash/Rom, la tabla de vectores de Interrupción?
¿Cómo los guardo con un array o cómo?"

explico la idea que tengo para resolver el problema y sólo tengo una duda, que es donde puedo ir almacenando los valores resultantes de la conversión. Ya que cada vez que se produce una conversión se almacena en el registro ADC10MEM. Pero yo quiero ir guardando todos los valores después de cada conversión de forma que no se me vaya pisando en el registro ADC10MEM.

El caso es que quiero saber donde lo puedo guardar si en la RAM o en donde? para una vez que se agote la pila, todos los valores que voy a guardar, obtenerlos para hacer una grafica con la evolución de la tensión (de la pila) con el tiempo.

Un saludo y espero que no me digais que esto es la ley del mínimo esfuerzo.
 
Serian 60 muestras por minuto por 60 minutos por 8 horas y cada muestra ocupa 2 bytes por que es de 10 bits, entonces necesitarias 57600 bytes osea 57Kb como veras los 8Kb que tienes no alcanza, ademas eso de guardar variables de esa especie dentro de un micro no es muy viable, en todo caso puedes usar alguna memoria RAM externe conectada mediante un puerto del tipo SPI o I2C como por ejemplo la 23LCV1023 de microchip que es una RAM mediante bus SPI de 1Mbit, ademas las RAM las puedes sobreescribir infinidad de veces, y la flash del micro no.
Por ultimo te comento que los micros MSP430 de texas usan arquitectura Von-Neuman y no la "tipica" hardvard o como se escriba, entonces dale una checada a la primera arquitectura sale
 
He decidido que voy a mandar los datos obtenidos en la conversión, es decir al hacer la conversión de la tensión analógica de la pila al valor digital correspondiente, que se almacena en el registro ADC10MEM, ese valor pasarlo a través del puerto usb del microcontrolador al ordenador y guardarlo.
¿Tenéis alguna guía que me oriente o algun sitio donde puedo leer y documentarme al respecto?

Muchas gracias y un saludo.
 
Espera si mal no recuerdo (y eso es porque solo probe un mes esos micros) ese micro no tiene puerto USB, e implementarlo por software te va llevar mas tiempo, yo te recomiendo que pruebes a enviarlos por el puerto serial, si tu pc no tiene puerto serial puedes usar algun circuito como el mcp2200 que convierte de RS232 - USB.
Para que no hagas el programas (porque reinventar la rueda?) puedes probar el software de stamplot de salmawere.

Para configurar el micro es facil si usas la interfaz GRACE con la que cuenta su IDE.

Te ayudaria pero ya no me acuerdo bien de esos micros
 
No tiene puerto USB el MCU, pero creo que se refería a enviarlo por el puerto USB de la LaunchPad (mediante el puerto COM que esta crea), aquí lo veo un poco enredado, por software se complicaría la cosa ya que usarías el timmer, un ejemplo de como implementarlo esta en la Getting Started de la LaunchPad. Seria mejor usar el G2x53 o G2x13 que tiene UART.
 
Última edición:
Hola, lo que he pensado hacer es ir mandando los valores digitales (convertidos mediante el ADC10) a mi PC a través del puerto USB, ya que el micro tiene puerto USB. Mi micro es el MSP430G2452 (estoy trabajando con MSP430 LaunchPad) y no tiene UART. Creo que tengo que utilizar SPI o I2C, no sé cual de las 2.

Pero tengo una gran duda, para mandar mis datos al PC por USB y almacenarlos, tendría que utilizar la UART, SPI o I2C no? pero estos implementan comunicación serie y USB no es comunicación seria o eso tengo entendido. Entonces como mando esos datos a mi PC? ya que el único cable q se puede conectar desde el micro al pc es USB. De momento estoy leyéndome en la guía de usuario los temas concernientes a UART, SPI e I2C.

Tengo un lio tremendo, espero que alguien me solucione esas dudas. Muchísimas gracias.
 
Hola, lo que he pensado hacer es ir mandando los valores digitales (convertidos mediante el ADC10) a mi PC a través del puerto USB, ya que el micro tiene puerto USB....
a ver si puedo aportar algo;
-el MSP430G2452 NO TIENE USB, es decir no soporta USB por hardware (hay gente trabajando para emular el USB por software:http://forum.43oh.com/topic/2962-bit-bang-usb-on-msp430g2452/)
-podes usar el conversor SERIE->USB que tiene la placa Launchpad, como el MSP430G2452 no tiene UART por hardware la tenes que emular por software, vas a encontrar ejemplos por la web.
-capaz que te conviene usar el soft Enregia (https://github.com/energia/Energia/wiki/Getting-Started) y programas la placa como si fuera Arduino, por más que no hayas usado Arduino antes vas a ver que es muy sencillo, todo es practicamente transparente para vos, llamas las funciones que queres y listo. En el lado de la PC podes usar algo como Processing que es "algo" similar a Arduino. Lo importante es que vas a encontrar cientos (sino miles) de proyectos que usan Arduino-Processing que te van a servir de ejemplo.
 
Con Energia tienes la función Serial por software programados por el entorno, solo tienes que llamarla y dejemos claro esto, el MSP430G2452 NO TIENE USB, el USB de la lauchpad pasa a un TUSB3410 que lo transforma a UART para comunicarse con el MSP430F1612 del circuito emulador, de ahí ese chip se puede comunicar al MSP430G2452 mediante UART por Software colocando la configuración de jumper en Software UART (mira el manual del LaunchPad) pero en sí la única comunicación posible es por UART ya sea por hardware o por software.
Del lado de la PC, la LaunchPad crea un puerto COM y el MSP430F1612 (que tu no vas a programar) es el encargado de traducir todo, tu solo necesitarás un programa que permita abrir el puerto RS232 emulado (como el HyperTerminal de Windows o crear uno con el Visual Studio) y podrás leer los datos que te envía el MCU, aquí lo complicado es que requieres hacer ese UART por software, idealmente seria usando un timer.
 
Última edición:
Atrás
Arriba