Preparando un nuevo diseño, agradecería algunos comentarios

Diseñé una placa compatible con Arduino Shield alrededor del NXP LPC4337JBD144. hasta ahora no he podido obtener la primera revisión del programa.

En el primer diseño, el encabezado JTAG no se configuró correctamente, no había condensadores de derivación, el USB no tenía todos los pullups/pulldowns que necesitaba, los pines DBGEN y TRST no se dividieron en puentes, y la sección Ethernet no siguió especificación tan estricta como debería ser. Pude agregar todos los pullups al JTAG y subir el DBGEN y el TRST bajo modificando la PCB con cables de puente y resistencias externas. Todavía no puedo programarlo con mi JTAG.

Debo señalar que la PCB rev one solo se llena con lo que es necesario para programar y ejecutar el chip, sin hardware adicional pasivo o activo. He probado que recibo las señales correctas del JTAG y que van a los pines correctos. Revisé el cristal también, pero no recibo una señal porque el cristal no se inicializará hasta que el chip esté programado porque lo primero que se ejecuta en una rutina de configuración del sistema que configura todos los PLL y los ajustes del oscilador externo. Todo en el PCB de la primera revisión se ha revisado a fondo con un osciloscopio, señales JTAG, cristales y sección de potencia.

Dicho esto, he estado luchando con esta primera revisión durante varias semanas, probé todo lo que me recomendó el soporte de NXP, revisé los esquemas de varias placas de evaluación de NXP, Keil e Hitex modificando mi PCB en el camino para traerlo hasta la especificación estándar de ARM en vano.

En este punto, estoy convencido de que el diseño tiene muchas fallas y se sale de las especificaciones estándar para un ARM Cortex M4, que no se puede reparar con una modificación externa en la placa de circuito impreso y que se debe probar una segunda revisión del diseño. . Este es un diseño muy sensible al tiempo, esperaba que al menos el primero funcionara y luego que la segunda revisión fuera un proceso de ajuste fino. Dicho esto, necesito llevar un nuevo diseño a la casa fabulosa para mantener contentos a mis profesores. Estoy buscando comentarios constructivos sobre mi nuevo diseño. Pasé aproximadamente dos semanas revisando este diseño por mi cuenta y con la ayuda de otros en un intento de encontrar cualquier cosa que pudiera ser un problema potencial grave en el futuro. He estado revisando dos veces los esquemas de referencia y la hoja de datos y personalmente no he

EDITAR: Mi tablero tiene 4 capas, las dos capas externas son para señales y las dos capas internas son un plano de tierra y un plano de potencia. En este momento, tengo el espacio negativo en las dos señales exteriores rellenado con un polígono de relleno de tierra, ¿eso podría causar algunos problemas con la placa, como bucles de tierra?

A continuación, he adjuntado el PDF inteligente para mi proyecto Altium que incluye el diseño esquemático y de PCB. https://www.dropbox.com/s/qb9ptr67v6msmh0/Abstract%20Hardware%20Device.pdf

PCBdoc de Altium: https://www.dropbox.com/s/s7s0aw3yuh4va3g/Abstract%20Hardware%20Device%20PCB.PcbDoc

EDIT2: compartir enlace actualizado a Dropbox uno. Altium PCBdoc compartido.

¿Y cuál es exactamente tu pregunta? Lea las preguntas frecuentes sobre cómo hacer buenas preguntas.
Solo quiero que la gente mire mi diseño y señale cualquier cosa que pueda ser un problema potencial. He estado observando este diseño durante dos semanas revisando la hoja de datos y los esquemas de los diseños de referencia para asegurarme de que todo sea perfecto para esta revisión. Simplemente no quiero tener otra placa que no funcione.
El enlace lleva a una página con algunos molestos lloriqueos sobre la versión del navegador. No hay necesidad de funciones sofisticadas que dependen del navegador cuando solo intenta mostrarnos un esquema.
Dijiste que las tapas de derivación se quedaron fuera del tablero, pero no las mencionas como una de las cosas que reelaboraste. Intentar depurar cualquier cosa sin los límites de derivación adecuados no tiene sentido.
El enlace se abrió bien en Firefox 19. Hay un paquete de diseño considerable en ese enlace.
@Nick: ¡Puaj! Solo quiero ver el esquema. Un "paquete de diseño" parece demasiado detallado, lo que significa que el OP no dedicó tiempo a pensar en la información, simplemente lo descargó todo aquí. No es culpa nuestra ni problema nuestro que este proyecto venza mañana. El cuidado y la atención al detalle ahorran tiempo, razón por la cual este proyecto se encuentra en la situación en la que se encuentra.
Es un PDF con el esquema. Olvidé mencionarlo, pero agregué las tapas de derivación al nuevo diseño. Sin embargo, ¿intentar depurar mi primera revisión sin tapas de omisión no tiene sentido? ¿Hay alguna manera de adjuntar un PDF a la publicación aquí?
Si la primera versión no tiene tapas de desacoplamiento, será terriblemente inestable (coloque un visor en el pin de alimentación del dispositivo para ver)

