TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: pietrodilaccua en 05 de Agosto de 2004, 21:42:00

Título: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 05 de Agosto de 2004, 21:42:00
hola amigos,

para unos desarrollos me cambie del  16f873 al 16f628, me recomendaron este chip por tener muchas prestaciones y es muy barato en encapsulado de 18 patitas.?????????.
El tema es que al tratar de grabar datos en la eeprom, no lo hace, he buscado todas las alternativas posibles pero el chip no responde en lo que es la grabacion en eeprom. He trabajado bastante en el manejo de datos en eeprom con otrosl chips, pero con este no funciona ,
 si alguien conoce algo de este tema con respecto a este chip le agradecere la informacion.

saludos amigos ...  pietrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: RGL en 06 de Agosto de 2004, 02:22:00
La EEPROM del chip funciona perfectamente, deberás revisar las rutinas de grabación. Yo no he tenido ningún problema con esto y he utilizado muchos de estos.

Saludos
Ricky
Madrid-España
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: todopic en 06 de Agosto de 2004, 11:56:00
Hola Pietro,  en que lenguaje programas?, si es en asembler, ten cuidado, porque estan en otro banco de memoria... , a mi me ocurrio....

suerte

Norberto
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 06 de Agosto de 2004, 13:10:00
RICKY,
           OK REVISARE MIS RUTINAS , PERO CREO QUE EL PROBLEMA ESTA POR LA INDICACION DE NORBERTO,  YO TRABAJO SOLO EN ENSAMBLADOR  Y HE SEGUIDO TODAS LAS INDICACIONES DEL DATA SHEET SUMINISTRADO POR EL FABRICANTE MICROCHIP Y NADA.

NORBERTO TE AGRADECERE SI ME INDICAS EL BANCO EN QUE MANEJO LA EEPROM Y EL PROCEDIMIENTO GENERAL PARA ACCEDER.

SALUDOS AMIGOS

PIETRODILACCUA
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 07 de Agosto de 2004, 09:51:00
HOLA DE NUEVO AMIGOS, LE INDICO LA RUTINA QUE ESTOY USANDO PARA ESCRIBIR LA EEPROM DEL 16F628.

HE DEFINIDO EN EL ENCABEZAMIENTO DEL PROGRAMA LOS REGISTROS EEDATA, EEADR, EECON1 Y EECON2 EN LAS DIRECCIONES 1A,1B,1C,Y 1D RESPECTIVAMENTE PARA SU USO EN EL BANCO 1 QUE ES DONDE SE LOCALIZAN.
LUEGO  A PARTIR DE 2OH EN EDELANTE HE DEFINIDO DOS REGISTROS QUE SON:
DATA_EEPROM; USADO PARA PONER LOS DAOS QUE ALMACENARE EN EEPROM Y
ADRES_EEPROM ; USADO PARA ALMACENAR LA DIRECCION A LA QUE ACCEDERE EN LA EEPROM.

FINALMENTE LA SUBRUTINA SE LLAMA GRABA_ EEPROM:

GRABA_EEPROM
          BSF         STATUS,RPO               ;BANCO1
          MOVF      ADRES_EEPROM,W     ; CARGO LA DIRECCION
          MOVWF   EEADR                        ; EN REGISTRO DE DIR.
          MOVF      DATA_EEPROM,W       ; CARGO EL DATO
          MOVWF   EEDATA                      ; EN REG DE DATOS
          BSF         EECON1,WREN           ; HABILITO ESCRITURA
          MOVLW   0X55                          ; SIGUE SECUENCIA DE WRITE
          MOVWF   EECON2                      
          MOVLW   0XAA
          MOVWF   EECON2
          BSF         EECON1,WR               ; INICIA ESCRITURA
          BCF         EECON1,WREN           ; CIERRO ESCRITURA
          BCF         STATUS,RPO               ; VUELVO A BANCO 0
          RETURN                                     ; Y RET AL PROG. PRINCIPAL

DONDE ESTA LO MALO AMIGOS???????,   NO SOY UN SUPER EXPERTO EN PICS PERO NO HE TENIDO PROBLEMAS CON NINGUN OTRO CHIP. ADEMAS HE SEGUDO TODAS LAS INDICACIONES DEL ULTIMO DATASHEET DE ESTE MICRO QUE SE ENCUENTRA EN LA PAGINA DE MICROCHIP.
AGRADECERE  SUS COMENTARIOS.

LINDO FIN DE SEMANA ....  PIETRODILACCUA.
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: todopic en 07 de Agosto de 2004, 10:21:00
hola Pietro... esta es la rutina que empleo... ojo que empleo byte y direccion, y tu empleas data_eeprom y adres_eeprom... (solo cambian los nombres de los registros...)para el caso es lo mismo ok?
y ademas recuerda, luego de enviar a grabar, te quedas en un loop esperando que termine la grabacion,,,... con

ESCRCOMPL2
   BTFSC   EECON1,WR   ;BYTE ESCRITO?
   GOTO   ESCRCOMPL2
   BCF   STATUS,RP0

espero te sirva...

suerte

Norberto
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 07 de Agosto de 2004, 13:02:00
norberto, a la rutina que has visto ya le he agregado las instrucciones que mencionas pero tampoco funciona la grabacion, es decir pasa por el bit test del wr y yo asumo que ha terminado el ciclo de escritura ya que retorna al programa principal, de lo contrario se quedaria eternamente en este loop, pero al revisar las posiciones  de la eeprom estas estan en 00 y de grabacion ,nada.

en tu opinion, esta correcta la rutina que estoy usando????

estoy pensando en algun desperfecto en los chips.

saludos  pietrodilaccua

Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: Micom en 08 de Agosto de 2004, 01:03:00
Talvez no venga al caso pero ¿no sera que esta malo tu pic?
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 08 de Agosto de 2004, 09:48:00
hola micom.
                     Gracias por tu atencion, te cuento que compre 4 de estos para no usar los f873 que son mas caros.
y los programas funcionan perfectamente bien entodos ellos, el tmr1 como reloj, la usart para transmitir algunos comandos, todos los i/o.. etc. pero en todos ellos no logro grabar la eeprom, ademas tengo programas funcionando en atros chips de la familia de los 16fXX y en todos no tengo problemas. he puesto la rutina que estoy usando para que alguien me indique si hay algun error, es basicamente la misma usada en otros chips con las diferencias logicas en la definicion de algunos registros de acuerdo al banco en que se localizan.
bueno amigos seguire en contacto para ver si resuelvo el problema.

saludos pietrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: manex_1987 en 08 de Agosto de 2004, 13:12:00
Sugiero que las eeprom convencionales tardan unos 10ms en completar las operaciones de escritura, podria ser eso tal vez? No vendria mal poner un bucle infinito despues del comando de escritura, que solo sea roto mediante la interrupcion de final de escritura en la eeprom.
salu2
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 09 de Agosto de 2004, 19:48:00
bueno amigos , he hecho todo lo sugerido. incluso lo que sugiere manex esta señalado mas arriba, pero todavia nadie me ha indicado  si la rutina que he puesto anteriormente esta con algun problema.

seguire tratando de solucionar este lio, si alguien se le ocurre algo mas, bienvenido sea.

saludos a todos

petrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: miltonmc en 12 de Agosto de 2004, 12:17:00
hola a todos
petrodilaccua trate de ensambrar el codigo que pusiste y tienes un error cuando cambias de banco ya que estas poniendo
BSF STATUS,RPO ;BANCO1
y estas mal cuando pones (RPO) ya que estas poniendo una O mayuscula y es un cero 0 (RP0) el mpasm da ese error
te voy a poner un pedazo de codigo que estoy usando en un proyecto donde grabo la eeprom

call   Delay
BSF    STATUS,RP0            ;
BCF    STATUS,RP1            ;
movlw   0x00                     ;direccion de la eeprom
movwf   EEADR                  
movlw   0x10                   ;datos que vamos a grabar   
movwf   EEDATA
BSF     EECON1,WREN           ;Permiso de escritura
BCF   INTCON,GIE
movlw   0x55
movwf   EECON2
movlw   0xAA
movwf   EECON2          ;Secuencia seg£n Microchip
BSF     EECON1,WR             ;Orden de escritura
BSF   INTCON,GIE
BCF     EECON1,WREN
 BCF    STATUS,RP0
movlw   0x00
movwf   EEADR           ;Posici¢n EEPROM
BSF    STATUS,RP0
BSF    EECON1,RD             ;Orden de lectura
BCF    STATUS,RP0            ;Selecci¢n banco 0
MOVF   EEDATA,W              ;datos en W

este codigo lo estoy usando en este momento
saludos a todos desde REP. DOM.
                                                                miltonmc
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 13 de Agosto de 2004, 09:02:00
hola mi amigo.
es cierto yo uso RPO con "O" pero en el encabezamiento de mis programas  lo defino como: RPO EQU 5, y siempre me han funcionado perfectamente. En todo caso esta vez no solo use RP0 con "cero" sino que probe nuevamente con la rutina que me enviaste, teniendo en cuenta que es practicammente la la misma que yo uso, en mi caso, como puedes ver mas arriba,  la diferencia esta en que las direcciones y los datos yo los saco de dos registros pero en el fondo es lo mismo.
Y el resultado...????????...igual... siguen mis 16f628-04/P sin grabar la eeprom.   ha!!! ....y compre varios ...y todos funcionan perfectamente exepto por la eeprom que ninguno la graba.
...Creo que tendre que cocinarlos

agradecido de tu respuesta.

un saludo a todos   pietrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: todopic en 13 de Agosto de 2004, 11:22:00
Hola Pietro, has probado en grabarlas en el mismo programa, es decir con tu programador?, asi sacamos la duda de que no funciona la eeprom?

por ejemplo, agrega en tu programa

         ORG H"2100"

   DE   4 ,1, 1, 1, 1, 1, 1, 1, 1, 0, 5,32, 32 ; 5  
   DE      0, 8, 0, 4, 0, 4, 0, 0,0A,0A, 0, 0


y luego lee la eprom...

avisa como fue...

Norberto
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 13 de Agosto de 2004, 21:43:00
Hola norberto,
he hecho un pqueño programa que contiene las instrucciones que me has indicado y una rutina de lectura que tengo que muestra las posiciones de memoria eeprom en un display a partir de la 00 .
solo grabe el programa y luego revise a partir de la 00.......,nada todo esta en cero.
otra prueba,...puse tambien estas instrucciones al final de mi programa, lo compile sin ningun problema y luego fui a leer la eeprom desde la 00 , nada tampoco la memoria sigue en 00.

he escrito lo que me has indicado sin saber bien que Significa "DE"
y me imagino que despues de ORG el H2100 debe referirse de alguna manera la direccion de la eeprom. si puedes te agradecere me lo expliques.

como ves mi amigo esto sigue misterioso.

saludos  pietrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: miltonmc en 13 de Agosto de 2004, 23:49:00
hola a todos
petrodilaccua yo use ese codigo en un programa para controlar 3 bombas de agua con 4 sensores y uso la eeprom para saber cual fue la ultima bomba que  se uso y asi encender la siguiente primero. y el programa me funciona muy bien.
luego use el winpic800 y al codigo le escribi varios mensajes a la eeprom como mi nombre, telefono, compañia, ect. y les puse el codigo CP para que solo puedan leer la eeprom.
puedes mandarme tu programa por privado para simularlo en el mplab y asi saber donde esta el fallo.
                         saludos desde rep dom.       miltonmc
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: pietrodilaccua en 08 de Septiembre de 2004, 09:33:00
amigos
despues de un tiempo de desaparecido acabo de enviar a miltonmc mi programa segun me lo indico.
en todo caso si alguen tiene una rutina probada y funcionando de grabacion de la eeprom del 16f628 le voy a agradecer me la envie para probarla.

saludos desde santiago de chile      pietrodilaccua
Título: RE: PIC 16f 628 no graba la eeprom
Publicado por: jequer en 06 de Marzo de 2005, 00:16:00
Hola, estoy en el mismo embrollo.... espero que en estos meses estimado pietro ya tengas la respuesta para este problema de eeprom. Por favor si es así, enviame tu receta.

Gracias de antemano
Título: Re: PIC 16f 628 no graba la eeprom
Publicado por: jfmarque en 26 de Agosto de 2014, 00:06:48
Bueno.... Hola a todos...
tengo tiempo usando el PIC84A pero por las mismas razones que muchos de ustedes tienen, cambie al 628A. Pero tendo el mismo problema que nuestro amigo que inicio esta charla... No graba mi código en la eeprom. en el 84A funciona perfectamente, pero al hacer el cambio al 628, algo no anda bien y no se que es...

este es el código... el dato lo traigo ya listo desde otra rutina del programa. esta rutina solo la uso para grabar. EEDATA ya tiene el dato y EEADR ya fue borrada desde otro punto del programa para iniciar desde el primer registro de memoria. Insisto, en el 84A funciona perfectamente bien...
;***** Writing to EEPROM *****

EE_Pisi   BCF    STATUS, RP1   ; ************Recomendación de Microchip
      bsf      STATUS, RP0   ; Bank 1 ...
      bsf      EECON1, WREN;
      BCF    INTCON, GIE ;Disable INTs.**********************Recomendación de Microchip
      NOP
      NOP
      BTFSC    INTCON, GIE
      GOTO $-4
      movlw   h'55'      ;
      movwf   EECON2      ;
      movlw   h'AA'      ;
      movwf   EECON2      ;
      bsf      EECON1, WR   ; WRITE
EE_Pis1   btfsc   EECON1, WR   ; i
      GOTO   EE_Pis1      ;
      bcf      EECON1, WREN;
      BSF    INTCON, GIE ;  *******************Recomendación del proveedor
      bcf      STATUS, RP0   ; Bank 0
      RETURN            ;
Título: Re: RE: PIC 16f 628 no graba la eeprom
Publicado por: ThePIC-GUY en 26 de Agosto de 2014, 12:18:41
Bueno.... Hola a todos...
tengo tiempo usando el PIC84A pero por las mismas razones que muchos de ustedes tienen, cambie al 628A. Pero tendo el mismo problema que nuestro amigo que inicio esta charla... No graba mi código en la eeprom. en el 84A funciona perfectamente, pero al hacer el cambio al 628, algo no anda bien y no se que es...

este es el código... el dato lo traigo ya listo desde otra rutina del programa. esta rutina solo la uso para grabar. EEDATA ya tiene el dato y EEADR ya fue borrada desde otro punto del programa para iniciar desde el primer registro de memoria. Insisto, en el 84A funciona perfectamente bien...
;***** Writing to EEPROM *****

EE_Pisi   BCF    STATUS, RP1   ; ************Recomendación de Microchip
      bsf      STATUS, RP0   ; Bank 1 ...
      bsf      EECON1, WREN;
      BCF    INTCON, GIE ;Disable INTs.**********************Recomendación de Microchip
      NOP
      NOP
      BTFSC    INTCON, GIE
      GOTO $-4
      movlw   h'55'      ;
      movwf   EECON2      ;
      movlw   h'AA'      ;
      movwf   EECON2      ;
      bsf      EECON1, WR   ; WRITE
EE_Pis1   btfsc   EECON1, WR   ; i
      GOTO   EE_Pis1      ;
      bcf      EECON1, WREN;
      BSF    INTCON, GIE ;  *******************Recomendación del proveedor
      bcf      STATUS, RP0   ; Bank 0
      RETURN            ;

En que momento cargas los registros EEADR y EEDATA? estos registros tambien estan en el banco1, por lo que los tienes que cargar dentro del mismo, de lo contrario no funcona, 
Título: Re: PIC 16f 628 no graba la eeprom
Publicado por: jfmarque en 26 de Agosto de 2014, 12:37:59
Esas variables las tengo ya listas en otra rutina y funciona bien en el 84A. No veo la complejidad del codigo propuesto por el fabricante... practicamente es la misma!!!!
Pero no funciona....
Yo pienso que no es un tema de codigo, sino mas bien de configuracion de los registros.... tambien tenia problemas con el PORTA y se resolvio incluyendo las lineas de configuracion del PORTA para I/O. pero para la EEPROM no hay nada fuera de lo normal....
Simplemente no funciona...
Título: Re: PIC 16f 628 no graba la eeprom
Publicado por: ThePIC-GUY en 26 de Agosto de 2014, 13:25:49
yo estoy trabajando actualmente con el 16f628A, y estas son las rutinas que uso para escribir y leer en la EEPROM
Código: [Seleccionar]
ESCRIBIR:

BSF STATUS,RP0 ;BANCO 1
BSF EECON1,WREN
BCF INTCON,GIE
BTFSC INTCON,GIE
GOTO $-2
MOVLW H'55'
MOVWF EECON2
MOVLW H'AA'
MOVWF EECON2
BSF EECON1,WR
BTFSC EECON1,WR
GOTO $-1
BCF EECON1,WREN
BCF STATUS,RP0 ;BANCO 0
BSF INTCON,GIE
RETURN

LEER:
BSF STATUS,RP0 ;BANCO1
MOVWF EEADR
BSF EECON1,RD
BTFSC EECON1,RD
GOTO $-1
MOVF EEDATA,W
BCF STATUS,RP0 ;BANCO0
RETURN

Para mandarlas llamar hago lo siguiente:
Código: [Seleccionar]
;Llamada a LEER
MOVLW H'08'
CALL LEER
:Llamada a ESCRIBIR
BSF STATUS,RP0
MOVLW H'0D'
MOVWF EEADR
MOVF ESTADO,W
MOVWF EEDATA
BCF STATUS,RP0
CALL ESCRIBIR

espero te sirva
Título: Re: PIC 16f 628 no graba la eeprom
Publicado por: chmiguel en 30 de Marzo de 2015, 16:01:12
a mi me esta pasando lo mismo con un pic 16f873a, todos los bytes de la eeprom estan en 00 cuando deberian estar en ff, todo esto empezo cuando intente modificar la palabra de configuracion a grabar en el pic por medio de mplab, antes la eeprom funcionaba bien
Título: Re: PIC 16f 628 no graba la eeprom
Publicado por: KILLERJC en 30 de Marzo de 2015, 19:54:48
a mi me esta pasando lo mismo con un pic 16f873a, todos los bytes de la eeprom estan en 00 cuando deberian estar en ff, todo esto empezo cuando intente modificar la palabra de configuracion a grabar en el pic por medio de mplab, antes la eeprom funcionaba bien

Tenes habilitada la proteccion de codigo?