problema KSZ8863MLL - sugerencias para resolver

0

Tengo una CPU NXP K64 conectada a un KSZ8863MLL (conmutador Ethernet de dos puertos) que funciona en modo MII.

Construí 10 tableros - 9 trabajos.

La placa que no funciona correctamente se comporta de la siguiente manera (prueba utilizando JTAG)

Cuando K64 está en reinicio - KSZ8863MLL opera (leds de red y leds de actividad activos).

En la configuración del código EMAC de K64, los pines K64 se asignan en modo MII.

Cuando el pin K64 MMI0_TXD2 está configurado en modo MMI, el pin pasa de una entrada flotante (3.3v en el alcance) a GND cuando el pin se convierte en una salida.

Al final de la ejecución de la instrucción relacionada con ESA pata, todos los LEDS en el KSZ8863MLL se apagan y el dispositivo se vuelve inactivo.

La programación de todos los demás pines relacionados con MMI en el K64 tiene resultados esperados.

He mirado la placa bajo un microscopio de inspección y no he encontrado problemas de rastreo / soldadura.

He rastreado trazas de PCB adyacentes para ver si una capa de PCB interna puede tener trazas en cortocircuito (la PCB es de 4 capas); no se han encontrado cambios en las trazas adyacentes cuando el pin pasa de entrada a salida.

He colocado un punto de interrupción después de la instrucción para asegurarme de que no se estaba ejecutando otro código y para aislar el comportamiento KSZ8863MLL solo para esa única instrucción.

Lo he reducido a ese único pin, pasando de la entrada (pin a 3.3v) a la salida (pin a GND) que hace que el KSZ8863MLL deje de funcionar.

Estoy perdido como si mirara / procediera más lejos. Como se indicó anteriormente, otras 9 placas funcionan perfectamente, lo que sugiere que el problema está relacionado con las piezas / ensamblaje de esta placa específica.

El KSZ8863MLL parece estar bien ya que muestra actividad siempre que el K644 no haya configurado el modo de ese pin en MMI.

Los otros 3 pines TX relacionados (TX0, TX1, TX3) van desde 3.3v a GND cuando su modo se cambia a MMI.

¿Alguna idea o sugerencia?

    
pregunta JHinkle

1 respuesta

2

No estoy seguro de que esto se aplique sin un esquema completo y especificaciones de chip, pero debe tener cuidado con las operaciones de IO de esta manera si el receptor del pin IO detecta el borde.

He tenido problemas en el pasado al cambiar un pin de salida, especialmente cuando se trata de un cambio de entrada a salida o viceversa, donde ocurre una condición de carrera durante el cambio.

Cuando eso sucede, puede generar un pulso muy pequeño (nS) en el pin que no notará en el alcance. Sin embargo, algunos dispositivos receptores PUEDEN verlo como un borde de reloj en la señal. Otros pueden no.

Puede ser un verdadero rascador de cabeza para averiguar.

Puede que no sea su problema, pero es un lugar donde buscar si todo lo demás funciona de manera nominal.

Por cierto: si es lo último, algo como cambiar un par de líneas de código a menudo puede solucionarlo. Si no es así, es posible que deba hacer que la señal sea síncrona en lugar de asíncrona.

    
respondido por el Trevor_G

Lea otras preguntas en las etiquetas