Olfateando datos de C8051F007

Por diversión, me he encargado de intentar aplicar ingeniería inversa a un dispositivo de presión arterial de consumo. El dispositivo utiliza un MCU C8051F007 de 32 pines. Estoy tratando de averiguar cómo puedo espiar la comunicación entre la MCU y los diversos sensores para poder obtener lecturas de la presión arterial. De los documentos que he leído, el chip admite la depuración JTAG del sistema. Todavía no sé lo suficiente como para utilizar este conocimiento.

Lo que estoy tratando de hacer es identificar los pines UART o cualquier tipo de pines de comunicación en serie. Tengo un osciloscopio y espero poder identificar algunos valores en la comunicación. Necesito algunos consejos sobre cómo obtener datos de este chip

Aquí está el pinout (observe que no hay TX o RX)

ingrese la descripción de la imagen aquí

Cualquier información o consejo será bienvenido.

No parece haber encontrado una hoja de datos decente. Aquí hay uno: keil.com/dd/docs/datashts/silabs/c8051f0xx.pdf
De hecho, encontré eso y he estado tratando de averiguar qué información puedo usar y qué no. ¿Algún consejo?
¿No sabes cómo leer las hojas de datos? Eso podría ser un impedimento para la ingeniería inversa de algo.

Respuestas (2)

La figura 1.1 de la página 9 muestra que hay un interruptor de barra cruzada interno entre los 24 pines de los puertos 0, 1 y 2 y la mayoría de los periféricos. es decir, cualquiera de las funciones que se muestran puede asignarse en tiempo de compilación a cualquiera de esos pines. La hoja de datos puede limitar esa flexibilidad en otros lugares, pero de la figura 1.1 parece que no.

Si los periféricos se pueden mapear de forma completamente flexible, la única opción es olfatear los pines de alguna manera si no puede encontrar información de implementación.

Si puede decirnos la marca y el modelo, uno de nosotros puede tener algo de suerte para obtener información.

Debería ser "bastante fácil" TM determinar qué pines son entradas de lo que sea que se use como sensor de presión.

SI el UART está transmitiendo continuamente durante la operación (y puede que no sea así), entonces configurar su alcance a aproximadamente una división por bit de tiempo para varias velocidades de comunicación estándar puede darle una pantalla de pulsos sincronizados correctamente cuando mira el pin UART TX al transmitir. Por ejemplo, si la velocidad de TX es de 9600 baudios, configurar el osciloscopio para decir 100 o 200 uS/división ~+ 1 a 2 bits por división puede mostrar bits a aproximadamente 1 o 2 por división cuando se observa el pin UART TX. Es probable que esto no se sincronice sin tocar el violín, pero debería informarle cuándo / si encuentra una línea UART TX operativa.

en realidad, la figura en la página 11 se alinea más estrechamente con el pinout gráfico que se muestra en la pregunta del OP... lo que significa que en realidad solo hay 8 pines de E/S digitales a los que se puede asignar el tráfico UART.

Bueno, los pines TMS, TCK, TDI, TDO son la interfaz JTAG, por lo que vale... también parece que tiene 4 entradas analógicas, dos salidas DAC y un puerto de E/S digital de 8 bits...

Los "varios sensores" probablemente estén en los pines AIN0 ... AIN3 y querrás mirarlos usando un osciloscopio. Querrá tomar medidas con respecto a AGND. También podría haber sensores con una interfaz digital (por ejemplo, I2C o SPI) y esos podrían ser "bit-banged" en cualquiera de los pines P0.1 ... P0.7.

Eso debería ayudarte a empezar.

¿Tienes algún enlace a artículos que puedan ayudarme?
Supongo que no tiene acceso a un osciloscopio y desea poder conectarlo al procesador y leer sus registros de conversión de analógico a digital para obtener los valores que lee ... necesitará un depurador JTAG para ese procesador para lo que probablemente sea bastante caro
¡Tengo un osciloscopio!