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

Paso 3: Rutinas de código básico

Lo que quería hacer era leer las ROMs de los carros de tinta y luego los use para tratar de emular el falta cartucho de tinta que no tengo. Esto significa crear una biblioteca que actuará como anfitrión para leer los datos pero también puede utilizarse para emular un cartucho de tinta.
Utilizando el conocimiento previo de la creación de protocolos de software de base, crea un archivo de encabezado con estas funciones:
• extern void epsnCartInit(void);
• extern void epsnCartStart (addr unsigned char, unsigned char escritura);
• extern void epsnCartStop(void);
• extern void epsnCartWrite (datos unsigned char);
externo • unsigned char epsnCartRead(void);

También he creado las siguientes definiciones que ayudan con recordar que pin era lo que:
Microcontrolador, necesita modificar estos valores para su aplicación

#define _ecSCKTRIS TRISCbits.TRISC0
#define _ecSDATRIS TRISCbits.TRISC1
#define _ecRSTTRIS TRISCbits.TRISC2
#define _ecVDDTRIS TRISBbits.TRISB1

#define _ecSCKLat LATCbits.LATC0
#define _ecSDALat LATCbits.LATC1
#define _ecRSTLat LATCbits.LATC2
#define _ecVDDLat LATBbits.LATB0

#define _ecSCK PORTCbits.RC0
#define _ecSDA PORTCbits.RC1
#define _ecRST PORTCbits.RC2
#define _ecVDD PORTBbits.RB1

#define wait() DelayUS(50)

Nota: Utiliza un PIC18F y cierres para ajuste de las salidas, es sólo mi preferencia en la elección. Le invitamos a utilizar cualquier microcontrolador con que está familiarizado.

void epsnCartInit() {}
_epsnCartSCKTRIS = 0;
_epsnCartSDATRIS = 0;
_epsnCartRSTTRIS = 0;
_epsnCartVDDTRIS = 0;

_epsnCartSCK = 0;
_epsnCartSDA = 0;
_epsnCartRST = 0;
_epsnCartVDD = 0;

_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
}

La función de inicio tira VDD alto, espera y luego establece SDA según el bit de dirección así como el SCK. Espera, tira SCK baja, espera otra vez y luego tira SDA alta en consecuencia a la dirección. Esto repite 2 veces más excepto en el 4 º tiempo, SDA se encuentra bajo porque queremos leer que no escriben los datos de las EEPROMs.

{} void epsnCartStart (unsigned char addr, char sin signo de escritura)
char i = 0; Utilizado para el recuento de

char tmp = 0; / / Temp variable de almacenamiento

_ecVDDLat = 1; Set VDD alto
DelayMS(1); Espere las EEPROMs para prepararse
_ecRSTLat = 1; Habilitar el EEPROMs para la comunicación

tmp = addr; Copia la dirección en la variable temp
if(write) {/ / si nos quiere escribir
Temp | = 0x08; establecer el bit 4 de alto (' |' significa o)

}

while(i<4) {}
_ecSDALat = (tmp & 0 x 01); SDA alta o baja según el LSB

Wait(); Espere aproximadamente 50uS
_ecSCKLat = 1; Conjunto de reloj de alta
Wait(); Esperar otro 50uS
_ecSCKLat = 0; Reloj bajo
Wait(); Esperar otro 50uS
tmp >> = 1; Derecho uno desplaza todos los bits en tmp
i ++; incrementar el contador en uno
}

}

La siguiente función a implementar es parada:
void epsnCartStop() {}
_ecRSTLat = 0; SET RST bajo
DelayMS(1); Esperar un poco
_ecVDDLat = 0; Apague el EEPROMS
}

Y por último la función de leer:
unsigned char epsnCartRead() {}
char i = 0;
char temp = 0 x 00;

while(i<8) {}
Temp >> = 1; Derecho uno cambiar la variable temp
_ecSCKLat = 1; SCK alto
Wait(); Espere aproximadamente 50uS
if(_ecSDA) {/ / SDA si es alta
Temp | = 0 x 80; Entonces set bit 7 alta
}
_ecSCKLat = 0; Traer SCK baja otra vez
Wait(); esperar otro 50uS

i ++; Incrementar el contador en 1
}
devolver a temp; Devolver lo que hemos leído
}

Ahora tenemos las funciones básicas que necesitamos para leer datos de los cartuchos de tinta, permite configurar nuestro microcontrolador y establecer los resultados.

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