Estoy trabajando en una aplicación que involucra chips flash NOR. Tuve que cambiar chips a la mitad del proceso de diseño. Las diferencias indicadas entre los chips nuevos y antiguos son solo 'ID de dispositivo' y 'tiempo de borrado de sector'. Pensé que podría arreglármelas sin volver a escribir mi controlador flash dadas las pequeñas diferencias, pero el controlador del chip antiguo no funciona con el nuevo.
¿Por qué el tiempo de borrado de sectores es tan importante para el conductor? ¿Cómo lo cambio?
El tiempo de borrado del sector es importante para cualquier controlador porque es un poco de tiempo necesario para usar el chip correctamente. Los chips flash tienen tiempos de borrado , que es el tiempo que se debe aplicar el voltaje de borrado especial a las celdas para garantizar que se borren. Si no se cumple este tiempo mínimo, es posible que las celdas no se borren por completo, lo que en efecto es un error de datos.
Algunos chips también pueden tener un tiempo de borrado máximo. Algunos chips requieren que el hardware externo realice el tiempo de borrado, otros realizan el tiempo interno y establecen un bit de estado cuando se completa el borrado. En ese caso, un controlador tendría que esperar el tiempo de borrado máximo posible o sondear el bit para asegurarse de que el borrado se haya completado antes de continuar con otras operaciones.
Al igual que con cualquier especificación, violarla significa que ya no se puede confiar en ninguno de los otros parámetros. Si este chip cronometra automáticamente el borrado y establece un bit cuando se completa y el controlador existente sondea este bit para determinar la finalización del borrado, entonces no debería ser necesaria ninguna modificación en el controlador.
En cualquier caso, pensar que puede "arreglárselas" violando una especificación solo porque está un poco fuera de lugar es una práctica muy, muy mala y debería avergonzarse de sí mismo por siquiera considerarlo.
No ha mencionado ningún número de pieza, pero los fabricantes de chips flash han cambiado con el tiempo varios pequeños detalles sobre cómo funcionan sus chips. Es posible que su controlador tenga un código que use la identificación del dispositivo, algo así como "Si ID = esto, use un nuevo método, de lo contrario, use un método". Si el chip anterior requería un "método nuevo" y el nuevo chip tiene una ID diferente pero también requiere un "método nuevo", el código no funcionará porque intentará usar el "método antiguo". También es posible que su código dependa de algún detalle de cómo el dispositivo informa cuando está listo. En algunos dispositivos antiguos, si uno estaba registrando datos y se detenía cuando el dispositivo informaba su estado "listo", el valor informado cambiaría de forma asíncrona cuando el dispositivo finalizaba la operación en curso. En los dispositivos más nuevos,
EnojadoEE
darrón