The manual for the PIC12F629/675 clearly indicates that the procedure to write to the EEPROM is as follows: ; BUT, this WORKS at 5V, not at 3.3V ; write a byte in w EEROM @tmp wreeerom: bank1 clrf EECON1 movwf EEDATA movf tmp,w movwf EEADR clrwdt bsf EECON1,WREN bcf intcon,gie movlw h'55' movwf EECON2 movlw h'AA' movwf EECON2 bsf EECON1,WR bsf intcon,gie btfsc EECON1,WR goto $-1 ;5mS wait max bcf EECON1,WREN clrf status ;bank 0 return ; the following WORKS at 3.3V and 5V ; write a byte in w EEROM @tmp wreeerom: bank1 clrf EECON1 movwf EEDATA movf tmp,w movwf EEADR bcf intcon,gie clrwdt bsf EECON1,WREN movlw h'55' movwf EECON2 movlw h'AA' movwf EECON2 bsf EECON1,WR bsf intcon,gie btfsc EECON1,WR goto $-1 ;5mS wait max bcf EECON1,WREN clrf status ;bank 0 return ; I spent many hours trying to resolve why this simple relocation of BCF INTCON,GIE allows the EEPROM to work at 3.3V as well. This is NOT an isolated case, I have 50 PIC12F629's and 10 PIC12F675's doing the same thing. My interrupt is trivial: ;*********************************************************; ; Tick interrupt ; Precisely 1.024mS with 4M Int RC Osc ;*******************************************************; intv: clrwdt bcf intcon,t0if incfsz count,f nop bsf flags,flg retfie I think that the manual has one instruction out of its proper place. Anybody else notice this? --Bob -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist