Autor Tema: Tabla dinamica de 1024 entradas con 16f628  (Leído 1783 veces)

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

Desconectado joker53

  • PIC10
  • *
  • Mensajes: 31
Tabla dinamica de 1024 entradas con 16f628
« en: 30 de Agosto de 2007, 16:12:51 »
Hola amigos tengo una duda que necesito corroborar
Tengo un circuito con pic16f628 en el cual lo mas importante es una tabla con 1024 entradas posibles del tipo RETLW B'00000000'
el 628 como sabran tiene 2kByte de memoria Flash para programa pero solo 224 Bytes de Ram y yo necesito actualizar esa tabla dinamicamente a traves de la USART.

tengo hecho algo parecido con direccionamiento indirecto pero para 40 bytes.

Lo que quiero confirmar primero es que la memoria de programa (los 2kByte) efectivamente no los puedo modificar en tiempo de ejecucion, esto es asi?..., si esto fuese asi que me recomiendan para dicha tarea ?....vi que por ejemplo el 18f2550 tiene 2 Kbyte de Ram, pero no se que tan engorroso pueda ser pasar mi prroyecto en ASM a este micro.

tambien podria usar memoria externa pero necesito escribirla y leerla muy rapido y como no use memoria externa y vi que no es tan sencillo no quiero meterme en un lio nuevo.

Que me recomiendan los mas experimentados?....

Desde ya agradecido...


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Tabla dinamica de 1024 entradas con 16f628
« Respuesta #1 en: 01 de Septiembre de 2007, 12:04:19 »
joker53 has pensado en usar un 16F883 por ejemplo? Son muy económicos y tienen todo lo que necesitas. 

El 16F628 no se autoprograma.  El uso de una memoria externa SPI también es una opción interesante por supuesto dependiendo de con qué velocidad quieres actualizar esos datos, de todas formas si la actualización la harás por la usart a por ejemplo 9600bps siempre será más rápida la escritura en la flash que la transmisión serie :)  . Una memoria SPI tipica procesa no menos de 8 bytes por vez y se escriben en 5 mseg. 

En cuanto a la autograbación de un pic, los tiempos típicos son de 4mseg, pero esto depende del micro.  El tiempo típico en la flash de un pic es de unos 4mseg por cada bloque de 8 bytes (4 words), en otros por cada bloque de 64 bytes (32 words) , y en otros por cada byte.

El uso de una memoria RAM externa sirve pero yo pondría atención en 2 condicionantes:
 - fijate de que te alcancen los pines (si es paralela)
 - importancia o no de que los datos perduren al apagarse el circuito


Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado joker53

  • PIC10
  • *
  • Mensajes: 31
Re: Tabla dinamica de 1024 entradas con 16f628
« Respuesta #2 en: 02 de Septiembre de 2007, 12:48:42 »
Muchas gracias por las sugerencias, no necesito que los datos perduren una vez reiniciado el pic, lo que si necesito es estar transmitiendo a 115200 bps por usart a 20Mhz, y poder escribir mas o menos a esas velocidades en la memoria....
Voy a chequear lo de la memoria externa SPI en el foro a er que encuentro, lo unico que habia hecho era con EEPROMS pero son de muy lenta escritura.
Lo otro que les comentaba.....
Que tan portable es sino un programa hecho en asm para 628 para pasarlo a un 18f2550(que tiene los 2kbyte que necesito) ?, no es gran cosa el programa pero necesito usar usart por interrupcion y dos timers tambien con interrupcion.
Por lo que pueda costar no hay problema porque necesito hacer solo uno.
Entonces, si puedo desde mi programa del pic grabar los datos provenientes de la usart en la memoria de programa flash?....(aunque no me sirva para este proyecto me gustaria tener claro este concepto)

Desde ya, mas que agradecido.


Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Tabla dinamica de 1024 entradas con 16f628
« Respuesta #3 en: 02 de Septiembre de 2007, 17:23:26 »
Hummm... creo que efectivamente lo mas sencillo es usar una memoria externa y adaptar la velocidad de transmicion/recepcion por USART. No estamos hablando de que vas a transferir megas o gigas en los cuales el tiempo de transferencia es perceptible. Ademas el acceso a las memorias I2c es muy simple y seguro, y no tenes los problemas de valores espureos ante niveles de tension no optimos o envejecimiento de la memorira de programa.

Saludos.


 

anything