Ingeniería inversa para emular los cartuchos de tinta para una impresora Epson (7 / 8 paso)

Paso 7: Rutinas de emulación de código

Ahora la diversión parte!

Necesito la impresora para que pienses que hay cuatro cartuchos de tinta instalados, para ello que debemos implementar algunas funciones de emulación primero. Otra vez de conocimientos he predefinidos en la cabecera:

• #define epsnCartReady() (_ecRST)
externo • unsigned char espnCartGetAddr(void);
• extern void epsnCartOut (datos unsigned char);
externo • unsigned char epsnCartIn (datos unsigned char);

epsnCartReady es una macro que utiliza Compruebe si la impresora tiene primer alto.
epsnCartGetAddr devuelve la dirección que está solicitando a la cabeza de impresión.
epsnCartOut se utiliza para enviar datos a la controladora de Host
epsnCartIn se utiliza para recibir datos desde el Host cuando está escribiendo

Así que esta vez, en lugar de controlar el SCK a alta o baja, tenemos que esperar a ir alto o bajo, pero si baja el reset, luego parar todo y volver:

unsigned char espnCartGetAddr(void) {}
char i = 0;
char temp = 0 x 00;

mientras que ((i<4) & & _ecRST) {/ / bucle mientras < 4 y RST es alta
Temp >> = 1; Derecho de cambio de temperatura por una
while((!_ecSCK) & & (_ecRST)); Espere a que el reloj ir alta
if(_ecSDA) {/ / si SDA es alta
Temp | = 0x08; continuación, establezca el bit 4
}
while((_ecSCK) & & (_ecRST)) ;// esperando el reloj ir bajo
i ++; incrementar el contador
}

if(_ecRST == 0) {}
volver a 0xFF; //if primero fue baja, mataron a medios del Host la señal
}
devolver a temp; la dirección y el bit de lectura/escritura
}

Y la función:

{} void epsnCartOut (datos char sin signo)
char i = 0;
char temp = datos;

_ecSDATRIS = 0; conjunto la SDA a la salida
_ecSDALat = 0; sistema SDA baja

mientras que ((i<8) & & _ecRST) {/ / bucle mientras < 8 y RST es alta
mientras (! _ecSCK & & _ecRST); Espere SCK ir alta
_ecSDALat = temp & 0 x 01; Sistema SDA alta o baja según el primer bit

mientras que (_ecSCK & & _ecRST); Espere SCK ir bajo
Temp >> = 1; Cambio derecha los datos por una
i ++; incrementar el contador en uno
}
_ecSDATRIS = 1; Sistema SDA a una salida
_ecSDA = 1; no estoy seguro si esto es necesario
}

Y por último la función en:

unsigned char epsnCartIn(void) {}
unsigned char i = 0;
char temp = 0 x 00;

mientras que ((i<8) & & _ecRST) {/ / bucle mientras < 8 y RST es alta
Temp >> = 1; Cambio derecha la temp por uno
mientras (! _ecSCK & & _ecRST); Espere SCK ir alto
if(_ecSDA) {//only id SDA es alta
Temp | = 0 x 80; Establezca el bit 8
}

mientras que (_ecSCK & & _ecRST) ;// espere SCK ir bajo
i ++; Incrementar el contador en uno
}
devolver a temp; devolver lo que hemos recibido
}

Artículos Relacionados

Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Si eres algo como yo, le gustaría tener y tomar el control de todo en su computadora. Ust pueda determinar cuánto almacenamiento de información se utiliza para bla programas bla, bla.Aunque las aplicaciones pueden ser útiles en hacer las cosas, ¿por
Guía definitiva para una impresora 3D

Guía definitiva para una impresora 3D

En este instructable te diré acerca de los diferentes tipos de impresoras 3D y cómo funcionan. Esperemos que, si ya no tienes una impresora, este instructable le hará conseguir uno!Paso 1: Diferentes tipos de impresorasHay 4 tipos principales de impr
Correctamente cartuchos de tinta eliminar HP ce255a

Correctamente cartuchos de tinta eliminar HP ce255a

es un hecho conocido que un ce255a cartucho contiene componentes dañinos. Si se no es eliminar correctamente, este cartucho de tinta puede plantear una amenaza significativa para la planta y vida animal. Después de que los cartuchos de tinta estén va
Ingeniería inversa en vivo

Ingeniería inversa en vivo

Empecé en electrónica antes de la llegada de internet y de componentes de estado sólidos más, por lo que no fue fácil para mí obtener hojas de datos y esquemas. Hoy en día con fabrica haciendo ICs personalizadas y pantallas LCD para todo, desde los t
Ingeniería inversa: USB controlado hack de automatización del hogar

Ingeniería inversa: USB controlado hack de automatización del hogar

hackear un sistema inalámbrico de automatización del hogar para ser controlada usando dos Microcontroladores AVR USB!¡ Mira el video! El sistema es realmente más sensible, pero el navegador de mi celular es lento.Si te gusta esto, posiblemente le gus
Ingeniería inversa = Uzzors2k = Bluecar Android aplicación Amarino cosas también.

Ingeniería inversa = Uzzors2k = Bluecar Android aplicación Amarino cosas también.

Este instructable sobre todo Ayude a la gente tratando de coches del rc coche/james bond (mañana nunca muere por supuesto).  Si tu tratando de encender las luces o controlar su garaje con el bluetooth de un teléfono con android, hay toneladas de otro
Reciclar los cartuchos de inyección de tinta CMYK en rotuladores

Reciclar los cartuchos de inyección de tinta CMYK en rotuladores

de vez en cuando tirar cartuchos de tinta y notó cómo completo siguen siendo a pesar de que la impresora no lo creo. Pensaba poner algunos viejos marcadores baratos sobre la apertura de la final que se conecta a la impresora se secó. Es muy simple. Y
Conversión de una impresora de inyección de tinta para imprimir PCB

Conversión de una impresora de inyección de tinta para imprimir PCB

ver el paso 12 para nuevos resultados y un aguafuerte/proyecto actualización!Recientemente uno de mis objetivos ha sido encontrar una manera de facilitar el proceso de creación de PCB (Printed Circuit Board). Me gusta poder diseño que algo basado en
Cómo imprimir con un cartucho de tinta "vacía".

Cómo imprimir con un cartucho de tinta "vacía".

Es tarde y tienes que imprimir algunos informes para llevar a una reunión. Su impresora se queda sin un color de tinta y sostiene a su rehén de todo trabajo hasta que puede colocar en un cartucho nuevo. Tiene ninguno y la tienda de cartucho de tinta
Ingeniería inversa RF mando a distancia para IoT.

Ingeniería inversa RF mando a distancia para IoT.

En este instructable, usted aprenderá cómo invertir el ingeniero cómo implementar en un ordenador muy barato de WiFi activado, el MCU de nodo y mandos de Radio frecuencia (RF). Usando esta técnica puedes IoT habilitar dispositivos mayores y dispositi
Ingeniería inversa

Ingeniería inversa

muchos de los miembros aquí en Instructables pregúntele a hojas de datos o pin outs de un dispositivo o pantalla en respuestas, desafortunadamente usted no puede siempre obtener una hoja de datos y esquemas, en estos casos sólo tienes una opción inge
Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

compramos 20 de estas bombillas LED RGB para una fiesta en el trabajo, pero estaba un poco decepcionado con las funciones de fundido de color que proporcionaban. Así que decidí tomar a un ingeniero inverso, aparte el protocolo de IR y ver si tenía má
Un cargador de la cerca eléctrica de ingeniería inversa

Un cargador de la cerca eléctrica de ingeniería inversa

algo ingeniería inversa puede ser una gran forma de entretenimiento y educación.  Que muchas veces he comprado artículos para la satisfacción de desmontaje para determinar cómo funcionan y cómo están diseñados.  A lo largo de la manera usted puede ap
Un pequeño amplificador de ingeniería inversa

Un pequeño amplificador de ingeniería inversa

Mi Instructables otros en la ingeniería inversa está en componentes que no puede obtener hojas de datos y conexiones. Invertir que un circuito de dos tableros a la semana, pequeños como estos me llevan de un día para invertir a ingeniero y tira para