Autor Tema: Usar cristal para clk de un registro de desplazamiento  (Leído 3346 veces)

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

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Usar cristal para clk de un registro de desplazamiento
« en: 04 de Diciembre de 2008, 09:28:48 »
Alguien sabe cómo si se podria usar un cristal/oscilador como generador de clock de un registro de desplazamiento y cómo?

1 saludo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #1 en: 04 de Diciembre de 2008, 10:30:27 »
No lo he probado, pero esto debería funcionar:


jacrmr

  • Visitante
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #2 en: 04 de Diciembre de 2008, 15:32:53 »
Creo que no tiene caso que desperdicies espacio y características de rise/fall haciendo un oscilador tú mismo con componentes externos. Puedes utilizar un oscilador ya prefabricado y ajustado a las características ideales, compensado, y en empaquetado DIP8, DIP4, SOIC, etc. Además la mayoría de estos osciladores traen una entrada enable para cualquier caso que la quieras utilizar. O sólo que estés usando un PLD y quieras usar algunas compuertas de ahí. Si aún decides hacerlo por tí mismo recuerda usar capacitores NP0, resistencias del 1% y bajo coeficiente de temperatura, o de lo contrario de nada servirá usar la precisión del cristal. Por supuesto elije un cristal de frecuencia fundamental y que sea adecuado para la topología del circuito oscilador que pienses construir (serie o paralelo).
« Última modificación: 04 de Diciembre de 2008, 15:37:57 por jacrmr »

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #3 en: 04 de Diciembre de 2008, 15:49:29 »
Disculpa q pregunte, pero tengo la duda... para que queres hacer eso? Queres un registro q se cargue de forma asincronica?
Por cierto, Nocturno, esa imagen la sacaste de huarpe.com? esa pagina es de nuestra catedra de electronica analogica jaja :P
saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #4 en: 04 de Diciembre de 2008, 16:16:21 »
Me explico mejor para que me entendais...

Necesito sniffear una señal usb entre el pc y un dispositivo usb tanto en velocidad low speed 1.5mbit/s como en full speed 12mbit/s. No me sirven los módulos usb (serial interface engine) que traen algunos pics porque no se puede acceder a los registros internos que necesitaría para este caso. Éstos módulos SIE, como el de otras compañias solo capturan datos del la dirección de dispositivo que tienen asignados.

Ok para capturar todo ese caudal de señales habia pensado en varias opciones:

1. Que lo hiciera al vuelo el propio pic. Pero esta opción ya me gastaría 12mips de proceso, si consiguiera capturar y desplazar el bit a izquierda o derecha en el registro en un solo ciclo de instrucción. Si necesitara mas ciclos de instrucción para hacer esto los mips se dispararían.

2. Utilizar memorias fifo... recoger los bits de 1 en 1 y leerlos desde el pic en bytes completos, pero todas las que he encontrado tienen un tamaño de palabra de 8 o mas bits por lo que a la hora de rescatar esos bits tendría que hacerlo de 1 en 1. Tambien necesitarían de una señal de reloj externa si no estoy equivocado.Ademas sus precios son caros. ¿Alguna sugerencia?

3. Utilizar un registro de desplazamiento de entrada serie y salida en paralelo que me transformara esa señal que viene en serie en un byte para leerlo en el pic lo que me reduciría las lecturas a 12mbit/ 8. Pero claro necesito un generador de reloj que me haga las capturas de los bits. Se plantean aqui varias opciones:
 

Tengo por aqui un oscilador programable por I2C 6903CMS8 datasheet-->  http://pdf1.alldatasheet.com/datasheet-pdf/view/117424/LINER/LTC6903CMS8.html que me permite elegir desde 1khz hasta 68MHZ pero me da una precisión general total de 1,1% lo que si mis calculos no me fallan harían 11000ppm. En este caso parece que no me serviría a la luz de este comentario hecho en un libro sobre especificaciones USB:

Full speed’s bit rate of 12 Megabits/sec. can vary no more than 0.25 percent, or 2500 ppm.


Llevo varios dias dandole vueltas a esto y la verdad es que no encuentro demasiado remedio. Soy consciente de que igual con una PLD PAL GAL o variantes ser podría construir algo como lo que sugieron sin demasiados problemas... pero mis conocimientos sobre estos bichos es nula.

Espero haberme explicado bien.Sugerencias?¿?¿

1 saludo
« Última modificación: 04 de Diciembre de 2008, 16:19:46 por elmasvital »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #5 en: 04 de Diciembre de 2008, 16:52:10 »
Incluso en el caso de que consigas una señal de 12MHz perfecta, ¿cómo la sincronizarás con el bus?

jacrmr

  • Visitante
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #6 en: 04 de Diciembre de 2008, 16:54:46 »
Desafortunadamente para hacer un sniffer de USB no puedes solamente samplear a determinada frecuencia el estado de las señales como si fuera una transmisión serie normal, sino que también debes prestar atención a los flancos de las mismas lo cual tiene diferente significado en la comunicación USB. Un sniffer USB es un proyecto de envergadura y dificultad alta, es por eso que hasta la fecha creo que no hay ningún sniffer diy. ¿valdría la pena dedicarle tiempo y dinero, tomando en cuenta que un sniffer básico puede costar unos USD$1,000.00?

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #7 en: 04 de Diciembre de 2008, 17:15:37 »
Desafortunadamente para hacer un sniffer de USB no puedes solamente samplear a determinada frecuencia el estado de las señales como si fuera una transmisión serie normal, sino que también debes prestar atención a los flancos de las mismas lo cual tiene diferente significado en la comunicación USB. Un sniffer USB es un proyecto de envergadura y dificultad alta, es por eso que hasta la fecha creo que no hay ningún sniffer diy. ¿valdría la pena dedicarle tiempo y dinero, tomando en cuenta que un sniffer básico puede costar unos USD$1,000.00?

No estoy de acuerdo en esto que dices. Si pasas la comunicación USB por un tranceptor usb tienes una comunicación serie normal y corriente (a parte del protocolo USB por supuesto), exceptuando las señales especiales de usb SEO o Velocidad. Despues al tratarse de una señal de componente continua no es necesario samplearla a mayor velocidad que la del propio interfaz.

De todas formas no pienses que estoy realizando un sniffer usb estoy haciendo la labor que hace un SIE que es como se designa al seria interface engine que llevan los dispositivos usb para realizar la capa electrica del bus usb y encamina la información dirigida al dispositivo hacia los endpoints.

Incluso en el caso de que consigas una señal de 12MHz perfecta, ¿cómo la sincronizarás con el bus?
Esperando un SOF o start of frame que seria un envio de un 0101 (hablo de memoria). Usa el sistema de NRZI y 0101 por tanto es un flanco de subida o bajada(segun la velocida del usb es diferente). Ahí tienes la señal de sincronización, con una interrupción de flanco. Por supuesto tanto la señal SOF y la señal SEO (Señal de reset o de EOF end of frame) las detectaría el pic que activaria o desactivaria el sistema de captura. Mientras el bus está en idle no hay problemas en que el pic esté constantemente capturando del bus directamente. Pero todo esto es harina de otro costal... necesito ayuda con lo que menciono... cómo capturar 12mbit/s. Podria utilizar otro pic solo para esto pero seria un gran desperdicio.



1 saludo

« Última modificación: 04 de Diciembre de 2008, 17:29:28 por elmasvital »

jacrmr

  • Visitante
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #8 en: 04 de Diciembre de 2008, 17:31:08 »
Citar
Despues al tratarse de una señal de componente continua no es necesario samplearla a mayor velocidad que la del propio interfaz.

De todas formas no pienses que estoy realizando un sniffer usb


Pensé que querías hacer el frontend físico directo al bus. De todas formas no creo que te escapes de alguna lógica programable. Sería lo más ideal y te ahorrarías trabajo.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Usar cristal para clk de un registro de desplazamiento
« Respuesta #9 en: 05 de Diciembre de 2008, 16:08:20 »
Finalmente me parece que voy a utilizar un pic de la familia 32 que alcanza los 80mips y no pasa de los 6€ la unidad