¿Cuándo debo cambiar un nivel lógico y por cuánto tiempo debo mantenerlo?

1

Comenzaré diciendo que soy un novato total en esto, así que me disculpo si esta es una pregunta tonta. Para el contexto, estoy tratando de golpear el bus de recuento de pines bajos utilizando un FT232H.

Aquí hay un diagrama de tiempo de la especificación LPC:

AquíhayunacapturadelanalizadorlógicodelbusLPC:

Siloestoyleyendocorrectamente,eldiagramadeespecificacionesmuestraLFRAME#yLAD[3:0]establecidosentrelosbordesascendenteydescendentedelrelojanterioryluegosemuestreanenelsiguientebordeascendente.Sinembargo,lacapturadeLAmuestraquelasseñalessolocambianjustoenlosflancosascendentesdelreloj.Supongoque,demanerarealista,elmuestreoseproducepocodespuésdelbordeenlugardehacerlo,¿correcto?

Elprogramadorde vultureprog cambia LCLK , LFRAME# y LAD[3:0] en pasos, por lo que su forma de onda termina arriba así:

(Transcrito desde el código, ya que no tengo una placa para probarlo)

Es similar al diagrama de especificaciones, pero las señales cambian justo antes del borde ascendente del reloj en lugar del anterior.

Con el FT232H en modo MPSSE, puedo producir una forma de onda como la de la captura de LA (es decir, las señales cambian en el borde ascendente y se mantienen hasta el siguiente borde ascendente). Cuando lo ejecuto a través del decodificador de protocolo LPC de Sigrok, no muestra los valores esperados para los campos Start o CT/DIR y el resto del ciclo se desactiva. Sin embargo, mirando el código del decodificador, hay algunos problemas, como que el campo TAR está fuera de orden para los ciclos de escritura. Parece que el autor original no lo probó mucho.

¿Está mal el decodificador de protocolo o estoy malinterpretando cómo funciona la lógica digital y no cambiando mis señales en el momento adecuado?

    
pregunta David Brown

1 respuesta

0

El analizador lógico (como se muestra) muestra / interpreta claramente los datos en el flanco descendente de CLK. Sin embargo, las especificaciones de LPC nunca mencionan el borde del reloj, solo se refieren a "primer reloj", "segundo reloj", etc. Qué tontería. Pero nuevamente, las Figuras 5 y 6 en las especificaciones de LPC sugieren que los cambios del bus de datos en torno al flanco ascendente, y el muestreo (evaluación de datos) va a los flancos descendentes.

Nosepresentaelmomentoenel especificaciones LPC completas , solo una referencia a la especificación PCI 2.3.

Dadas estas incertidumbres, el programador aún parece lógico / formalmente correcto, pero sospecho que el analizador lógico se confunde con el largo retraso entre LAD y pos-edge_CLK. Es posible que deba ajustar las condiciones o tasas de muestreo del analizador lógico.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas