Autor Tema: Velocidad máxima real de sn74hc595-ep y 25LC1024  (Leído 5948 veces)

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

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #15 en: 10 de Septiembre de 2014, 19:18:26 »
A bote pronto (si tu micro te da 1 instruccion por ciclo, que no lo se), tienes 8 intrucciones para mover los datos de un bus a otro: quizá funcione en ensamblador aunque lo dudo (sólo con el "while" principal te "comerás" unas cuantas instrucciones) .

¿Tienes DMA en el micro?. Eso te ayudaría mucho: podrías montar una especie de "tunel" entre lo que recibes y lo que envias sin tener que utilizar procesador.

Un saludo!

A 72MHz cada instruccion dura 0.05 useg o sea que en cada useg entran 18 instrucciones.

Lamentablemente ninguno de los micros tiene DMA en el SPI, es lo primero que miré, pero no tuve esa suerte!!!

Saludos y gracias!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #16 en: 10 de Septiembre de 2014, 19:24:24 »


Podrías utilizar leds RGB digitales WS2812B, en vez de registros de desplazamiento y leds convencionales, el circuito será más sencillo y además podrás sacar imagenes con múltiples colores.

Si utilizas un micro con DMA y SPI, puedes volcar todos los datos y DMA se encarga el solito de ir sacándolos, mientras el micro puede dedicarse a otras tareas, como por ejemplo seguir leyendo más datos de una eeprom externa.

Las rutinas íntegramente en C, con DMA y SPI, para gestionar los led WS2812B, las colgué por aquí hace poco, aunque aún no las he podido probar. http://www.todopic.com.ar/foros/index.php?topic=43217.0


Aquí un POV con leds digitales WS2812B sobre una rueda de bicicleta:








Planeta, muy lindo tu POV!!!!!!!!

Lamentablemente no tengo DMA en los micros que podemos usar.
En cuanto a los LED RGB esta muy bueno, pero este año estamos buscando obtener más bien resolucion antes que color. La idea es una barra de 64 LEDs de 3mm. Este proyeto va creciendo año a año con cada grupo de alumnos que me toca.

El año que viene iremos buscando implementar color con los proximos alumnos y ahí veremos seguramente tu proyecto.

Saludos!
-
Leonardo Garberoglio

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #17 en: 11 de Septiembre de 2014, 00:15:17 »
Hola elgarbe, puedes usar esa memoria para velocidades de hasta 20 MHz sin mayores problemas que los que tendrás en realizar la rutina para el micro, pero también puedes usar memorias tipo RAM FLASH (las usadas en las BIOS de las PC ;-)) que son mucho más rápidas, con comunicación paralela, tienen más capacidad, más fáciles de usar y no pierden los datos (y si buscas mother viejas en desuso son regaladas  :D). PIÉNSALO....

Con respecto a los registros, yo no usaría seriales, si no que usaría paralelos, mucho más rápidos que los seriales y más fácil su uso y menos exigencia para el microcontrolador. Un buen ejemplo sería el 74ALS573.

Con los integrados que te cito arriba, si bien el diseño de la PCB se complica un poco al usar buses paralelos, el beneficio es poder usar un PIC al estilo 16F877 y conseguir mucha más resolución que el diseño que tu deseas realizar. Ni hablar si pretendes usar un micro como el que tú mencionas en post anteriores.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #18 en: 11 de Septiembre de 2014, 14:04:43 »
Hola elgarbe, puedes usar esa memoria para velocidades de hasta 20 MHz sin mayores problemas que los que tendrás en realizar la rutina para el micro,

Te parece? he sacado mal las cuentas? Si el micro corre a 72MHz la cada instruccion toma 4/72 = 0.055useg. Si tengo que leer la memoria SPI (64bits) almacenarlas en un buffer en el micro y luego tomar ese buffer y pasarlo al otro SPI y para todo eso (y alguna que otra cosita más) tengo 100useg (1800 instrucciones) creo que debería poder conseguirlo sin problemas, a no ser que esté haciendo algún calculo mal.

pero también puedes usar memorias tipo RAM FLASH (las usadas en las BIOS de las PC ;-)) que son mucho más rápidas, con comunicación paralela, tienen más capacidad, más fáciles de usar y no pierden los datos (y si buscas mother viejas en desuso son regaladas  :D). PIÉNSALO....
Eso es muy interesante, pero me estas hablando de las viejas memorias PROM que se borran con UV y se programan electricamente? digo, este chip:
http://hardwaremovile.com/imagenes/bios2.jpg
o hay algo mas nuevo? realmente no conozco como son las bios hoy en día, me quedé con las bios del 486 / pentium etc.  :oops:

Con respecto a los registros, yo no usaría seriales, si no que usaría paralelos, mucho más rápidos que los seriales y más fácil su uso y menos exigencia para el microcontrolador. Un buen ejemplo sería el 74ALS573.

Esta idea es buena pero no me gusta tanto como la otra. Rutear el bus de 8bits en 2 layer y sin PTH (es lo que podemos hacer en el colegio) me parece que me resultaría complicado....

Con los integrados que te cito arriba, si bien el diseño de la PCB se complica un poco al usar buses paralelos, el beneficio es poder usar un PIC al estilo 16F877 y conseguir mucha más resolución que el diseño que tu deseas realizar. Ni hablar si pretendes usar un micro como el que tú mencionas en post anteriores.
Un saludo.
Atte. CARLOS.

La idea en conjunto es muy buena y debo reconocer que no la habia pensado. Voy a estudiar un poco mas a ver que puedo hacer de una forma u otra.

Saludos y gracias por las ideas!
-
Leonardo Garberoglio

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #19 en: 12 de Septiembre de 2014, 13:49:16 »
Hola elgarbe, solo te aporte algunas ideas, tú sabrás que cual es la mejor para implementar según los recursos de los cuales disponen.

No, en las memorias RAM tipo FLASH, todo se hace eléctricamente, no se usa el UV, algunos modelos para que investigues:

39SF020A
29F1008-15
29F002NTPC-12

Todas las anteriores las puedes encontrar en viejas mothers, todas del tipo FLASH, y ninguna con borrado UV, son configuración paralelo y muy rápidas.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado nico

  • PIC16
  • ***
  • Mensajes: 180
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #20 en: 12 de Septiembre de 2014, 15:10:08 »
Hola, una consulta, ¿es necesario actualizar todos los leds en cada angulo todas las vueltas o se puede aprovechar y actualizar por ejemplo 0°, 10°, 20°, etc en la vuelta 1, 1°, 11°, 21° , etc en la vuelta 2, no recuerdo de cuantas vueltas era el motor, pero si se logra que cada frame se cumpla a 1/33 (o sea a 33 frames por segundo que si no equivoco es donde dejamos de ver el parpadeo) debería funcionar. No saque los cálculos, solo tiro una idea, aunque si la velocidad de giro es poca no va a dar y parpadeará. Tampoco digo usar 10 grados de diferencia, pero por ahi si andas corto de tiempo mostrar los ángulos pares en las una vuelta y los impares en la siguiente y ya duplicas el tiempo para gestionar los registros. Si es por la vista arriba de los 33 hz si no mal no recuerdo integra todo lo que ve y lo toma como una sola imagen.

Si da la velocidad del motor sería mas simple pues tendrías mas tiempo entre envío y envío.

Saludos.
Nico.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #21 en: 12 de Septiembre de 2014, 15:26:29 »
Hola, una consulta, ¿es necesario actualizar todos los leds en cada angulo todas las vueltas o se puede aprovechar y actualizar por ejemplo 0°, 10°, 20°, etc en la vuelta 1, 1°, 11°, 21° , etc en la vuelta 2, no recuerdo de cuantas vueltas era el motor, pero si se logra que cada frame se cumpla a 1/33 (o sea a 33 frames por segundo que si no equivoco es donde dejamos de ver el parpadeo) debería funcionar. No saque los cálculos, solo tiro una idea, aunque si la velocidad de giro es poca no va a dar y parpadeará. Tampoco digo usar 10 grados de diferencia, pero por ahi si andas corto de tiempo mostrar los ángulos pares en las una vuelta y los impares en la siguiente y ya duplicas el tiempo para gestionar los registros. Si es por la vista arriba de los 33 hz si no mal no recuerdo integra todo lo que ve y lo toma como una sola imagen.

Si da la velocidad del motor sería mas simple pues tendrías mas tiempo entre envío y envío.

Saludos.
Nico.

nico, no da la velocidad del motor...

saludos!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #22 en: 12 de Septiembre de 2014, 16:28:11 »
Hola elgarbe, solo te aporte algunas ideas, tú sabrás que cual es la mejor para implementar según los recursos de los cuales disponen.

No, en las memorias RAM tipo FLASH, todo se hace eléctricamente, no se usa el UV, algunos modelos para que investigues:

39SF020A
29F1008-15
29F002NTPC-12

Todas las anteriores las puedes encontrar en viejas mothers, todas del tipo FLASH, y ninguna con borrado UV, son configuración paralelo y muy rápidas.

Un saludo.

Atte. CARLOS.



A pero que buena info!!!!! yo me habia quedado con las PROM del año del ñaupa!!!!
En la escuela llevan siempre pc rotas que en vez de tirar las donan como material. Me estoy enloqueciendo pensando todas las memorias que me perdi!!!!! igual algunas debo tener por ahi tirada, ahora a la tarde voy a revisar y la verdad que estas memorias si me gustan mucho para el proyecto.

Por casualidad alguna librería o algo en C para usarlas? como para tomar de ejemplo...

Saludos y gracias!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #23 en: 12 de Septiembre de 2014, 16:30:51 »
Ni hablar de que con esa memoria libero el segundo SPI, por lo que puedo hacer 2 tiras de LED opuestas y dibujar interlazado para bajar los tiempos... o con el mismo tiempo mejorar la intensidad del dibujo...

Saludos!
-
Leonardo Garberoglio

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #24 en: 12 de Septiembre de 2014, 21:43:02 »
Hola elgarbe, te recomiendo que leas los datasheet y mires la forma de su control y funcionamiento, luego verás que ni hace falta el uso de librerías.

Solo tienes que respetar los tiempos mínimos sobre todo para la escritura que si sabe ser bastante más lenta que la lectura (los de lectura no creo que le de al micro para superarlos ya que son solo algunos nseg.), si respetas los tiempos verás que su control es muy sencillo y no necesitarás librerías.
Para leer un dato solo colocas los pines de control de manera adecuada y tiras por el puerto de dirección la "dirección" dentro de la memoria que deseas leer y la memoria te la tira por el puerto de salida de datos, para la próxima dirección solo tienes que indicarle cual es.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #25 en: 12 de Septiembre de 2014, 23:25:39 »
Bien, ahi conseguí una am29f010 de 1Mbit de una vieja placa de no se qué. Ahora que se que buscar, veo que hay muchas de estas memorias en placas de pc y demás.
Leyendo lahoja de datos veo un pequeño problema... 28 pines para manejar la memoria!!!!! Es cierto que es fácil 8 veces más rapida que la serial, pero voy a tener que ver bien como distribuir esos 28 pines. Incluso tengo que tener 17 contiguos por un lado y 8 por el otro... voy a revisar el micro a ver como hago porque la verdad me gustó muchola idea de reciclar esas memorias y mis alumnos tambien!

Sds.
-
Leonardo Garberoglio

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #26 en: 13 de Septiembre de 2014, 00:58:12 »
Hola elgarbe, para usar esas memorias y sobre todo con los pines de dirección hay varias posibles soluciones, por ejemplo:

1) Un micro más grande de manera tal que haya pines suficientes como para manejar todos los pines de la memoria de manera directa.
2) Usar compuertas lanch paralelas tal como las 74xx573
3) No necesariamente usar todas las direcciones, por ejemplo, con 10 bits de direcciones se consiguen 1024 posiciones de memoria que son más que suficientes para realizar una imagen con muy buena resolución, los demás bits de direcciones de la memoria se deben conectar a masa.

Como verás a muchas posibles opciones cada cual con sus ventajas y desventajas. Pero estoy más que seguro, que algunas de ellas caerá justa a sus aplicaciones.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5421
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #27 en: 13 de Septiembre de 2014, 05:23:06 »
Creo que en el proyecto faltan cálculos.

La velocidad de 10Mbps es demasiado alta. No hace falta tanto para un pov así. Es suficiente con menos de 1Mbps y eso lo alcanza cualquier SPI de un micro de 8 bits. Hay varios ejemplos con Arduino en la red.

¿El tamaño del POV y su velocidad de rotación cómo van a ser? Parece que van a salir los componentes volando.

La memoria externa no me queda claro para qué hace falta, porque se puede utilizar sin problemas la memoria interna del micro.

Saludos.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #28 en: 13 de Septiembre de 2014, 08:53:49 »
Creo que en el proyecto faltan cálculos.

La velocidad de 10Mbps es demasiado alta. No hace falta tanto para un pov así. Es suficiente con menos de 1Mbps y eso lo alcanza cualquier SPI de un micro de 8 bits. Hay varios ejemplos con Arduino en la red.

¿El tamaño del POV y su velocidad de rotación cómo van a ser? Parece que van a salir los componentes volando.

La memoria externa no me queda claro para qué hace falta, porque se puede utilizar sin problemas la memoria interna del micro.

Saludos.

y yo creo que como siempre te largas a opinar sin siquiera leer de lo que se esta hablando.

http://www.todopic.com.ar/foros/index.php?topic=43384.msg359424#msg359424

sds.
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
« Respuesta #29 en: 13 de Septiembre de 2014, 09:01:08 »
Hola elgarbe, para usar esas memorias y sobre todo con los pines de dirección hay varias posibles soluciones, por ejemplo:

1) Un micro más grande de manera tal que haya pines suficientes como para manejar todos los pines de la memoria de manera directa.
2) Usar compuertas lanch paralelas tal como las 74xx573
3) No necesariamente usar todas las direcciones, por ejemplo, con 10 bits de direcciones se consiguen 1024 posiciones de memoria que son más que suficientes para realizar una imagen con muy buena resolución, los demás bits de direcciones de la memoria se deben conectar a masa.

Como verás a muchas posibles opciones cada cual con sus ventajas y desventajas. Pero estoy más que seguro, que algunas de ellas caerá justa a sus aplicaciones.

Un saludo.

Atte. CARLOS.



Si, si, seguro que hay alternativas para usar la memoria, de hecho el LPC1347 que es el que tenemos ganas de usar posee 42 IO.
En cuanto a la resolucion, en los calculos preliminares sacamos que serían 64bits x 360º (suponiendo que queremos actualizar cada 1º) = 23040 bits. Quizá es mucho actualizar cada 1º, pero son las ideas preliminares que estamos tomando. Vi por ahi un lindo proyecto, mas chico, pero que actualiza 256 veces en una vuelta. Cada imagen ocupa 16384 bits. Teniendo en cuenta esto, tenes razón de que con menos posiciones de memoria podemos almacenar varias imásgenes.

Bueno, considero resuelto el tema. Sigo con los avances que hagamos en el POV en su respectivo post.

Saludos y gracias!
-
Leonardo Garberoglio