Tenemos un tablero SBC, al estilo del Leopardboard o Beagleboard, que se está portando mal. Se basa en el diseño Leopardboard (CPU TI-DM368, DDR2 RAM, NAND Flash).
El desarrollo de software en el leopardo funciona bien. Sin embargo, el primer tablero prototipo apareció y se negó a arrancar. La investigación nos lleva al punto en que reducir la velocidad de los relojes (ARM & DDR) significa que la placa se iniciará .
El hardware (ya sea el diseño de la placa, la terminación, el chip DDR, lo que sea) es el sospechoso número 1, ya que podemos ejecutar un software idéntico en el Leopard y funciona bien. Desafortunadamente, la naturaleza de la falla significa que no podemos iniciar Linux para ejecutar pruebas de RAM agotadoras que pueden proporcionar mejores diagnósticos.
Desde el lado del hardware, el reloj DDR es uno de 345MHz, 486MHz, 680MHz dependiendo de la configuración del reloj, más allá del alcance de cualquiera de nuestros alcances o analizadores lógicos.
Entonces, son como dos preguntas en una:
Desde el punto de vista del hardware, aparte de "alquilar un alcance más rápido", ¿existe un método para diagnosticar esto con lo que hay a mano? Tenemos DSO de 200MHz, < rastreador lógico de 100MHz y analizador de espectro de 1.5GHz para jugar.
Desde el punto de vista del software (lo sé, un foro incorrecto) si alguien tiene sugerencias o fragmentos de código sobre el ejercicio de la memoria RAM DDR, se lo agradecería enormemente.
Editado para agregar la respuesta:
Tomamos prestado un Tektronix 7104 y funcionó tan bien que ni siquiera tuvimos que tocar el tablero con él;)
El problema se reveló a sí mismo como una línea de suministro de energía 1v3 hundida que estaba siendo estrangulada por ferritas SMT de tamaño 0402.
Los síntomas eran que, cerca de la frecuencia de operación marginal, la placa arrancaría, pero se bloquearía cuando intentara iniciarse un proceso de transmisión de video con gran ancho de banda y gran cantidad de memoria. Esto, junto con el hecho de que funcionar más lento lo hacía funcionar bien, nos llevó a creer que se trataba de un problema relacionado con la frecuencia cuando, de hecho, la frecuencia de reloj más baja también ponía menos carga en los componentes de la fuente de alimentación.
Las perlas de ferrita 0402 utilizadas para el filtrado tenían una impedancia sorprendentemente alta a medida que aumentaba la corriente, dejando caer una línea de suministro crítica por debajo del punto de operación permitido.
Desafortunadamente, esto significa que no puedo dar la "respuesta ganadora" a Dave Tweed, pero sí significa que nuestra junta ahora funciona. Aún mejor, ¡la culpa del jefe no es mía!
Oh y Tek 7104 son increíbles hazañas de ingeniería electrónica. Si nunca has visto cómo funcionan, es un kung-fu analógico puro.