Autor Tema: Aumentar ROM en micro  (Leído 3793 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Aumentar ROM en micro
« en: 26 de Octubre de 2015, 13:27:21 »
Hola amigos del foro, tenemos una duda y es saber si hay posibilidad de aumentar la memoria de programa de un microcontrolador. Gracias.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Aumentar ROM en micro
« Respuesta #1 en: 26 de Octubre de 2015, 13:58:07 »
Antes que me ponga sarcastico voy a contestar con seriedad.

Depende del microcontrolador. Asi general tu pregunta es un SI y un NO, deberia reunir ciertas condiciones:

Primero debe poseer un bus externo (paralelo normalmente),
Y segundo debe permitir la ejecucion desde ese bus.

Si es un PIC, uno de esos es este:

http://ww1.microchip.com/downloads/en/DeviceDoc/39646c.pdf

Citar
The External Memory Bus (EMB) allows the device to access external memory devices (such as Flash, EPROM, SRAM, etc.) as program or data memory.

Solo hacerte notar que necesitas 3 puertos y medio ( de 8 pines cada uno ) para poder hacer la interfaz.

Si es un ARM, depende de como lo haga el fabricante, el fabricante puede decidir si el bus externo permitir la ejecucion, o directamente bloquearlo y que unicamente sirva para datos. Lo cual no creo que lo haga, pero nuevamente te vas a enfrentar a un gran uso de pines para ese fin, y tal ves convenga mas un micro mejor. Ya que el costo de un mejor micro con respecto a micro + flash + espacio PCB + routear todas las lineas tal ves termine siendo mas prohibitivo. Eso lo vas a tener que analizar con el tema de costos y el tamaño de memoria.

Una cosa mas, normalmente la ejecucion se hace mucho mas lenta desde una memoria externa.

¿ Es posible sin tener un bus externo ? , ¿Como un SPI, I2C ?

SI, algunos micros permiten poder ejecutar codigo desde la RAM, asi que podrias usar una buena seccion de la RAM, junto con DMA y un SPI por ejemplo para cargar el codigo y luego ejecutarlo, esta mas que claro que vas a tener algo mucho mas lento de esta forma. Y es mas que obvio que debe sobrarte la RAM., No tenes DMA? hacelo a mano

No tengo bus externo, no puede ejecutar desde la RAM y tengo solo SPI, ¿ puedo hacerlo ?

Casi todo se puede en la vida, tendrias que emular tu PIC en el PIC , es decir un codigo que emule tu PIC, lo cual leerias "datos" y de acuerdo al dato procesarlo como si fuera una instruccion, separando los opcode 1 por uno y ejecutando la instruccion debida. No creo que lleve mucho hacerlo pero, mas que un CALL + 1 instruccion cada una + RETURN + guardar y salver un registro con un STATUS/W de la emulacion no veo otra :P, suponiendo que sean PIC16, un PIC18 es un poco mas complejo ya.

En fin todo depende del micro, y lo que estes haciendo, etc.
« Última modificación: 26 de Octubre de 2015, 15:08:02 por KILLERJC »

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:Aumentar ROM en micro
« Respuesta #2 en: 26 de Octubre de 2015, 16:48:45 »
Muy interesante y educativa tu respuesta amigo Killerjc  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Aumentar ROM en micro
« Respuesta #3 en: 26 de Octubre de 2015, 20:30:31 »
Muy interesante y educativa tu respuesta amigo Killerjc  :mrgreen:

Yo pense que era de publico conocimiento lo que dije  :?

Despues estuve pensando en otro metodo. Aunque lo veo bastante complejo.

Requiere bastante conocimientos de programacion
Conocimientos de RF y Lineas de transmision
Un poco bastante de pulso y tacto

Y el resultado se puede ver a simple vista:

Aca un dsPIC con 32Kb a 1032Kb con una flash externa montada. Dejo imagen:

https://www.dropbox.com/s/wjhq8stbp7w29fx/100_3458.JPG?dl=0



PD: dije que me iba a poner sarcastico xD jeje, nomas que me gano el sueño y no logre subirlo antes :P
« Última modificación: 26 de Octubre de 2015, 21:08:26 por KILLERJC »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Aumentar ROM en micro
« Respuesta #4 en: 26 de Octubre de 2015, 20:36:02 »
Citar
Aca un dsPIC con 32Kb a 1032Kb con una flash externa montada. Dejo imagen:

joder pues a mi nunca me ha funcionado eso :( :( no se por que, y eso que he probado con distintos pegamentos, pero nada sigue con la misma memoria :D

por cierto, por quad spi tampoco esta mal poner la memoria, así mejoras velocidad tambien.

pero lo mejor siempre sera paralelo, y para eso tienes que irte a micros gordos con muchos pines o procesadores directamente , dependiendo de la cantidad que quieras para el direccionamiento.

por poner un ejemplo si le pones una memoria externa de 24 bit de direcciones a un ST439 te quedas sin USB, sin Ethernet, Sin I2C etc etc.
« Última modificación: 26 de Octubre de 2015, 20:40:56 por juaperser1 »
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Aumentar ROM en micro
« Respuesta #5 en: 27 de Octubre de 2015, 09:37:07 »
Muchas gracias KILLERJC, muy buena explicacion.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re:Aumentar ROM en micro
« Respuesta #6 en: 27 de Octubre de 2015, 12:14:16 »
Hola, mas que las posibles soluciones que te dio Killer busca un micro con mas memoria o directamente cambia de micro.

Saludos !

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Aumentar ROM en micro
« Respuesta #7 en: 27 de Octubre de 2015, 12:28:02 »
Por ejemplo actualmente tengo el PIC32MX795F512L, y ya se esta quedando corto de memoria, y pues alguien nos comento que este tipo de soluciones existían y que el había visto algo asi en un LPC4350 de NXP, por eso quería saber que tan viable es hacerlo.

Por lo que veo si se implementa, tocaría usar extensores de puertos y ver que los pines que se utilicen no sean tan críticos, como el Ethernet, USB, SPI.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Aumentar ROM en micro
« Respuesta #8 en: 27 de Octubre de 2015, 13:44:38 »
Tambien va a depender del compilador, que tan bueno sea para optimizar el codigo. O que tan bueno sean los programadores, ya que vi algunos programas que dan calambre y si vas a un proyecto grande es obvio que van a llenar, la flash y la RAM con cosas.
Si todavia no invertiste en el producto entonces podrias cambiar, por 0.50 mas de dolar tendrias uno mejor, y tambien depende de lo que necesites.

Es mucho mas barato que comprar una flash, yo lo dije antes y RICHI ahi lo volvio a remarcar. Nuevamente queda a tu decision, si seguis con PIC32MX te tenes que ir a PIC32MZ, si te vas a otro mundo que seria un ARM, tenes de multiples compañias a precios bastante parejos, creo que sin ir muy lejos del precio de tu PIC32 tendrias un micro mucho mejor, me refiero a mas velocidad, doble memoria, doble RAM, mayor cantidad de perifericos, mejores perifericos etc. Hasta capaces de manejar punto flotante y no punto fijo como hace el PIC32MX. Nuevamente esta en vos.


Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Aumentar ROM en micro
« Respuesta #9 en: 27 de Octubre de 2015, 13:51:14 »
Claro, para nuestro próximo proyecto vamos a basarnos en este ARM:

http://www.atmel.com/tools/SAM4E-EK.aspx

Solo queríamos ver si se puede y que tan rentable de todo punto de vista es.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Aumentar ROM en micro
« Respuesta #10 en: 27 de Octubre de 2015, 14:04:56 »
hagas lo que hagas nunca te vayas a un MZ

el micro de atmel es muy bueno, pero estos son mejores por si deseas echarles un vistazo:

http://www.freescale.com/products/arm-processors/kinetis-cortex-m/k-series:KINETIS_K_SERIES?cof=0&am=0

tienen para aumentar memoria ram, Flexcan, adc16, dac12... los he visto correr un kernel de linux.

las documentaciones de atmel y de freescale son de las mejores.

un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Aumentar ROM en micro
« Respuesta #11 en: 27 de Octubre de 2015, 15:03:36 »
Por que no un MZ... claro estuvimos mirando las opciones y entre esas Freescale pero al final nos decidimos por ATMEL.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Aumentar ROM en micro
« Respuesta #12 en: 27 de Octubre de 2015, 15:14:47 »
Por eso mismo no queria dar marcas ni decirle que usar.

- Usa el micro de la marca que mas te guste.
- Vas a tener que ver el compilador que poseen, (pago, gratuito, soporte del mismo, si esta desbloqueado para los kit de evaluacion, etc)
- Herramientas de desarrollo, kit de evaluacon (costo, poseen programador, debugger, es posible usarlo en una placa externa?),
- Programadores en caso de que no lo posea el kit de evaluacion.

- Finalmente y recien ahi pensas en el micro y sus perifericos, no te guies unicamente por la "frecuencia del micro" mira lo de los perifericos tambien, Me parece que de nada sirve tener un micro de 100Mhz si los puertos van a 50Mhz.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Aumentar ROM en micro
« Respuesta #13 en: 27 de Octubre de 2015, 15:16:08 »
Citar
Por que no un MZ... claro estuvimos mirando las opciones y entre esas Freescale pero al final nos decidimos por ATMEL.

pues por que MZ se ha enzarzado con en una lucha con ST absurda, donde están perdiendo los dos.

microchip saco sus MZ antes que nadie con 200 Mhz sin coma flotante (fija), que no pasa nada, si no fuera por que tiene mas bug que un renault laguna del 2002, no le funciona el reloj externo tienes que hacerlo funcionar obligatoriamente con el interno o añadir circuiteria externa para hacerlo funcionar, y rezar por que sea la revisión del silicio en la que funciona esa "chapuza", el ADC tampoco funciona, he visto empresas que han tenido que montar un ADC externo, por que les salia mas barato que rehacer el proyecto, para que cuando se arregle dejar la huella vacía. y mil bugs mas, puedes repasarlos en su web en las erratas.

y dicho por microchip, no van a arreglarlo van a esperar a la siguiente generacion de MZ que ya traeran como flotante, por que sale muy caro diseñar la oblea. o sea, que han hecho una chapuza muy grande para competir con ST.

ST a cambio a sacado su CORTEX M7 tambien muy rapido a 200 Mhz para competir con los MZ y si lo observas es un STM32F439, exactamente igual con 20Mhz más, todos los periféricos identicos y ya eran malos de por si, ni siquiera le han incluido algun PHY, nisiquiera el de USB 2.0, (cosa que si ha hecho microchip con los MZ, y que no vale para nada si no tiene el cristal externo),hasta son compatibles pin a pin, y su CORTEX M7 esta muy muy por detrás que los que estan sacando las demas empresas como freescale y atmel.

es lo que pasa por hacer las cosas con prisas.

un saludo.

por cierto tampoco te recomiendo los PIC32MX serie 1 ni 2 demasiados bugs tambien.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Aumentar ROM en micro
« Respuesta #14 en: 27 de Octubre de 2015, 15:19:07 »
Yo he tenido las mismas dudas que tu y me me voy a migrar a atmel o freescale y va a ser freescale por que dan soporte para linux a parte de  que sus procesadores y perifericos son algo mejores (muy poco) en comparación con respecto a los de atmel.

y de atmel me llama que sus herramientas de programacion la atmel-ice es propia de la marca, y sirve de jtag para los procesadores ARM9 y A5

las documentaciones son muy buenas las dos.

por cierto librerias de microchip 32 y ST basura, te hacen perder tiempo, cosa contraria para lo que existe una libreria
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw