Ingeniería inversa El osciloscopio OWON SDS7102

Es una especie de rito de iniciación para un entusiasta de la electrónica, la adquisición de un primer osciloscopio. En las últimas décadas, esto ha significado generalmente un instrumento relativamente modesto, quizás un ancho de banda de 20MHz y una pista doble si tiene suerte. Los dispositivos específicos superiores eran monstruos caros que le lloraban los ojos, no para la gente común.

Tenemos la suerte de que, como la mayoría de las otras áreas de la tecnología, el mundo de los equipos de prueba se ha beneficiado en los últimos años tanto de los desarrollos en tecnología digital como del crecimiento de la fabricación china. Si su primer "tamaño" es el CRT de 20MHz de intermediación, probablemente lo asegure durante unos centavos, y el primer "tamaño" que compre probablemente tendrá una especificación más cercana a las sobrealimentaciones inalcanzables de años anteriores. Atrás quedó el CRT y el generador basado en tiempo, en lugar de TFT, sistema en chip y convertidor A a D superrápido.

[Christer Weinigel] tiene un osciloscopio digital moderno y básico, OWON SDS7102. Comenta que tiene una especificación impresionante en su precio, aunque la entrada es más ruidosa de lo que cabría esperar en un dispositivo más caro, y el software tiene uno o dos errores molestos. Después de haberlo tenido durante algún tiempo, ahora lo ha sometido a destrucción a largo plazo e ingeniería inversa, y ha publicado sus resultados en una serie de publicaciones de blog.

[Christer]El interés radica principalmente en la sección digital de OWON, parece que ya hay una gran comunidad prestando atención a su interfaz analógica. Dedujo cómo están conectados sus interiores, llevó Linux a su Samsung SoC en alcance, logró alimentar sus periféricos y comenzó a programar el Xilinx FPGA, que es responsable del procesamiento de la señal.

La serie de publicaciones es una lectura fascinante, ya que atraviesa el proceso de ingeniería inversa, pero señala que es mucha información. Si solo está interesado en cómo funciona un osciloscopio moderno y barato, dice, sugiere leer su publicación, en la que resume todos sus diferentes elementos.

También pide ayuda, no tiene dudas sobre el alcance del software, pero admite que está un poco preocupado por algunos aspectos de la FPGA. Si usted es un asistente de FPGA interesado en "entornos, le encantaría saber de usted".

Esta no es la primera vez que presentamos la "ingeniería inversa integral" aquí en La-Tecnologia, aunque puede ser más profunda que otras. En el pasado, hemos visto un protocolo en una pantalla Uni-T descubierto e investigaciones sobre Rigol 1054Z.

  • Gregkennedy dice:

    'alcance se arrastra

  • steve dice:

    Trabajo maravilloso. Es una pena que no se puedan mejorar mucho debido a las limitaciones de procesamiento y hardware. Por lo general, toda la ingeniería inversa solo conduce a algo similar a lo que ya estaba allí.

  • transistor dice:

    ¡Maravilloso gran trabajo! ¡Por favor continua!

  • jrfl dice:

    Dios mío, esto es asombroso.
    ¿Es posible que la interfaz de memoria fpga-> ddr2 vaya al revés? Sí, detiene la CPU, usa el controlador de memoria FPGA para escribir los datos de seguimiento en una ubicación en la RAM, luego reinicia la CPU y lee los datos de la RAM. Vi este enfoque solo con RAM dual (por lo que no necesita detener la CPU mientras escribe) pero parece funcionar ... Sin duda, sería más fácil de implementar que construir un kernel emulador ddr2.

    • Ludwig dice:

      dado que las 2 memorias ddr2 son iguales en términos de su edición, sospecho que en cambio se usan en un diseño de "doble búfer + intercambio", por lo que varias veces:
      ADC -> mem1 mientras mem2-> SoC luego intercambiar
      ADC -> mem2 mientras mem1-> SoC luego intercambiar

  • Dave Rowntree dice:

    La ingeniería inversa de los programas y los aspectos del flujo de bits de FPGA es asombrosa. Buen trabajo. Realmente quiero ver todos los detalles sangrientos de la ruta de la señal analógica, incluidos todos los bits que controlan el ADC, el reloj, etc. Pero tengo una razón particular para eso como parte de la investigación de mi proyecto actual. Los problemas de FPGA no son tan difíciles (para mí) pero lo admito, usar la interfaz DDR2 en el SoC para la interconexión de FPGA es bastante difícil; sospecho que el ancho de banda a través de las interfaces más simples no fue suficiente. No es que los chinos lo hagan de la manera más difícil solo para entretenerlo: D

    • Christer Weinigel dice:

      No estoy muy seguro de por qué eligieron la interfaz DDR2. Como dices, tiene un ancho de banda mayor (133MHz * 16 bits para el bus DDR en lugar de 67MHz * 16 bits para el bus periférico) por otro lado, la FPGA tiene que competir con la memoria DDR por el ancho de banda. La interfaz de memoria DDR también es mucho más compleja: en lugar de leer es un simple "aquí está la dirección, dame los datos", la CPU ahora tiene que precargar para abrir una fila de memoria, leer de la fila y cerrar la fila; todo esto cuesta latencia.

      Me imagino a algunos miembros de Owon dejando que el controlador de pantalla del SoC visualice los gráficos de la memoria DDR virtual en la FPGA. Eso probablemente no funcionaría si la FPGA está conectada al bus de periféricos. Muestre datos directamente desde la FPGA que podrían permitir algunos efectos realmente agradables de "fósforo virtual" que de otro modo no serían posibles. Por otro lado, el bus de periféricos podría usarse para hacer DMA directamente desde la FPGA al SoC de memoria principal y eso debería ser suficiente para permitir que la FPGA actualice la pantalla a 60Hz.

      Podría ser que los ingenieros de Owon ya hayan creado memoria DDR2 virtual antes y ese es un caso de "si solo tienes un martillo, todo parece un clavo". Quién sabe. 🙂

      • asdf dice:

        Supongo que usan la función de capa del controlador LCD para combinar el mapa de bits de una interfaz de usuario con un mapa de bits de forma de onda generado por la CPU.

  • jawnhenry dice:

    De la primera publicación del blog de Weinigel:

    “... Hay un gran hilo discutiendo el SDS7102 en foros de EEVblog y otras personas [sic] ya ha realizado una ingeniería inversa del mismo. Se centraron principalmente en las partes analógicas y yo estoy más interesado en las partes digitales y el firmware ... "

    No es "uno de los ...", pero LA parte más importante de un osciloscopio es la interfaz analógica.
    La parte más difícil de la resolución de problemas es identificar el problema correcto.

    • Christer Weinigel dice:

      Hacer un front-end analógico de 100 MHz es casi un problema resuelto en la actualidad. Gana dinero y usa un amplificador de chip con suficiente banda ancha, o optimiza el costo y hazlo con un componente discreto como el Rigol 1054Z. Lo que realmente diferencia a la mayoría de los rangos de 100MHz / 1Gsample / s en la actualidad es el procesamiento de señales y el software.

      Y mi objetivo es ver qué puede hacer el hardware SDS7102 existente. Para mí el AFE no es tan interesante, tendré que conformarme con todo lo que ya está en alcance, no me importa si usan un filtro Chebyshev o un filtro Butterworth, me importa si cambio un pin de E / S. en el SoC cambia la atenuación y cuánto. Sí, la ingeniería inversa de los circuitos analógicos de AFE es una forma de averiguar qué hace un pin de E / S, otra forma es tratar el AFE como una caja negra y simplemente encender el pin de E / S y ver cómo afecta la señal. . visto en el ADC.

    • BeagleBoy dice:

      Y el problema que quería abordar era el firmware del carro. No está tratando de resolver problemas análogos.

      • BeagleBoy dice:

        Y su respuesta llegó después de que publiqué la mía, a pesar de que publicó muchas cosas frente a mí. Está bien.

      • Christer Weinigel dice:

        Y solo por diversión. Puedo vivir con el firmware con errores, el visor sigue siendo útil, pero bueno, soy un nerd.

  • pacraf dice:

    Cristiano,

    Revisé tu blog. Sin siquiera entender a la mayoría, fue un placer ver cómo los piratas informáticos talentosos usan sus habilidades.
    realmente impresionante y buena suerte con más trabajo.

    Saludos cordiales desde .PL

  • pacraf dice:

    ups, tu nombre es Christer .. lo siento por eso ... 🙂

    • Christer Weinigel dice:

      Gracias. Me acostumbre. Mi mejor amigo necesitaba algo de tiempo para aprender a decir Christer en lugar de Christian. 🙂

  • Un dron dice:

    Según sus hallazgos, parece que el desgaste imprudente del flash NAND equivale a una "obsolescencia planificada", si no a una absoluta incompetencia. Gracias Christopher por tu investigación. OWON está ahora en la parte inferior de la escalera para mí cuando considero el equipo de prueba.

    • Christer Weinigel dice:

      He visto algunas publicaciones de personas que ya no pueden iniciar sus extensiones SDS7102, pero la mayoría de ellas parecen estar causando una actualización de firmware fallida. No creo que haya visto a nadie que haya tenido posibilidades de fracasar simplemente por no hacer nada. Probablemente hay muchos otros productos basados ​​en Samsung SoC que tienen lanzadores de mala calidad y no usan corrección de errores.

      Personalmente, no me sentiría cómodo con tener un producto en el campo que no use la corrección de errores para el flash NAND, pero podría ser demasiado paranoico. 🙂

  • Christer Weinigel dice:

    Logré capturar muestras del ADC ahora:

    http://blog.weinigel.se/2016/07/08/sds7102-capture.html

    Todavía no tengo idea de por dónde empezar en el bus SoC-> FPGA o la memoria FPGA-DDR.

  • Christer Weinigel dice:

    Y un poquito mas. Reinicié la captura de ADC para mirar el bus SoC.

    http://blog.weinigel.se/2016/07/10/sds7102-soc-bus.html

  • Christer Weinigel dice:

    Una publicación final. O no.

    De todos modos, con esto, básicamente he documentado cómo encaja todo en la escala.

    http://blog.weinigel.se/2016/07/15/sds7102-afe.html

  • Christer Weinigel dice:

    Si aún no estás aburrido de mí.

    Puse el código fuente de mi puerto Linux y la imagen FPGA en github.

    http://blog.weinigel.se/2016/07/16/sds7102-source.html

  • Christer Weinigel dice:

    No estoy seguro de si alguien todavía está leyendo los comentarios aquí, pero ...

    Estoy de vacaciones y el clima no es demasiado agradable, así que pasé mucho tiempo pirateando mi imagen FPGA. Ahora he logrado convertir la memoria DDR2 copiada en la lectura / escritura del bus SoC y puedo capturar datos del ADC directamente en la memoria DDR2 vinculada al osciloscopio.

    http://blog.weinigel.se/2016/08/15/sds7102-ddr-capture.html

Pedro Molina
Pedro Molina

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *