Sari la conținut
ELFORUM - Forumul electronistilor

microcipuri iprimante laser


dulamaa9

Postări Recomandate

salut. de ceva vreme ma ocup cu reincarcarea unor cartuse de imprimate laser. pana acuma a mers ok cam la ajoritatea iprimantelor, numai ca la unele(ex lexmark 320) am vazut un chip pe cartuse. am cautat eu ceva pe net despre asta dar nu a gasit nimic cocret.....din ce am aflat eu astea sunt puse sa nu poti sa le incarci...elel merg numai dupa ce le schimbi si chipul asta sa le reseteze....are cineva idee cum sunt facute? as vrea sa stiu mai multe detalii despre sub asta.multumesc, adrian.

Link spre comentariu
  • 2 săptămâni mai târziu...
  • Răspunsuri 4
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • dulamaa9

    2

  • nicu_stef

    1

  • bogdanel

    1

eu am vazut la un copiator minolta figura cu cip-ul, care trebuia schimbat odata cu cilindrul.intr-adevar era o memorie EEPROM serialateoretic citesti o memorie dintr-un cartus nou si apoi o rescrii pe cea din cartusul vechi. dar cine stie cate chestii ar mai putea fi prin memoria aia, nu numai numarul de pagini sau ce-o monitoriza el acolo.pe cip nu scrie nimic?daca e I2C ar trebui sa aiba 4 pini, 2 alimentare si 2 semnal.cati pini are cip-ul / conectorul?poate la identifici daca nu-i demontabil si incerci o citire.e ceva de munca, succes

Link spre comentariu
Vizitator sev7en

La imprimata cu pricina este o memorie 1wire. La copiatoarele mai vechi am vazut memorii pe SPI si I2C. Memorile pe I2C sunt facute la cerere. Au o groaza de capcane. Eu am blocat vreo cinci memorii. Asa ca m-am lasat pagubas. Dar sunt firme in Romania care le rezolva.

Link spre comentariu

uitati ce am gasit eu ..sa nu ma injurati daca citez ca mult cod :)" /** 24C32_3.C** Illustrates how to read the full content of a 24LC32 32K EEPROM and* save to a text file. This might be useful as a primitve way of* "uploading" a data logger or in copying EEPROMs.** Content of file is then written to a second EEPROM.* copyright Peter H. Anderson, MSU, March 28, '97*/#include #include #define DATA 0x0378#define STATUS DATA+1#define CONTROL DATA+2typedef unsigned char byte;/* The implementation of the following functions are contained in** Program 24C32_1.C*/byte write_random_data(int device, int address, byte data);byte read_random_data(int device, int address);void out_byte(byte o_byte);byte in_byte(void);byte ack(byte device);byte nack(void);void start(void);void stop(void);void low_SDA(void);void high_SDA(void);void low_SCL(void);void high_SCL(void);void main(void){ int device=0, address, n; byte value, values[8]; char str[80]; FILE *f; f=fopen("eeprom.dta", "wt"); for (address=0x0000; address<0x0fff; address++) /* read each location and write to a text file - 8 values per line */ { value=read_random_data(device, address); printf("%x\t", value); fprintf(f, "%x\n", value); if((address+1)%8 == 0) /* a new line every 8 values */ { printf("\n"); fprintf(f, "\n"); } } fclose(f); printf("\n\nDone. Hit any key to program another EEPROM\n"); while(!kbhit()) /* loop until a key is hit */ ; f=fopen("eeprom.dta", "rt"); /* open the file for reading */ address=0x0000; while(fgets(str, 80, f)!=NULL); { /* get one line of 8 values and write to EEPROM */ sscanf(str, "%x %x %x %x %x %x %x %x", &values[0], &values[1], &values[2], &values[3], &values[4], &values[5], &values[6], &values[7]); for(n=0; n<8; n++) { write_random_data(device, address, values[n]); ++address; } } fclose(f); printf("Done!\n\n");}byte read_random_data(int device, int address)/* read from specified address. return fetched data */{ byte i_byte; start(); out_byte(0xa0 | (device<<1)); /* preface is a write; ls bit = 0*/ nack(); out_byte(address>>8 ); /* send high and low byte of address */ nack(); out_byte(address&0xff); nack(); start(); /* start with no stop */ out_byte(0xa0 | (device<<1) | 0x01); /* preface is now read. 1010 a2 a1 a0 1*/ nack(); i_byte=in_byte(); /* fetch the byte */ nack(); stop(); return(i_byte);}byte write_random_data(int device, int address, byte data)/* write specified data to specified address on specified device 0 - 7** returns 0 if acknowledge received from EEPROM. 1 if failure */{ byte ack_bit, n; start(); out_byte(0xa0 | (device<<1)); /* send preface 1010 a2 a1 a0 0 */ nack(); out_byte(address>>8 ); /* send high byte of address */ nack(); out_byte(address&0xff); /* send low byte of address */ nack(); out_byte(data); /* and finally the actual data */ nack(); stop(); for(n=0; n<10; n++) /* look for acknowledge - up toten times */ { ack_bit=ack(device); if (ack_bit==0) { break; } } return(ack_bit); /* 0 if successful */}void out_byte(byte o_byte)/* shift out byte, beginning with most significant bit */{ int n; for(n=7; n>=0; n--) { /* note SCL is low during transitions on SDA */ if (((o_byte >>n) & 0x01) == 0) { low_SDA(); } else { high_SDA(); } high_SCL(); low_SCL(); }}byte in_byte(void)/* fetch byte, most significant byte first */{ byte i_byte=0x00; int n; high_SDA(); for (n=0; n<8; n++) { high_SCL(); i_byte=(i_byte << 1) | ((inportb(CONTROL)^0x01)&0x01); /* note inversion on least significant bit of control port */ low_SCL(); } return(i_byte);}byte ack(byte device){ byte ack_bit; out_byte(0xa0 | (device<<1)); /* send preface */ ack_bit=nack(); /* look for acknowledgement */ return(ack_bit);}byte nack(void){ byte ack_bit; high_SDA(); high_SCL(); if (((inportb(CONTROL)^0x01)&0x01)==0) { ack_bit=0; } else { ack_bit=1; } low_SCL(); return(ack_bit);}void start(void)/* bring SDA high to low while SCL is high */{ high_SDA(); high_SCL(); low_SDA(); /* bring SDA low while clock is high */ low_SCL();}void stop(void)/* bring SDA low to high while SCL is high */{ low_SDA(); high_SCL(); high_SDA(); /* bring SDA high while clock is high */ low_SCL();}void low_SDA(void){ outportb(CONTROL, 0x00^0x01); /* inversion required on ls bit of control port */}void high_SDA(void) /* makes output high impedance */{ outportb(CONTROL, 0x01^0x01);}void low_SCL(void){ outportb(DATA, 0x00);}void high_SCL(void){ outportb(DATA, 0x01);}" singura problema a mea e ca inca nu gasesc definirea inportb si outportb. in rest mi se pare ok. ca iau un chip nou si il citesc pe tot si apoi in copiez intr-o memorie noua.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări