Stap 2: signalen
Ik stapte uit mijn soldeerbout, een lintkabel (tweedehands voor zitten een IDE-kabel van een oude computer) en een ambachtelijke mes. Ik snij 6 aderige breed lintkabel ongeveer 30cm lang, ontdaan van de uiteinden zorgvuldig met het craft knife (een stuk makkelijker om gebruik te maken van een ambachtelijke mes aan strook een lintkabel dan een paar tondeuse of Tang) en hen op de printplaat dat stuurlieden met de inktcartridges gesoldeerd.
Ik heb ook ontdaan van de andere uiteinden en gesoldeerd op bepaalde pennen, zodat ik kon hen steek in mijn logic analyser.
Na het inpluggen in de Analysator van de logica in de printplaat en met een blik op de signalen, vond ik dat onmiddellijk het SCK, SDA lijken op niets I2C, ik vrij zeker ben dat Epson hun eigen serieel protocol voor het gesprek met de EEPROMs binnen de inktcartridges moet hebben uitgevonden.
Wat ik vond is dat CVDD wordt ingeschakeld en kort daarna, Reizigersdiensten en CSDA omhoog gaan op precies hetzelfde moment binnenkort gevolgd door CSCK die pulseert. CSDA verandert op de stijgende-rand van de CSCK en ik neem aan dat het wordt gelezen over de rand vallen.
CSCK is seriële klok
CSDA is seriële Data
Reizigersdiensten wordt teruggesteld
en CVDD is de macht
Ziet er eenvoudig genoeg, maar ik wilde meer informatie over dit protocol, werden er geen adressen wordt verzonden?
Ik draaide de samplefrequentie op mijn logic analyser en vond zijn er 4 klok cycli, een pauze, dan 8 cycli, pauze, 8 meer, enzovoort. De 4 klokcycli in het begin gaf me het idee dat de eerste vier eventueel een 4-bits adres van de inktcartridge worden kan. Nog steeds was een heleboel informatie onbekend over dit protocol. Dus deed ik wat onderzoek!
Rond googlen vond niets over dit protocol werd de volgende beste plaats om te zoeken in octrooien.
Ja, octrooien, ik zocht naar "Epson SDA SCK RST geheugen eeprom" op http://www.freepatentsonline.com/ en één van de octrooien die ik vond (US7660008 ) bevatte precies wat ik zocht. Het geschetste het SCK, SDA, RST en VDD van het protocol.
Ik bespaar u de moeite en wijzen op wat ik gevonden heb:
1. stroomschema diagrammen beschrijving van de wat de Host en Slave
2. een schema van de timing van het protocol
3. de eerste 3 bits zijn een 3 bits adres gevolgd door een beetje lezen/schrijven (Lees = 0, schrijven = 1)
4. de adres-teller altijd begint bij 0x00 en wordt verhoogd met 1 van de techniek van elke klokcyclus (dit moet betekenen dat het schrijft in bits, niet bytes)
5. het moment RST gaat laag, de EEPROM stopt alles en stelt zelf
6. er zijn 252 stukjes te lezen, de laatste 3 bits (eigenlijk zijn ze aan het begin) is het adres van de inktcartridge.
Met behulp van wat ik had gevonden, besloten heb ik om te beginnen met het schrijven van code