Ir al contenido principal

Cómo borrar la EEPROM


¿Qué es la EEPROM?
EEPROM responde a “Erasable Electronic Programmable Read Only Memory” que se puede traducir como Memoria de solo lectura programable y borrable electrónicamente. También se la conoce como E-2-PROM. Como su nombre sugiere, una EEPROM puede ser borrada y programada con impulsos eléctricos. Al ser una pieza que se puede gestionar por estos impulsos eléctricos, podemos realizar todas estas operaciones de reprogramación sin tener que desconectarla de la placa a la cual va conectada.
Los micro-controladores en varias placas Arduino tienen diferentes cantidades de EEPROM: 1024 bytes en el ATmega328, 512 bytes en el ATmega168 y ATmega8, 4 KB (4096 bytes) en el ATmega1280 y ATmega2560. Las placas Arduino y 101 si tienen un espacio EEPROM emulando de 1024 bytes. Recordemos que las placas Trigorilla son placas ATmega2560 con 4KB (4096 bytes).
La EEPROM también se conoce como “non-volatile memory” o memoria no volátil y es debido a que cuando se desconecta la energía, los datos almacenados en la EEPROM no serán eliminados quedando intactos. Las EEPROM más nuevas no tiene datos almacenados en ellas y deben ser primero configuradas con un programador antes de ser usadas. La información almacenada dentro de este dispositivo puede permanecer durante años sin una fuente de energía eléctrica."1
La mayoría de las impresoras 3D incluyen un lugar para almacenamiento de bit (512K, 3K o más) llamado EEPROM (Electrically Erasable Programmable Read-Only Memory ) que persiste cuando la energía está apagada. Marlin utiliza la EEPROM para almacenar la configuración de la impresora y la carga la próxima vez que se encienda la máquina. Cambiar el código fuente y volver a cargar el firmware no cambian el contenido de la EEPROM (a menos que haya un nuevo identificador de versión EEPROM indicando que ha cambiado la organización general de la EEPROM).



¿Por qué debemos borrar la EEPROM?
Muchas veces cuando cargas el Marlin se quedan algunos datos en la EEPROM produciéndose cosas extrañas en la impresora "enanitos verdes, les llamo yo", a pesar de cargar el Marlin  una y otra vez no funciona  correctamente. Cargas el Marlin, pero quedan los datos de configuración en la EEPROM.
En mi caso la impresora Delta Plus de Anycubic  no  lograba hacer plana la cama con el parámetro delta_smooth a pesar que lo modificaba y volvía a cargar el Marlin.
Por sugerencia de un amigo del grupo de Anycubic "Héctor" me recomendó "borra la EEPROM y verás como se soluciona". Eso hice y la verdad que tenía razón.

El método que usé fue el siguiente.
Abrí el programa Arduino y seguí la siguiente ruta:
file/Examples/EEPROM/eeprom_clear
Esto borra la EEPROM y carga el nuevo programa sustituyendo al Marlin, por lo que tendremos que reinstalar el Marlin de nuevo.
Nota: "Hay que tener en cuenta que las EEPROM tiene un tiempo limitado de vida, es decir, las veces que se pueden reprogramar puede ser de cientos o miles de veces, pero no son infinitas."


Método gcode
Algunas placas ya viene habilitada esta opción y no es necesario modificar el código Marlin. La trigorilla parece que es una de ellas.
Si no viene habilitada estas funciones en la placa deberás modificar el Marlin de la siguiente manera. Dos opciones: 
1) // Linea comentada , desactiva la función. Si comentas la línea, esta opción no se activa, y es como si no existiese. Comentar es colocarle "//" ya que normalmente en programación se agregan comentarios después de la "//" para que el mismo programador o cualquiera que lea tú código se entere lo que estás haciendo.
2) Linea no comentada , activada la función. Si quitas las dos barras del principio //, entonces la opción está activa.
Este método se usa en el entorno Arduino de programación y en otros lenguajes.

Deberás abrir el programa Arduino y en la pestaña o sketch  "confguration.h" del Marlin, aparecerá el siguiente código
------------------------------------------------------------------------------------------------------------
// EEPROM
//
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores parameters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
//define this to enable EEPROM support
#define EEPROM_SETTINGS

#if ENABLED(EEPROM_SETTINGS)
  // To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
  #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
---------------------------------------------------------------------------------------------------------------------
Códigos Marlin para usar con la EEPROM
 * M500 - Store parameters in EEPROM. (Requires EEPROM_SETTINGS)
 * M501 - Restore parameters from EEPROM. (Requires EEPROM_SETTINGS)
 * M502 - Revert to the default "factory settings". ** Does not write them to EEPROM! **
 * M503 - Print the current settings (in memory): "M503 S<verbose>". S0 specifies compact

Webgrafía


Comentarios

  1. ne habilitada estas funciones en la placa deberás modificar el Marlin de la siguiente manera. Dos opciones:
    1) // Linea comentada , desactiva la fu https://coaching-mastery.com/emuladores-3ds-para-pc/

    ResponderEliminar

Publicar un comentario