Reverse-Engineering te emuleren inktcartridges voor een Epson-Printer (3 / 8 stap)

Stap 3: Basic-Code Routines

Wat ik wilde doen was voorgelezen aan de ROMs van de inkt karren en die vervolgens te gebruiken om te proberen te emuleren de ontbrekende inktcartridge, die ik heb geen. Dit betekent het creëren van een bibliotheek die zal fungeren als een host om de gegevens te lezen maar kan ook worden gebruikt om te emuleren een inktcartridge.
Voorkennis van het creëren van software gebaseerde protocollen gebruikt, ik heb een headerbestand gemaakt met deze functies:
• extern nietig epsnCartInit(void);
• extern void epsnCartStart (unsigned char addr, unsigned char schrijven);
• extern nietig epsnCartStop(void);
• extern void epsnCartWrite (unsigned char gegevens);
• extern unsigned char epsnCartRead(void);

Ik heb ook de volgende definities die helpen met onthouden welke pin was wat gemaakt:
Voor u microcontroller moet u deze waarden aanpassen aan uw toepassing wijzigen

#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)

Opmerking: Ik gebruikte een PIC18F en hendels voor het instellen van de uitgangen gebruikt, het is gewoon mijn voorkeur in keuze. U bent welkom om het gebruik van een microcontroller die u bekend met bent.

ongeldig 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;
}

De functie start trekt VDD hoog, wacht en SDA ingesteld volgens de adres bits evenals SCK. Wacht, trekt SCK lage, wacht nog eens en dan trekt SDA hoge dienovereenkomstig naar het adres. Dit 2 keer behalve op de 4de keer wordt herhaald, SDA ligt laag omdat we willen lezen dat de gegevens in de EEPROMs niet schrijven.

VOID epsnCartStart (unsigned char addr, unsigned char schrijven) {}
char i = 0; Gebruikt voor het tellen van

char tmp = 0; / / opslag variabele Temp

_ecVDDLat = 1; Instellen van VDD hoge
DelayMS(1); Wachten op de EEPROMs om klaar
_ecRSTLat = 1; Inschakelen van de EEPROMs voor communicatie

tmp = addr; Kopieer het adres in de temp-variabele
if(write) {/ / als we willen schrijven
Temp | = 0x08; Stel de 4de bit hoge (' |' betekent of)

}

while(i<4) {}
_ecSDALat = (tmp & 0x01); SDA hoge of lage volgens de LSB

wait(); Wacht ongeveer 50uS
_ecSCKLat = 1; Set Clock hoge
wait(); Wacht een andere 50uS
_ecSCKLat = 0; Klok instellen laag
wait(); Wacht een andere 50uS
tmp >> = 1; Rechts verschuiven alle bits in tmp door een
i ++; de teller verhogen met één
}

}

De volgende functie uit te voeren is stop:
ongeldig epsnCartStop() {}
_ecRSTLat = 0; Stel de eerste laag
DelayMS(1); Een beetje wachten
_ecVDDLat = 0; De EEPROMS uitschakelen
}

En tot slot de Lees functie:
unsigned char epsnCartRead() {}
char i = 0;
char temp = 0x00;

while(i<8) {}
Temp >> = 1; Juiste verschuiving de temp-variabele door een
_ecSCKLat = 1; SCK hoog ingesteld
wait(); Wacht ongeveer 50uS
if(_ecSDA) {/ / als SDA is hoog
Temp | = 0x80; Vervolgens bit set 7 hoge
}
_ecSCKLat = 0; SCK lage wederbrengen
wait(); wacht een andere 50uS

i ++; De teller met 1 ophogen
}
retourneren temp; Terug wat we hebben gelezen
}

We hebben nu de basisfuncties die we nodig hebben om gegevens te lezen van de inktcartridges, laat onze microcontroller en stellen van de resultaten.

Gerelateerde Artikelen

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

Dit instructable zal detail how to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.Voor een volledige beschrijving over de bouw van de nieuwe 3D-Printer af te drukken in NYLON, enkel bezoek de belangrijkste instructable:Dit
Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Voordat we beginnen, moet u eerst een Lego eerste orde Tie Fighter voor verwijzingsdoeleinden aanschaffen. U moet ook AutoDesk Inventor op uw computer om te ontwerpen.Stap 1: Beginnen met het maken van de vleugelVervolgens openstellen van AutoDesk In
Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Ik nam een grote klasse op TechshopSF op geavanceerde 3d printen. De instructeur voorgesteld met behulp van Tinkercad of Meshmixer voor design. Echter werd niets vermeld over het converteren van bestaande illustraties in iets dat Tinkercad aankan (al
Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Als u om het even wat als me bent, zou u willen hebben en het nemen van controle over alles op uw computer. U ust kunnen bepalen hoeveel opslag wordt gebruikt voor programma's blah blah blah.Hoewel toepassingen mogelijk nuttig om dingen gedaan te kri
Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Zie stap 12 voor nieuwe resultaten en een ETS/PROJECT UPDATE!Onlangs een van mijn richt zich te vinden een manier om de aanmaak van PCB (Printed Circuit Board) gemakkelijker geweest. Ik ontwerp die iets op basis van wat ik wil in een circuit kunnend
Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Intro, prelude, of gewoon: die is dit bedoeld voor?Ik wilde de titel op te nemen goedkoop, maar laten we eerlijk zijn: het is niet goedkoop om te bouwen van een 3D-printer, tenzij u sommige/allermeest naar de onderdelen bij de hand hebben of als u ge
Beheersing van een 3D-printer met handgebaren

Beheersing van een 3D-printer met handgebaren

ik heb geschreven over het vóór maar ik beheren een creatieve technologie lab aan het California College van de kunsten. Ik helpen studenten met een breed scala aan vaardigheden, het maken van een breed scala van projecten. Een van de vele onderdelen
Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
Een werkende sleutel van schroot maken door reverse-engineering van een sluis

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

heb je verloren alle sleutels voor uw lock en moeten maken van een nieuwe sleutel van kras?  Heeft de slotenmaker gebrek een lege sleutel die van uw slot Spiebaan passen zal? Pak een metalen bestand, sommige blad schroot, en lees verder voor een ruwe
Reverse Engineering een schrikdraad lader

Reverse Engineering een schrikdraad lader

Reverse-engineering iets kunnen een grote vorm van zowel entertainment en onderwijs.  Ik heb vaak inkoopartikelen net voor de bevrediging van de demontage van hen om te bepalen hoe zij functioneren en hoe ze zijn ontworpen.  Langs de weg, kunt u verb
De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

dit instructable introduceert het eerbiedwaardige spion oor in details en mijn weg naar het omgekeerde ingenieur een circuit.Waarom wordt dit apparaat verdient zijn eigen instructable?:-U kunt kopen een spion oor voor een dollar!-Het kan geluiden ver
Reverse luchtstroom mondstuk voor een luchtcompressor

Reverse luchtstroom mondstuk voor een luchtcompressor

Dus na het bekijken van een video over het reinigen van uw droger ventilatieopeningen ging ik op zoek naar een bijlage voor het einde van mijn luchtcompressor. Een bijlage van reverse luchtstroom die is verbonden met het einde van uw compressor lucht
Hoe reverse-engineering een schematische voorstelling van een circuit bord

Hoe reverse-engineering een schematische voorstelling van een circuit bord

dit project is een resultaat van hoeft te een binnenlandse elektronische serviceartikel zonder zijnde kundig voor het verkrijgen van een schakeldiagram.Het proces bleek zeer lange en moeizame, maar ook zeer de moeite waard.  De stappen die hier worde