TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: elgarbe en 07 de Septiembre de 2014, 17:05:04

Título: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 07 de Septiembre de 2014, 17:05:04
Buenas, para el proyecto del sistema POV que estaos diseñando con mis alumnos pretendemos almacenar las imagenes en una memoria serie tipo 25LC1024. Revisando el datasheet () veo que la frecuencia máxima es de 10MHz. Esto es, una vez que configuramos la lectura de la memoria, si mantengo una frecuencia de 10MHz en el CLK voy a tener datos saliendo de la memoria a esa velocidad. Interpreto bien ese dato? En caso de ser así, estimo que alcanzar esos 10MHz debe ser en condiciones super optimas, en un montaje común, teniendo cuidado de colocar la memoria bien cerca del micro, es posible alcanzar esa velocidad de lectura? alguien a probado dicha velocidad? alguien sabe cual sería la velocidad máxima teórica alcanzable (para poder hacer los cálculos preliminares) que debería tomar?

La misma duda se me plantea para los registros de desplazamiento. En este caso, los mismos como van en cascada la línea de clock tendrá unos 250mm de largo, como influye eso en la frecuencia máxima alcanzble?

literatura recomendable?

Saludos y gracias de antemano!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: DominusDRR en 09 de Septiembre de 2014, 15:06:54
Si el Data Sheet, te dice que el reloj puede alcanzar 10 MHz, se supone que es así.

Sin embargo, te recomiendo leer la Fe de Erratas de esa memoria.

Pueda que no se pueda alcanzar la velocidad por un bug en el silicio o por otras razones, para algunas versiones de la memoria.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: PalitroqueZ en 09 de Septiembre de 2014, 17:48:37
hay un parámetro llamado retardo de propagación que es tiempo que demora una señal en pasar de una entrada a una salida, debes buscar ese parámetro en la datasheet.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 09 de Septiembre de 2014, 23:30:07
Ok , voy a revisar eso.
En cuanto al PCB, hay que tener consideraciones especiales para 10 a 20 MHz?

Saludos!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 en 10 de Septiembre de 2014, 12:18:48
Hola elgarbe, según lo que preguntas:

En cuanto al PCB, hay que tener consideraciones especiales para 10 a 20 MHz?

El mayor problema de trabajar a 10/20 MHz en circuitos digitales son las radiaciones EMI's, pero colocando todo dentro de un buen gabinete conectado a masa resolverás el problema.

E visto circuitos digitales trabajando a mayores frecuencias y en circuitos con pistas bien largas (mas de 30cm.) sin ningún tipo de problemas. Igual es recomendable para esas frecuencias trabajar con placas de fibra de vidrio (creo que se llaman HF4)
Demás esta decir que planos de masa y buenos desacoplo de alimentación son muy necesarios.

Otra recomendación es tener cuidado con la cantidad de "entradas TTL's" que se le colocan a una determinada salida, para los IC de tecnología TTL la cantidad de entradas está mucho más limitada que para integrados de familia CMOS.

Las 25LC1024 y según datasheet funcionan a frecuencias de hasta 20 MHz, por lo que a 10 MHz correrá sin problemas y de seguro que a 20 MHz tampoco tendrá problemas si la alimentación es de 5 Vcc.

Para aconsejarte sobre los registros de desplazamiento, pues deberíamos saber que diagrama de conexionado pretendes usar y que tipo y modelo de integrado usarás, pues no es lo mismo un TTL del tipo 74SXX, 74XX, 74Fxx, etc. Varía n mucho en sus velocidades y consumos.

Espero haberte ayudado, un saludo.

Atte. CARLOS.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 10 de Septiembre de 2014, 13:16:54
Carlos, muchas gracias por los consejos, son todos útiles ya que nunca trabaje a esa velocidad con este tipo de circuitos.

Los registros son estos:
https://www.dropbox.com/s/bjad5dfxcmvf9rm/sn74hc595-ep.pdf?dl=0
https://www.dropbox.com/s/u82mitf3og4uozl/sn74lv595a-q1.pdf?dl=0

tengo 5 de cada uno y creo que voy a usar entre 5 y 8.

La placa la voy a hacer con FR4 para estar seguros. No puedo poner la placa en un gabinete metálico porque es para un sistema de Persistencia de la Vision, pero puedo poner algún apantallado metálico a la parte trasera de la placa, donde estarán los registros y la memoria...

Entre la señal de CLK y gnd se pone algun capacitor? rodeo dicha pista con buenos planso de GND?

Saludos y gracias!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 en 10 de Septiembre de 2014, 15:14:31
Hola elgarbe, vamos por pasos:

https://www.dropbox.com/s/bjad5dfxcmvf9rm/sn74hc595-ep.pdf?dl=0
https://www.dropbox.com/s/u82mitf3og4uozl/sn74lv595a-q1.pdf?dl=0

tengo 5 de cada uno y creo que voy a usar entre 5 y 8.

Tendrás que decidirte por uno de los dos, ya que ambos son muy diferentes:

74HC595 = Frecuencias de clock de hasta 25 MHz
74LV595 = Frecuencias de clock de hasta 40 MHz

Te pedí un esquema del diseño de tú circuito porque este diseño será el que defina cual de ambos será más conveniente.
De todas maneras esos link no se pueden ver.

La placa la voy a hacer con FR4 para estar seguros. No puedo poner la placa en un gabinete metálico porque es para un sistema de Persistencia de la Vision, pero puedo poner algún apantallado metálico a la parte trasera de la placa, donde estarán los registros y la memoria...

El problema de las EMI's no lo tendrá el circuito que estas diseñando, si no todo lo que este cerca de este, si esto no es de importancia no es muy necesario la pantalla. De todas formas siempre hay forma de usar un gabinete.  :mrgreen:

Una pregunta!! ¿A que le llamas sistema de Persistencia de la Visión? Una aclarada me vendría muy bien...

Entre la señal de CLK y gnd se pone algun capacitor? rodeo dicha pista con buenos planso de GND?

Nunca y en ningún circuito se coloca un capacitor entre clk y gnd. Los capacitores se colocan entre Vcc y GND, uno para cada integrado TTL y lo más cercano a los pines de alimentación de los mismos.
Para este caso, en el 74595 se colocan entre los pines 8 (GND) y 16 (VCC), un capacitor cerámico de 0.1uF o mayor es suficiente.
También deben llevar este capacitor el/los micros, los reguladores, las memorias y todo integrado a usar.

El plano de masa no cubre/rodea solo una pista, si no que cubre cada espacio sin pista que halla en la PCB, y lo óptimo es usar una PCB de doble faz.

Un saludo.

Atte. CARLOS.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: manwenwe en 10 de Septiembre de 2014, 15:21:20
Ok , voy a revisar eso.
En cuanto al PCB, hay que tener consideraciones especiales para 10 a 20 MHz?

Saludos!

No vas a tener problemas (incluso a 5V), no sufras por eso ;-).

Un saludo
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 en 10 de Septiembre de 2014, 15:25:37
Perdón, los link's si funcionan, lo que no funciona es el gogle chrome con los HTTPS.

Un saludo.

Atte. CARLOS.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 10 de Septiembre de 2014, 16:00:59
Hola elgarbe, vamos por pasos:

https://www.dropbox.com/s/bjad5dfxcmvf9rm/sn74hc595-ep.pdf?dl=0
https://www.dropbox.com/s/u82mitf3og4uozl/sn74lv595a-q1.pdf?dl=0

tengo 5 de cada uno y creo que voy a usar entre 5 y 8.

Tendrás que decidirte por uno de los dos, ya que ambos son muy diferentes:

74HC595 = Frecuencias de clock de hasta 25 MHz
74LV595 = Frecuencias de clock de hasta 40 MHz

Te pedí un esquema del diseño de tú circuito porque este diseño será el que defina cual de ambos será más conveniente.
De todas maneras esos link no se pueden ver.

La placa la voy a hacer con FR4 para estar seguros. No puedo poner la placa en un gabinete metálico porque es para un sistema de Persistencia de la Vision, pero puedo poner algún apantallado metálico a la parte trasera de la placa, donde estarán los registros y la memoria...

El problema de las EMI's no lo tendrá el circuito que estas diseñando, si no todo lo que este cerca de este, si esto no es de importancia no es muy necesario la pantalla. De todas formas siempre hay forma de usar un gabinete.  :mrgreen:

Una pregunta!! ¿A que le llamas sistema de Persistencia de la Visión? Una aclarada me vendría muy bien...