Respuestas (4)

Cuando reviso esquemas/PCB durante mi trabajo diario, para un diseño como este, pasaría de 8 a 16 horas revisándolo. Claramente no puedo hacer eso aquí. Además, no puedo darte una lección de EE por cada cosa que esté mal en el diseño. Y para empeorar las cosas, EE.SE no es realmente adecuado para un diálogo de ida y vuelta que normalmente se requiere para una revisión como esta. Esto es lo que haremos. Haré una revisión rápida del diseño y pondré los problemas que detecte en esta respuesta. Lea eso, estudie un poco por su cuenta y, si aún no comprende, debe publicar una nueva pregunta (no un comentario sobre esta respuesta). Aquí va:

  1. Necesita un poco de filtrado EMI en los +3.3v al grifo central de los transformadores Ethernet. Algún tipo de perla de ferrita + tapa(s).

  2. Necesita diodos de protección ESD en las señales Ethernet a U4.

  3. El límite de desacoplamiento de 10 pF en X2 es asombrosamente pequeño. Utilice 0,1 uF.

  4. Las resistencias de terminación de Ethernet, R42-45, deben tener al menos 0805 para manejar la potencia requerida. No puedo decir qué tamaño estás usando.

  5. Algo no se ve bien con la señal CLK de TX de Ethernet. No creo que debas tenerlo conectado a tres chips (Oscilador, Phy y MAC). Vuelva a verificar eso en los diseños de referencia de Phy/Mac.

  6. Coloque un límite de 0,1 uF en el lado de "entrada" de sus perlas de ferrita.

  7. La nota "el oscilador de cristal debe estar a 12 mm de distancia del físico" es una GRAN bandera roja para mí. Me hace pensar que algo no está bien, pero no sé qué. Si esta fuera una revisión de diseño normal, te interrogaría sobre esto.

  8. Debe filtrar o almacenar en búfer las señales de reinicio que pasan por los conectores (como SHIELD_RESET). Esta es una gran forma de que un evento de ESD, incluso a más de 6 pies de distancia, haga que la PCB se reinicie.

  9. Debe tener una tapa de desacoplamiento de 0,1 uF en cada conector para reducir la ruta de retorno de la señal de CA para las señales en el conector.

  10. No parece que tenga suficientes límites de entrada en la entrada de alimentación de CC. Sin embargo, podría estar equivocado, ya que no puedo leer tus esquemas tan bien (aplicación web estúpida).

  11. Es posible que necesite más límites en la salida de sus reguladores de voltaje. Sin embargo, no revisé porque no tengo tiempo para leer las hojas de datos.

  12. Es difícil juzgar realmente el diseño de PCB sin mirar el diseño en el software CAD (Altium). Pero veo suficientes problemas como para que todo el diseño deba examinarse antes de enviarlo.

  13. Las vías deben separarse para que no causen ranuras en los planos de alimentación/tierra.

  14. Los planos gnd adicionales en las capas superior e inferior no agregan mucho al diseño. Vale la pena simplemente eliminarlos.

  15. ¿Tiene una terminación de señal adecuada en las señales MII entre MAC y Phy?

  16. ¿Ha verificado que la acumulación de capas de PCB es correcta para la impedancia de traza que desea y la terminación de señal que tiene?

  17. Tiene señales que cruzan vacíos en planos de alimentación/tierra adyacentes. Este es un ENORME no-no.

  18. Su plano de señal GND y sus planos de chasis-gnd se superponen. Nunca, nunca hagas esto. (Descargo de responsabilidad: podría estar mirando mal las tramas).

Ahí vas. ¡Buena suerte!

Gracias por su respuesta muy detallada y grande. Esto es exactamente lo que estoy buscando, este es el tipo correcto de retroalimentación que necesito para aprender y mejorar. Dicho esto, tenía algunas preguntas sobre los puntos que mencionó y he preparado la respuesta formal, pero es demasiado larga para publicarla. Así que enlacé aquí en pastebin pastebin.com/hvquD42S
@AdamVadala-Roth Como dije antes, debe investigar un poco sobre cada uno de estos elementos y luego, si tiene preguntas, publique preguntas separadas en este sitio para cubrirlas.
+1 para una respuesta realmente detallada, a diferencia de algunos comentarios que se quejan de los enlaces proporcionados por el OP.
Voto a favor, pero el #4 no es seguido por todos. Consulte el kit de inicio pic32 para ver la desviación.

Abrí el archivo de tu tablero. Muchos problemas:

  1. Tienes salas por todos lados, y todas están habilitadas, y no las estás usando. Esto hace que todo aparezca como un error de DRC. Si no los estás usando, apágalos .
  2. Una vez que apaga las habitaciones, todavía tiene MUCHAS violaciones de DRC. Necesita construir un conjunto sano de reglas de diseño. Por lo general, busca las capacidades de la casa de juntas de su elección y crea un conjunto de reglas en torno a ellas. Errar por el lado del ancho/espaciado mínimo de trazo conservador, si es posible. El hecho de que $Expensive$ board house Apueda hacer un espaciado de trazo de 5/5 significa que es una buena idea. 8/8 (ancho de trazo mínimo de 8 milésimas de pulgada, espaciado entre trazos mínimo de 8 milésimas de pulgada) es un buen punto de partida. Si tiene piezas de muy alta densidad, es posible que deba ir a 6/6
  3. Parece que ha dibujado algunas de sus propias huellas de componentes. Es bueno que estés aprendiendo, pero realmente necesitas considerar agregar cuerpos 3D adecuados a tus partes. En este momento, tiene colisiones componente-componente, porque el motor RDC está utilizando rectángulos delimitadores simples para los errores de intersección de componentes.
  4. Su error de exclusión en el conector USB se cruza con las almohadillas en el mismo conector, lo que genera errores.
  5. No veo ninguna tapa de derivación para el micro en la PCB.

Más cosas si quieres que siga buscando

Nota. Mirando a través del PDF esquemático, parece que el archivo de placa que proporcionó es dramáticamente diferente a las superposiciones de esquema/placa en el PDF.


En el esquema:

  1. DEJE DE UTILIZAR ETIQUETAS DE RED: ingrese la descripción de la imagen aquí
    ingrese la descripción de la imagen aquíComo regla general, las etiquetas de red hacen que los esquemas sean más difíciles de leer y mantener. Hay algunas situaciones especializadas en las que son beneficiosas, y si no sabe cuáles son esas situaciones, no tiene una. Este no es uno de ellos.
  2. Puertos de alimentación y etiquetas de tierra orientados aleatoriamente: los puertos de tierra siempreingrese la descripción de la imagen aquí
    ingrese la descripción de la imagen aquí
    ingrese la descripción de la imagen aquí
    deben apuntar hacia abajo. Los puertos de alimentación siempre deben tener el texto en la parte superior (excepto los rieles negativos, pero aquí no hay ninguno). Hay raras ocasiones en las que se justifica romper estas reglas. Si orientar sus conexiones de alimentación correctamente significa que tiene que volver a trabajar en su esquema, hágalo . Casi invariablemente dará como resultado un esquema mejor y más legible.

  3. Texto sobre cables y partes: ingrese la descripción de la imagen aquí
    debería explicarse por sí mismo. Simplemente no lo hagas.

Mierda que me molesta, menos importante: ingrese la descripción de la imagen aquí
tienes tu cuadrícula esquemática apagada aquí. Mire las conexiones a los pines 1 y 4.
Desactivar la cuadrícula hace que sea muy fácil hacer esquemas que parezcan correctos, pero que en realidad no están conectados. También genera dibujos descuidados y difíciles de leer. Como regla general, en altium, todo debe estar en una cuadrícula de 10 unidades. Si esto significa que tiene que parchear sus bibliotecas de esquemas, hágalo . Lo agradecerás más tarde.

Además, tiene un puerto de alimentación que no está del todo al final de un cable. Mire el punto en el puerto de tierra. Esto no es gran cosa, pero es el tipo de basura que me molestaría.

¡Gracias por su larga y completa respuesta! Estoy trabajando en limpiar el esquema en este momento, dejé que se volviera bastante desorganizado y descuidado a medida que avanzaba en las revisiones. Modifiqué mucho el diseño a medida que avanzaba, de ahí el mal estado del esquema. En cuanto a las tapas de derivación que están ahí, son las tapas de 100nF que se conectaron a tierra en todas las entradas de 3.3v en el LPC4337, si me equivoco y ese no es el protocolo correcto para los condensadores de derivación, me gustaría saber por qué estoy equivocado. ¡Gracias de nuevo! Informaré aquí después de haber hecho revisiones importantes.
¿En qué situaciones recomienda utilizar las etiquetas de red?
@NickHalden - Honestamente, ese es un punto de discusión. Personalmente, honestamente diría "nunca". No los uso yo mismo, y he hecho algunos dibujos de múltiples MCU bastante complicados. No creo que nadie diga "todo el tiempo", pero después de eso realmente se convierte en un tema religioso.
Creo que la mejor respuesta es "Solo cuando hacen que un esquema sea más legible". Cuando lo hacen es más una cuestión de opinión, aunque nunca es "a menudo".

Esta es la hoja de datos para esa parte.

0) ¿Todas sus fuentes de alimentación y tapas de desacoplamiento son correctas?

1) ARM JTAG se realiza convencionalmente con un conector de 20 pines: http://www.jtagtest.com/pinouts/arm20 ; tienes uno de 10 pines y creo que puedes estar confundido entre JTAG y SWD.

2) Soy escéptico de todos esos pullups y pulldowns, y que TRST no está conectado al programador. También hay una resistencia misteriosa de 10k en serie con él.

3) ¿Tienes la frecuencia de reloj JTAG correcta? ¿Necesita el TCLK de retorno para el programador (esto puede ayudar con problemas de tiempo)?

4) ¿Sabes que tu programador funciona y está configurado correctamente? Por ejemplo, ¿tiene una placa de evaluación para este dispositivo con la que lo haya probado?

1. Esta es la página a la que me refiero, también el diseño que vinculé en mi artículo de pastebin anterior en la publicación de David Kessner. www2.keil.com/coresight/coresight-connectors 2. Puede usar el reinicio o el TRST para el cabezal Cortex-M JTAG, ambos funcionan en la mayoría de los diseños que usan el conector de 10 pines utilizan el resto y la mayoría de los 20 pines usan el TRST . 4. Funciona bien, lo uso con mi placa de evaluación LPC4330-Xplorer.
element14.com/community/solutions/7058/l/… ¿este? Eso no tiene pullups en el JTAG. Revisé mi propio diseño con ARM JTAG (aunque una parte diferente) y tenía pullups de 220k ohm. Creo que son demasiado pequeños o no son necesarios.
El soporte técnico de NXP me indicó explícitamente que agregara esas resistencias pullup. Dijeron que podría ser una de las razones por las que la primera revisión no está programada. Lo que puedo hacer es dejarlos en el diseño y elegir si rellenarlos o probar diferentes valores. ¡Gracias por su tiempo y comentarios útiles!

Si estoy leyendo esta hoja de datos para el LED RGB correctamente, es una pieza de ánodo común. Sin embargo, el esquema parece mostrar el pin común conectado a GND, que solo funciona con LED de cátodo común.

Si conecta ese ánodo a 3,3 V, la hoja de datos implica que incluso si tira del cátodo del chip verde o azul hasta GND, es posible que no sea visible; el voltaje directo podría ser tan alto como 4 V.

¿Quizás ese ánodo (común) del LED RGB debería estar conectado a VCC_5v?

Normalmente veo algún búfer, como un SOT23 DMN65D8L nFET, entre un procesador y un LED de alto brillo. Estoy un poco sorprendido de que las características I_OH e I_OL e I_OHS e I_OLS en la sección "Características estáticas" de la hoja de datos del LPC4330FBD144 sugieran que tal vez pueda controlar LED de 20 mA directamente.

¡Gracias por sus comentarios útiles! En cierto modo salté el arma en el LED tricolor. Estaba teniendo problemas para encontrar un LED RGB rentable, así que elegí el más barato que pude encontrar y lo usé. Buscaré un modelo de cátodo común de menor potencia. ¡Gracias de nuevo!
ACTUALIZACIÓN: Eché otro vistazo a la hoja de datos y calculé que las resistencias eran 1k para hacer funcionar el LED a 5 mA. Hice esto porque el LPC4337 tiene un disipador de corriente de 6mA para GPIO, el ánodo común ahora está conectado a 3.3v. Mi amigo que usa muchos NXP dice que esto debería estar bien, pero estoy abierto a más sugerencias. ¡Gracias de nuevo!