Entre la señal de CLK y gnd se pone algun capacitor? rodeo dicha pista con buenos planso de GND?

Nunca y en ningún circuito se coloca un capacitor entre clk y gnd. Los capacitores se colocan entre Vcc y GND, uno para cada integrado TTL y lo más cercano a los pines de alimentación de los mismos.
Para este caso, en el 74595 se colocan entre los pines 8 (GND) y 16 (VCC), un capacitor cerámico de 0.1uF o mayor es suficiente.
También deben llevar este capacitor el/los micros, los reguladores, las memorias y todo integrado a usar.

El plano de masa no cubre/rodea solo una pista, si no que cubre cada espacio sin pista que halla en la PCB, y lo óptimo es usar una PCB de doble faz.

Un saludo.

Atte. CARLOS.



Este es el sistema de persistencia de la vision que estamos mejorando:

http://www.todopic.com.ar/foros/index.php?topic=43367.0

en youtube hay miles de ejemplos.

El diseño del circuito es más o menos así:

https://www.dropbox.com/s/hkuhvaocfzo6nrb/TIRA_POV_SCH.png?dl=0

y la placa del uC la estamos rediseñando. El PCB de donde estan los 74 es más o menos así (la estamos remodelando):

https://www.dropbox.com/s/og0gz0syvsga6ct/DSC00029.JPG?dl=0

saludos y gracias por los consejos!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 10 de Septiembre de 2014, 16:02:55
Ok , voy a revisar eso.
En cuanto al PCB, hay que tener consideraciones especiales para 10 a 20 MHz?

Saludos!

No vas a tener problemas (incluso a 5V), no sufras por eso ;-).

Un saludo

Ok, lo que pasa es que andamos cortos de tiempo con este proyecto y me quería asegurar de no meter la pata en estas cuestiones que desconocía.
Entonces para los cálculos puedo tomar sin problemas leer la memoria a una tasa de 10MHz (10 millones de bits por segundo) y lo mismo para llenar los 74xx595

Saludos y gracias!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: manwenwe en 10 de Septiembre de 2014, 16:26:47
A ver: yo no he dicho que no vayas a tener probemas :P. Con la PCB si no la haces caseras y con malos contactos (muchos cambios de impedancia en las lineas) no tendrás problemas. Lo que pasa es que no me ha quedado claro el proyecto: que recibe los datos: un pic?, qué pic?. Me refiero a que si tienes que hacer procesamiento de datos va a ser muuuuy dificil que un microcontrolador sea capaz de procesar datos a 10Mbps.

Un saludo!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 10 de Septiembre de 2014, 16:40:40
A ver: yo no he dicho que no vayas a tener probemas :P. Con la PCB si no la haces caseras y con malos contactos (muchos cambios de impedancia en las lineas) no tendrás problemas. Lo que pasa es que no me ha quedado claro el proyecto: que recibe los datos: un pic?, qué pic?. Me refiero a que si tienes que hacer procesamiento de datos va a ser muuuuy dificil que un microcontrolador sea capaz de procesar datos a 10Mbps.

Un saludo!

El proyecto es este:

http://www.todopic.com.ar/foros/index.php?topic=43367.0

E micro está a definirse. Probablemente sea un ARM cortex M3 (LPC1347) a 72MHz. El micro tiene que leer datos por el SPI desde la memoria y almacenar en un buffer en la SRAM del micro. El micro leerá esos datos y los irá sacando por el segundo SPI hacia los 74LV595.
En los calculos preliminares, cada 100useg tengo que actualizar lo que los LED muestran, entonces si ocupo 6useg en sacar 64bits @10MHz me quedan 94useg para leer la memoria y realizar algunos cálculos. si ocupo 6useg para leer la memoria me quedan 88useg. Con esos cálculos estimo que el proyecto funcionará. Por eso quería saber cuán dificil puede ser hacer funcionar a esa memoria a 10MHz y cuán dificil puede ser hacrlo con los 74xx595.

Saludos y gracias!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: manwenwe en 10 de Septiembre de 2014, 16:58:10
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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: planeta9999 en 10 de Septiembre de 2014, 17:28:25


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:

(http://i1322.photobucket.com/albums/u573/planeta9999/POV_001_zps06548980.jpg)

(http://i1322.photobucket.com/albums/u573/planeta9999/POV_002_zps49004405.jpg)


Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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:

(http://i1322.photobucket.com/albums/u573/planeta9999/POV_001_zps06548980.jpg)

(http://i1322.photobucket.com/albums/u573/planeta9999/POV_002_zps49004405.jpg)




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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 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.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 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.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: nico 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.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 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.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 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.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Picuino 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.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe 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!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Picuino en 13 de Septiembre de 2014, 10:08:08
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.


Y yo creo que como siempre, te largas a opinar sin siquiera leer de lo que estoy hablando.

En cuanto a lo que dices, no es cierto. He leído lo que se comenta en el hilo y otros relacionados.


Usando el SPI a 1Mhz por interrupciones, da tiempo de sobra para enviar los 64 bits (8 bytes) en 100us.


El tamaño del POV (25cm) y la velocidad de rotación (1300rpm = 136 rad/s) producen una aceleración en la punta de 4624 m/s^2, es decir 472 veces la aceleración de la gravedad.
Una pieza de 10g pasará a pesar como si tuviese 4.72 kilogramos, moviéndose a una velocidad de 122 kilómetros por hora.
Eso puede llegar a ser peligroso, sobre todo si hay niños por el medio.


La memoria necesaria para el dibujo es de 64bits x 480posiciones = 30720 bits = 3840 bytes.
Eso no hace falta guardarlo en una memoria externa. Basta y sobra con la ram de un buen micro de 8 bits, o con la flash si va a ser un dibujo fijo.

Saludos.


Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 13 de Septiembre de 2014, 10:31:39
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.


Y yo creo que como siempre, te largas a opinar sin siquiera leer de lo que estoy hablando.

En cuanto a lo que dices, no es cierto. He leído lo que se comenta en el hilo y otros relacionados.


Usando el SPI a 1Mhz por interrupciones, da tiempo de sobra para enviar los 64 bits (8 bytes) en 100us.


El tamaño del POV (25cm) y la velocidad de rotación (1300rpm = 136 rad/s) producen una aceleración en la punta de 4624 m/s^2, es decir 472 veces la aceleración de la gravedad.
Una pieza de 10g pasará a pesar como si tuviese 4.72 kilogramos, moviéndose a una velocidad de 122 kilómetros por hora.
Eso puede llegar a ser peligroso, sobre todo si hay niños por el medio.


La memoria necesaria para el dibujo es de 64bits x 480posiciones = 30720 bits = 3840 bytes.
Eso no hace falta guardarlo en una memoria externa. Basta y sobra con la ram de un buen micro de 8 bits, o con la flash si va a ser un dibujo fijo.

Saludos.




si lo huvieses leído no huvieses preguntado por la velocidad de rotacion ni nada de lo que preguntaste.

en el post original expliqué porque quiero llegar a 10MHz. Tambien hicimos los calculos a 5MHz. También expliqué que todos los años vamos mejorando el sistema y la idea de este año es tener una plataforma de hardware que permita obtener mejores resultados el año que viene.

No te preocupes por la seguridad, el año pasado el mismo POV giraba a 2400RPM (podes ver la foto del dibujo feo del reloj que obtuvimos) y no se desprendió ningun componente. De todos modos, no creo que sea más peligroso que un ventilador de pié o un ventilador de techo... Si lo tocas te corta, ovbio, pero en el colegio los chicos saben eso.

La memoria necesesaria ya la calculamos, sabemos hacer una multiplicacion.

El uso de una memoria más grande es para poder almacenar varias imágenes y hacer una especie de video.

Saludos y gracias por los consejos!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Picuino en 13 de Septiembre de 2014, 10:53:29
Leyendo tu hilo me he animado a incluir en mi lista de proyectos un POV. Es bastante interesante.

El tema de la seguridad es para mí fundamental y las cifras asustan bastante, de manera que me alegro de que sea seguro.

En cuanto al micro a utilizar, desde luego para hacer vídeo un micro de 8 bits no da lo suficiente.
En cualquier caso, para ir paso a paso, creo que utilizar un arduino nano para controlar el POV con imagen estática sería muy didáctico, antes de dar el paso al video.

Mucha suerte y ánimo con el proyecto.

Saludos.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 13 de Septiembre de 2014, 11:53:39
Leyendo tu hilo me he animado a incluir en mi lista de proyectos un POV. Es bastante interesante.

El tema de la seguridad es para mí fundamental y las cifras asustan bastante, de manera que me alegro de que sea seguro.

En cuanto al micro a utilizar, desde luego para hacer vídeo un micro de 8 bits no da lo suficiente.
En cualquier caso, para ir paso a paso, creo que utilizar un arduino nano para controlar el POV con imagen estática sería muy didáctico, antes de dar el paso al video.

Mucha suerte y ánimo con el proyecto.

Saludos.

este tono de mensajes me resulta mucho mas agradable.

Los sistemas POV son muy interesantes y llamativos. Dan para un monton de cosas, como optimizacion de hardware y software, hay mucho de sistemas mecánicos, hay cálculos muy interesantes y que, en mi caso, los alumnos pueden entender.

El primer POV que hicimos hace 2 años era con un pequeño motor de DC y un 16F628. El POV del año pasado fue con un 16F883 manejando 40 LED con registros de desplazamiento a, aprox 1MHz. Sin optimizar el código nos costaba bastante conseguir los tiempos necesarios para obtener una buena resolucion. No puedo hacer demasiada optimizacion en el código porque los alumnos dejan de entender lo que estamos haciendo. No me gusta Arduino, por eso planteamos los proyectos con PIC, aunque los alumnos pierden algunas cosas en cuanto a la programacion y algunos detalles puntuales.

La idea de hacer "video" surge de este video que me mostraron en el post del POV:
En ese caso si bien son led RGB no tienen PWM en cada color así que obtienen 8 colores. Estimo que el RGB podría ser el paso siguiente para el año que viene.

saludos
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Picuino en 13 de Septiembre de 2014, 13:48:41
Lo bueno de los Atmega en este tipo de problema es que tienen memoria lineal y sus punteros son muy efectivos. Son más rápidos que los PIC en esta tarea.

Creo que la mejor forma de separar la parte del programa difícil y crítica en el tiempo, del resto de gestiones es por interrupciones y utilizando una "memoria de vídeo".

Por ejemplo se me ocurre este para montar yo:

Especificaciones del POV:
Motor de 1500 rpm (25 rps)
192 puntos por vuelta
Frecuencia de muestreo 192 * 25 = 4800 Hz

40 puntos por fila
40 * 196 = 7680 bits por imagen (960 bytes)

Separación entre leds de 3mm. Radio total del POV = 3mm * 40 led = 120mm

Control con Atmega328P  (2kbytes ram)


Rutina de interrupciones:
1.- Se configura un timer para que llame a las interrupciones 28800 veces por segundo (34.7us)  (28800 = 6 * 25 * 192)
2.- En cada interrupción se envía un dato por SPI y se apunta al siguiente byte de la "memoria de video"
     Como pasa suficiente tiempo entre una llamada y otra, no hace falta comprobar que el dato ha sido enviado por el SPI (ahorra tiempo)
3.- Después de enviar 5 bytes (40 leds) se envía una señal para actualizar los latch en la sexta interrupción.
4.- Los datos se toman de la memoria ram de forma consecutiva. Una vez llegado al final de la memoria de video, se vuelve a comenzar otra vez.

Frecuencia SPI = 500khz
Tiempo de ciclo SPI = 2us
Tiempo para enviar un byte = 16us, que es menor de 34.7us de la interrupción

Tiempo estimado de tratamiento de la interrupción < 4us   (12% del tiempo total)


Rutina de usuario:
Para el usuario, el proceso de enviar la imagen a los leds es completamente transparente. Son las interrupciones las que se encargan de realizarlo.
El tiempo restante que queda para el usuario, puede utilizarlo para modificar las imágenes sobre la memoria.
Como esto es difícil, se utiliza una librería de dibujo que permita dibujar líneas rectas, puntos, círculos o bitmaps pequeños.
Los alumnos/usuarios sólo se preocupan de llamar a la librería de dibujo para trazar sus dibujos en coordenadas rectangulares.


Librería de dibujo:
Como el 88% del tiempo está disponible para el usuario, el microcontrolador puede fabricar sus propias imágenes con alguna librería de dibujo, adaptando alguna de las existentes para Arduino.
El mayor problema consiste en traducir las posiciones cartesianas (x, y) en coordenadas polares (módulo y ángulo)

La librería se maneja todo el tiempo en coordenadas rectangulares, hasta el momento de escribir en memoria.
El mayor problema, traducir coordenadas rectangulares a polares, se soluciona con las fórmulas:

   x = posición horizontal del punto a visualizar (en unidades de 3 milímetros)
   y = posición vertical del punto a visualizar (en unidades de 3 milímetros)

   Led (bit) = sqrt(x*x + y*y)
   Angulo = atan(y/x)

Se puede acelerar mucho, pero con coma flotante de 24 bits puede ser suficientemente rápido para representar letras, líneas, puntos, círculos, etc.  en tiempo real


Como hay suficiente memoria, también se puede construir una imagen en la memoria libre y luego volcar rápidamente esa imagen a la zona de "memoria de video".


Librería gráfica de Adafruit (hay que adaptarla):
https://learn.adafruit.com/adafruit-gfx-graphics-library/overview

Saludos.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 13 de Septiembre de 2014, 17:14:05
Estaría bueno que pongas todo esto en un post como Proyecto para que quede como referencia del resto.

Ten en cuenta una cosa, la velocidad de rotacion muchas veces no es estable, por lo que generalmente se coloca un sensor para medir la velocidad de giro y de paso sincronizar el micro para que la imagen quede bien orientada. Entonces el tiempo entre cada interrupcion del timer se determina en runtime en funcion de la velocidad de giro.

Creo, no lo he pensado bien aún, pero creo que el tiempo dentro de la interrupcion sería 2*8*4 = 64uSeg ya que tenes que enviar los 4 bytes dentro de la int antes de salir.
Tendrías que probar bien, pero realizarlo todo por interrupcion cunado queres manejar tiempos de pocos useg no sé si es lo mejor. Digo, porque cada llamado a interrupcion mas verificacion de bandera de int, etc te va a comer unos cuantos ciclos. Ya me paso algo de eso en alguna oportunidad. A lo mejor sería dentro de la interrupcion enviar los 5 bytes. en mi caso lo he tenido que hacer así quizá por no optimizar bien el código.

En cuanto a realizar gráficos en runtime es muy interesante, estaría bueno poder implementarlo, aunque no será mi caso...

Saludos y esperamos ver ese proyecto materializarse!


Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Chaly29 en 14 de Septiembre de 2014, 01:42:05
Hola elgarbe, señor, usted si que le gusta complicarse la vida, para el POV usted usa un sencillo y muy común motor asíncrono, pero lo que se usa para estas funciones son motores brushless, donde usted puede controlar las RPM de manera muy exacta, casi con la exactitud de un cuarzo.

De esta manera se consigue una estabilidad de imagen muy superior y una simplificación considerable del software necesario, por supuesto a cambio de una leve elevación en la complejidad del circuito electrónico, pero sí que vale la pena el cambio.

Un saludo.

Atte. CARLOS.

Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 14 de Septiembre de 2014, 09:30:30
Hola elgarbe, señor, usted si que le gusta complicarse la vida, para el POV usted usa un sencillo y muy común motor asíncrono, pero lo que se usa para estas funciones son motores brushless, donde usted puede controlar las RPM de manera muy exacta, casi con la exactitud de un cuarzo.

De esta manera se consigue una estabilidad de imagen muy superior y una simplificación considerable del software necesario, por supuesto a cambio de una leve elevación en la complejidad del circuito electrónico, pero sí que vale la pena el cambio.

Un saludo.

Atte. CARLOS.



Carlos, amigo, no creo que sea tan así, usar un motor asincronico funciona muy bien. De echo la tecnica de ajustar los tiempos en funcion de las variaciones de rpm la tome del maestro Manolo en este extenso post, http://www.todopic.com.ar/foros/index.php?topic=18345.msg179142#msg179142 cuando arranque me tome el trabajo de leerlo completo y la gran mayoria utilizó motores de dc o motores asincronicos.
No voy a negar que con un brushless las cosas mejorarian mucho, pero lamentablemente no tenemos ese tipo de motores en nuestra pila de chatarra.
Creo que en la escuela hay una vieja fotocopiadora para desarme. Puede ser que en ella halla este tipo de motores? Creo haber visto uno que biene con placa incluida. Tendran fuerza esos motores? Entiendo que bien balanceado no es mucha la que se requiere.... lo anoto en mi ToDo list para chequear aunque este año ya lo veo complicado, ya tenemos el motor montado en su base esperando la placa!

Saludos y gracias una vez mas por el consejo!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: BrunoF en 14 de Septiembre de 2014, 14:15:59
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.

Leo, los ARM no son como el PIC de gama baja/media.  El tiempo de ejecución de una instrucción es de 1/72uSeg = aprox. 14 nanoSegundos. Un problema de las altas velocidades de los periféricos es que es como trabajan con un divisor basado en el oscilador principal, por ejemplo, 72 Mhz, enseguida la menor frecuencia obtenible en un periférico debajo de la de 72Mhz es 36 Mhz (DIV2), luego 24Mhz (DIV3), luego 18Mhz (DIV4), y luego se va haciendo un poco más fácil obtener frecuencias más variadas pero a alta velocidad, como podrás ver, hay pocas opciones y grandes saltos de frecuencias seleccionables.

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:

Puede que la SST25VF016B (16MBit) o similar sea una solución moderna y correcta. Compré un par hace unos años pero no las usé nunca. Veo que en HIGH READ SPEED alcanzan 80Mhz y son por SPI. Ese modelo además en Elemon es económico (sólo un par de dólares para 2 MBytes de memoria FLASH, nada mal).

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 74HC595 hace más de una década que trabajo. Creo que los problemas comienzan a partir de los 2.5Mhz de clock con 50cm de cable entre medio. Las pruebas más exigentes de clock las hice con un LPC1768 en su momento, que tenía que alimentar LEDs RGB multiplexados. A alta velocidad todo influye en la calida de la señal. Hay que intentar mantener las distancias cortas, evitar cambios de impedancia o materiales, y de ser necesario intercalar integrados Schmitt_trigger de alta velocidad para recomponer la señal si se ve debilitada por la carga de los integrados seriales o distancia recorrida. Destaco que si usás Schmitt_trigger, acordate de someter a las 3 líneas seriales (DATA, CLOCK y STROBE) al filtrado, porque sino las señales se te van a ir desfazando en tiempo debido a demoras internas de los filtros.

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!

Si tenés en cuenta un par de reglas de diseño básico, creo que podés obtener sin problemas 10Mhz de los registros seriales en cascada. Sino siempre podés optar por registros paralelos como dice Carlos. Personalmente prefiero los seriales y mi caballito de batalla ha sido siempre el 74HC595.

Saludos!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: BrunoF en 14 de Septiembre de 2014, 15:16:01
Aclaro que no había visto que tenía página 2 este hilo al momento de mi respuesta previa. Perdón por eso.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 14 de Septiembre de 2014, 15:34:49
Leo, los ARM no son como el PIC de gama baja/media.  El tiempo de ejecución de una instrucción es de 1/72uSeg = aprox. 14 nanoSegundos. Un problema de las altas velocidades de los periféricos es que es como trabajan con un divisor basado en el oscilador principal, por ejemplo, 72 Mhz, enseguida la menor frecuencia obtenible en un periférico debajo de la de 72Mhz es 36 Mhz (DIV2), luego 24Mhz (DIV3), luego 18Mhz (DIV4), y luego se va haciendo un poco más fácil obtener frecuencias más variadas pero a alta velocidad, como podrás ver, hay pocas opciones y grandes saltos de frecuencias seleccionables.

Teniendo en cuenta eso, quizá el 1114 habría sido una buena opcion tambien, a 50MHz tendría 20nseg de ciclo de instruccion!


Puede que la SST25VF016B (16MBit) o similar sea una solución moderna y correcta. Compré un par hace unos años pero no las usé nunca. Veo que en HIGH READ SPEED alcanzan 80Mhz y son por SPI. Ese modelo además en Elemon es económico (sólo un par de dólares para 2 MBytes de memoria FLASH, nada mal).

Lo que es desconocer sobre un tema!!!! Estuve buscando en elemon y no encontré mas que las de microchip 25LC1024 a USD8!!!! la que vos me indicas cuesta la mitad, funciona al doble de frecuencia y tiene 16 veces la capcidad de la otra.

Con los 74HC595 hace más de una década que trabajo. Creo que los problemas comienzan a partir de los 2.5Mhz de clock con 50cm de cable entre medio. Las pruebas más exigentes de clock las hice con un LPC1768 en su momento, que tenía que alimentar LEDs RGB multiplexados. A alta velocidad todo influye en la calida de la señal. Hay que intentar mantener las distancias cortas, evitar cambios de impedancia o materiales, y de ser necesario intercalar integrados Schmitt_trigger de alta velocidad para recomponer la señal si se ve debilitada por la carga de los integrados seriales o distancia recorrida. Destaco que si usás Schmitt_trigger, acordate de someter a las 3 líneas seriales (DATA, CLOCK y STROBE) al filtrado, porque sino las señales se te van a ir desfazando en tiempo debido a demoras internas de los filtros.

Los 595 los adopté despues de una charla que tuve con vos y nunca los cambie. Por lo que me decis, intuyo que no debería tener problemas a 5MHz con 25cm de largo en PCB (FR4)...

Si tenés en cuenta un par de reglas de diseño básico, creo que podés obtener sin problemas 10Mhz de los registros seriales en cascada. Sino siempre podés optar por registros paralelos como dice Carlos. Personalmente prefiero los seriales y mi caballito de batalla ha sido siempre el 74HC595.

Saludos!

Ok, me quedo más tranquilo entonces.

Saludos y gracias nuevamente!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: Picuino en 14 de Septiembre de 2014, 16:14:41
Esos micros tienen interrupciones separadas para cada periférico, de manera que no hace falta hacer pooling.
El cambio de contexto también suele ser muy rápido en los micros potentes, porque tienen un juego de registros alternativo que se carga por hardware (eso hay que mirarlo para cada modelo)

En total la atención a la interrupción no llevará más de 70 instrucciones = 1us   cada bloque de datos de 16 bits.

Como el flujo de datos es de 4 bloques de 16bits * 360 posiciones/vuelta * 22 vueltas/segundo = 31680 bloques SPI/segundo

El tiempo entre interrupciones es de 31.5 us, da de sobra para atender el SPI por interrupciones ocupando el 3% del tiempo como mucho.

Con ese tiempo entre interrupciones, es suficiente con mantener la frecuencia del SPI un poco por encima de los 500kHz.

Así se evitan problemas por altas velocidades.


Saludos.
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 14 de Septiembre de 2014, 17:56:48
Si, si, seguro que es posible manejar todo por interrupcion, pero a veces es mucho más claro e intuitivo no usar interrupcion para todo.

Como el FIFO del SPP es de 8 frames se pueden escribir los 64 bits a enviar uno tras otro sin problemas.
Este micro no tiene interrupcion por dato enviado ni por fifo vacío. Tiene interrupcion por FIFO "medio vacío" que podría usarse igual (ya que son 4 frames los que necesitamos cargar).

Si no me equivoco ni siquiera habria que hacer poolling, simplemente se escriben los 4 datos en el DATA register uno tras otro sin más ( se puede hacer verificaciones por las dudas) y estos se irán al FIFO. Al momneto de llegar la interrupcion por el timer (indicando que ha pasado 1° de giro) se activan los latch, se desactivan y salimos.

Evidentemente la cosa es bien simple y parece que no va a hacer falta grandes velocidades... aunque para ponerle la firma a esto espero a las pruebas...

De todos modos, si queda tiempo libre podremos aprovechar para generar pequeñas animaciones (mover un objeto por ejemplo) en memoria... o hasta se podría pensar en cargar las imágenes directamente sin procesarlas y dejar que el micro las procese en runtime...

En fin, si 5MHz no trae complicaciones, seguramente arrancaremos con esa velocidad.

Saludos y muchas gracias por los consejos/cálculos!
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: BrunoF en 14 de Septiembre de 2014, 18:01:26
Acordate que podes aprovechar y usar tramas de 16 bits en lugar de tramas de 8, logrando 128 bits en una sola carga de Fifo vacía
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: elgarbe en 14 de Septiembre de 2014, 18:35:37
Acordate que podes aprovechar y usar tramas de 16 bits en lugar de tramas de 8, logrando 128 bits en una sola carga de Fifo vacía

Claro, la idea es 4 tramas de 16bits (ya que tengo que enviar 64 bits)... si cargo 8 tramas de 16bits se me salen datos por la otra punta   :D
Título: Re: Velocidad máxima real de sn74hc595-ep y 25LC1024
Publicado por: BrunoF en 14 de Septiembre de 2014, 18:37:46
JAja ok. Pensé que tenías más leds!