{"id":2482,"date":"2026-09-02T21:19:12","date_gmt":"2026-09-03T03:19:12","guid":{"rendered":"https:\/\/sbcgroup.com.mx\/?p=2482"},"modified":"2026-09-02T21:19:13","modified_gmt":"2026-09-03T03:19:13","slug":"verificacion-post-programacion-ics-crc-readback","status":"publish","type":"post","link":"https:\/\/sbcgroup.com.mx\/en\/2026\/09\/02\/verificacion-post-programacion-ics-crc-readback\/","title":{"rendered":"How to Validate Firmware and Configuration After Programming an IC"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Validaci\u00f3n Firmware y Configuraci\u00f3n Despu\u00e9s de Programar un IC<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En una estaci\u00f3n de programaci\u00f3n, la palabra <strong>PASS<\/strong> suele interpretarse como una confirmaci\u00f3n definitiva: el firmware fue cargado y el circuito integrado est\u00e1 listo para producci\u00f3n. Sin embargo, ese resultado s\u00f3lo demuestra que la receta ejecut\u00f3 determinados pasos sin detectar una condici\u00f3n de falla. No necesariamente confirma que se utiliz\u00f3 la imagen correcta, que el mapa de memoria fue interpretado correctamente, que los fuses quedaron en el estado esperado o que el dispositivo podr\u00e1 arrancar cuando se retire el programador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La verificaci\u00f3n post-programaci\u00f3n debe responder una pregunta m\u00e1s amplia: <strong>\u00bfesta unidad contiene el firmware, la identidad y la configuraci\u00f3n correctos, y puede cumplir su funci\u00f3n m\u00ednima en condiciones reales de arranque?<\/strong> Para contestarla se combinan m\u00e9todos con coberturas diferentes: verify durante el proceso, readback, checksum, CRC, hash criptogr\u00e1fico, firma digital, lectura de configuraci\u00f3n y prueba funcional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ning\u00fan m\u00e9todo individual cubre todos los riesgos. Una comparaci\u00f3n byte a byte puede confirmar contenido, pero no demuestra que la unidad arranque. Un CRC puede detectar cambios con rapidez, pero no autentica al autor del firmware. Una prueba funcional puede confirmar comunicaci\u00f3n y consumo, aunque podr\u00eda ejecutarse sobre una revisi\u00f3n equivocada si no se valida el identificador de la imagen. El control de calidad surge de la combinaci\u00f3n de capas independientes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programar no es validar: qu\u00e9 puede ocultar un \u201cPASS\u201d<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-1024x576.webp\" alt=\"Infograf\u00eda que explica por qu\u00e9 un PASS de programaci\u00f3n no garantiza la validaci\u00f3n completa del IC.\" class=\"wp-image-2474\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_1_programar_no_validar-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">El primer riesgo es la <strong>referencia equivocada<\/strong>. El archivo puede ser t\u00e9cnicamente v\u00e1lido y programarse sin errores, pero corresponder a otra revisi\u00f3n de hardware, mercado o variante de producto. La estaci\u00f3n informar\u00e1 PASS porque escribi\u00f3 exactamente lo que se le solicit\u00f3; el defecto est\u00e1 en la selecci\u00f3n de la receta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El segundo riesgo es una <strong>interpretaci\u00f3n compartida incorrecta<\/strong>. Keysight documenta que las rutinas de Program y Verify pueden utilizar el mismo registro de datos. Si ambas interpretan de manera equivocada la fuente, el verify puede aprobar un contenido incorrecto. La compa\u00f1\u00eda recomienda un CRC independiente del registro de programaci\u00f3n, siempre que el valor de referencia provenga de una unidad conocida como correcta.[<a href=\"https:\/\/docs.keysight.com\/kkbopen\/how-does-the-flash-ram-program-test-verify-test-and-crc-tests-interact-589308836.html\" target=\"_blank\" rel=\"noopener noreferrer\">1<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puede existir un <strong>alcance incompleto<\/strong>. Una operaci\u00f3n verifica solamente las direcciones presentes en el archivo, pero deja sin revisar otras regiones del dispositivo. All\u00ed podr\u00edan permanecer datos de una programaci\u00f3n anterior, valores de calibraci\u00f3n incorrectos o contenido inesperado. En otros casos, el firmware se compara correctamente, pero los option bytes, fuses, lock bits o p\u00e1ginas OTP quedan fuera de la validaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Modo de falla oculto<\/th><th>Por qu\u00e9 puede existir un PASS<\/th><th>Control complementario<\/th><\/tr><\/thead><tbody><tr><td>Revisi\u00f3n de firmware equivocada<\/td><td>La imagen es grabable y coincide con el archivo seleccionado<\/td><td>Validar n\u00famero de parte, variante y manifiesto de liberaci\u00f3n<\/td><\/tr><tr><td>Offset o mapa mal interpretado<\/td><td>Program y Verify comparten la misma fuente incorrecta<\/td><td>CRC o hash independiente y prueba de arranque<\/td><\/tr><tr><td>Datos residuales fuera de la imagen<\/td><td>Verify cubre s\u00f3lo los rangos definidos<\/td><td>CRC del dispositivo completo o lectura de regiones reservadas<\/td><\/tr><tr><td>Fuses u option bytes incorrectos<\/td><td>La Flash principal coincide<\/td><td>Readback de configuraci\u00f3n despu\u00e9s de power cycle<\/td><\/tr><tr><td>Lock bit no aplicado<\/td><td>El contenido es correcto pero queda expuesto<\/td><td>Lectura final del estado de protecci\u00f3n<\/td><\/tr><tr><td>Problema de arranque o alimentaci\u00f3n<\/td><td>La interfaz de programaci\u00f3n mantiene condiciones especiales<\/td><td>Prueba funcional sin depurador y con reset real<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 comprueba cada m\u00e9todo de verificaci\u00f3n<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-1024x576.webp\" alt=\"Comparaci\u00f3n de firmware maestro y readback de un IC con resultado CRC MATCH en una estaci\u00f3n de programaci\u00f3n.\" class=\"wp-image-2472\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_2_readback_crc-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Los t\u00e9rminos verify, readback, checksum, CRC y hash suelen usarse como si fueran equivalentes. No lo son. Cada uno transforma el problema de validaci\u00f3n de forma diferente, con distintas probabilidades de detectar un error, necesidades de tiempo y propiedades de seguridad.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verify durante la programaci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El verify tradicional lee cada celda, palabra o bloque y lo compara con el archivo objeto. Es la comprobaci\u00f3n m\u00e1s directa para detectar bytes diferentes dentro del rango programado. PEmicro describe esta comparaci\u00f3n byte a byte como el mecanismo habitual y diferencia esa verificaci\u00f3n de los m\u00e9todos basados en CRC.[<a href=\"https:\/\/www.pemicro.com\/blog\/index.cfm?post_id=197\" target=\"_blank\" rel=\"noopener noreferrer\">2<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su principal fortaleza es la localizaci\u00f3n: puede indicar la direcci\u00f3n exacta del primer mismatch. Su l\u00edmite es el alcance definido por la receta. Si el proyecto omite una regi\u00f3n o espera err\u00f3neamente datos en otra direcci\u00f3n, el verify no corrige ese error de ingenier\u00eda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Readback<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El readback extrae el contenido del IC y lo guarda o transmite para an\u00e1lisis independiente. Puede compararse con la imagen maestra, utilizarse para investigar una unidad fallada o conservarse como evidencia de primera pieza. Su ventaja es separar la adquisici\u00f3n del an\u00e1lisis; su costo es el tiempo de lectura y el manejo seguro de informaci\u00f3n sensible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El readback no siempre est\u00e1 disponible. La protecci\u00f3n de lectura puede bloquearlo despu\u00e9s de aplicar lock bits y algunos dispositivos s\u00f3lo permiten acceder a zonas concretas. Por ello, si el plan requiere evidencia de lectura, debe ejecutarse <strong>antes<\/strong> de la protecci\u00f3n irreversible. Adem\u00e1s, los archivos extra\u00eddos deben controlarse como propiedad intelectual y eliminarse de estaciones temporales cuando termina el an\u00e1lisis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checksum y CRC<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un checksum aritm\u00e9tico resume los datos mediante una operaci\u00f3n sencilla. Puede detectar muchos errores comunes, pero ofrece menos capacidad de detecci\u00f3n que un CRC bien seleccionado. El <strong>CRC<\/strong> aplica una divisi\u00f3n polin\u00f3mica y est\u00e1 dise\u00f1ado para identificar alteraciones accidentales, incluidos patrones de errores en r\u00e1faga. Para que el resultado sea comparable, deben coincidir el polinomio, valor inicial, reflexi\u00f3n, XOR final, rango de direcciones y orden de bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PEmicro documenta verificaciones CRC-16 sobre las direcciones presentes en el archivo y sobre el dispositivo completo. La segunda puede detectar contenido inesperado incluso en regiones no programadas por el objeto. Tambi\u00e9n puede ser m\u00e1s r\u00e1pida que una comparaci\u00f3n byte a byte cuando el enlace de depuraci\u00f3n es lento.[<a href=\"https:\/\/www.pemicro.com\/blog\/index.cfm?post_id=197\" target=\"_blank\" rel=\"noopener noreferrer\">2<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un CRC no prueba autenticidad y tampoco es invulnerable a una modificaci\u00f3n deliberada. Su valor en producci\u00f3n es detectar corrupci\u00f3n accidental de manera eficiente. El valor esperado debe calcularse desde el artefacto maestro aprobado; \u201caprender\u201d el CRC de una unidad no validada puede convertir un defecto en nueva referencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hash criptogr\u00e1fico y firma digital<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un hash como SHA-256 genera un digest que cambia cuando se modifica el mensaje. NIST FIPS 180-4 define algoritmos hash seguros cuyos digests se utilizan para detectar si los mensajes han cambiado desde que fueron calculados.[<a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/180-4\/upd1\/final\" target=\"_blank\" rel=\"noopener noreferrer\">3<\/a>] En un proceso de manufactura, el hash puede vincular el archivo liberado, la receta del programador y el contenido le\u00eddo del dispositivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El hash confirma igualdad contra una referencia confiable, pero no acredita qui\u00e9n autoriz\u00f3 la imagen. La firma digital a\u00f1ade autenticaci\u00f3n del origen, integridad y no repudio cuando se implementa correctamente, seg\u00fan la definici\u00f3n de NIST.[<a href=\"https:\/\/csrc.nist.gov\/glossary\/term\/digital_signature\" target=\"_blank\" rel=\"noopener noreferrer\">4<\/a>] Por ello, CRC y hash atienden principalmente integridad; la firma digital atiende integridad y autenticidad.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-1024x576.webp\" alt=\"Comparativa t\u00e9cnica de Verify, Readback, Checksum, CRC, SHA-256 y firma digital para validar firmware.\" class=\"wp-image-2475\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_2_metodos_comparativa-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>M\u00e9todo<\/th><th>Qu\u00e9 comprueba<\/th><th>Fortaleza<\/th><th>L\u00edmite principal<\/th><\/tr><\/thead><tbody><tr><td>Verify<\/td><td>Igualdad byte a byte en rangos definidos<\/td><td>Localiza la direcci\u00f3n de la diferencia<\/td><td>Depende de que archivo, offset y rango sean correctos<\/td><\/tr><tr><td>Readback<\/td><td>Contenido realmente legible del IC<\/td><td>Permite an\u00e1lisis independiente<\/td><td>Puede bloquearse por seguridad y expone IP<\/td><\/tr><tr><td>Checksum<\/td><td>Resumen aritm\u00e9tico<\/td><td>Simple y r\u00e1pido<\/td><td>Menor capacidad de detecci\u00f3n<\/td><\/tr><tr><td>CRC<\/td><td>Corrupci\u00f3n accidental en un rango definido<\/td><td>Buena detecci\u00f3n y ejecuci\u00f3n eficiente<\/td><td>No autentica el origen<\/td><\/tr><tr><td>SHA-256<\/td><td>Integridad contra un digest maestro<\/td><td>Resistencia criptogr\u00e1fica<\/td><td>Sin firma no prueba autor\u00eda<\/td><\/tr><tr><td>Firma digital<\/td><td>Integridad y autenticidad del origen<\/td><td>Permite cadena de confianza<\/td><td>Exige gesti\u00f3n segura de llaves<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Validaci\u00f3n de fuses, option bytes, lock bits y datos \u00fanicos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-1024x576.webp\" alt=\"Secuencia correcta para programar y verificar fuses, option bytes y lock bits antes de proteger un IC.\" class=\"wp-image-2476\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_3_configuracion_secuencia-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">El firmware no es la \u00fanica informaci\u00f3n que define el comportamiento de un IC. En diferentes familias, la configuraci\u00f3n no vol\u00e1til puede seleccionar la fuente de reloj, el watchdog, el modo de arranque, la protecci\u00f3n de lectura, la protecci\u00f3n de escritura, el brownout, el debug y la distribuci\u00f3n de memoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ST explica que los option bytes se encuentran en una regi\u00f3n diferente de la Flash de usuario y pueden cargarse despu\u00e9s de un power-on reset o mediante un mecanismo espec\u00edfico. Un reset de software o la se\u00f1al NRST no necesariamente hace efectivos los nuevos valores. La validaci\u00f3n debe leer la configuraci\u00f3n cargada en el dispositivo, no limitarse a confirmar que termin\u00f3 la escritura.[<a href=\"https:\/\/community.st.com\/stm32-mcus-60\/what-option-bytes-in-stm32-are-and-how-to-use-them-81\" target=\"_blank\" rel=\"noopener noreferrer\">5<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microchip se\u00f1ala que los fuses AVR definen configuraciones de hardware como reloj, watchdog y debug; una selecci\u00f3n incorrecta puede dejar al MCU no programable o no depurable en la aplicaci\u00f3n. Tambi\u00e9n advierte que ciertos lock bits impiden modificar los fuses, por lo que el orden correcto es programar y verificar la configuraci\u00f3n antes de aplicar el bloqueo.[<a href=\"https:\/\/developerhelp.microchip.com\/xwiki\/bin\/view\/products\/mcu-mpu\/8-bit-avr\/structure\/fuses\/\" target=\"_blank\" rel=\"noopener noreferrer\">6<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La misma disciplina aplica a n\u00fameros de serie, direcciones MAC, certificados, llaves y calibraciones. Cada valor debe tener un origen autorizado, un rango v\u00e1lido y una relaci\u00f3n inequ\u00edvoca con la unidad. La estaci\u00f3n debe verificar que el identificador no est\u00e9 duplicado, que la escritura ocurra en la direcci\u00f3n prevista y que el readback coincida antes de confirmar el consumo del valor en la base de datos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prueba funcional m\u00ednima despu\u00e9s de programar<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-1024x576.webp\" alt=\"Prueba funcional post-programaci\u00f3n con reset, arranque, comunicaci\u00f3n UART y medici\u00f3n de corriente.\" class=\"wp-image-2473\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/portada_verif_3_prueba_funcional_boot-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La prueba funcional no pretende sustituir al ICT, al test de sistema ni a la validaci\u00f3n de dise\u00f1o. Su objetivo es demostrar que el IC programado inicia en condiciones representativas y que las funciones esenciales para continuar la manufactura est\u00e1n disponibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El primer paso es retirar las condiciones especiales de programaci\u00f3n. El depurador debe liberar reset, los boot pins deben adoptar su estado de producto y la alimentaci\u00f3n debe ciclarse cuando la configuraci\u00f3n se carga en power-on. Esto evita aprobar una unidad que s\u00f3lo funciona mientras el programador sostiene una se\u00f1al o mantiene activo un dominio de energ\u00eda.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-1024x576.webp\" alt=\"Diagrama de la prueba funcional m\u00ednima despu\u00e9s de programar un microcontrolador en producci\u00f3n.\" class=\"wp-image-2477\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_4_prueba_funcional_minima-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Prueba m\u00ednima<\/th><th>Qu\u00e9 confirma<\/th><th>Ejemplo de criterio<\/th><\/tr><\/thead><tbody><tr><td>Reset \/ power cycle<\/td><td>Secuencia real de arranque y carga de configuraci\u00f3n<\/td><td>Arranque limpio en cada uno de tres ciclos<\/td><\/tr><tr><td>Identidad de firmware<\/td><td>Versi\u00f3n, variante y compilaci\u00f3n correctas<\/td><td>Respuesta exacta del comando de versi\u00f3n<\/td><\/tr><tr><td>Comunicaci\u00f3n b\u00e1sica<\/td><td>CPU, reloj, firmware y transceptor funcionales<\/td><td>Handshake por UART, CAN, USB o Ethernet<\/td><\/tr><tr><td>Corriente<\/td><td>Ausencia de corto, bloqueo o modo incorrecto<\/td><td>Ventana definida para reposo y actividad<\/td><\/tr><tr><td>Memoria y configuraci\u00f3n<\/td><td>Acceso a Flash\/EEPROM y par\u00e1metros v\u00e1lidos<\/td><td>Autoprueba o lectura de firma interna<\/td><\/tr><tr><td>Perif\u00e9rico cr\u00edtico<\/td><td>Camino indispensable para la siguiente estaci\u00f3n<\/td><td>Sensor, salida, radio o interfaz de seguridad<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Los l\u00edmites deben definirse por producto y validarse estad\u00edsticamente; no conviene copiar una ventana de corriente gen\u00e9rica. Una medici\u00f3n demasiado amplia no detectar\u00e1 anomal\u00edas y una demasiado estrecha puede rechazar variaci\u00f3n normal de componentes, temperatura o tolerancia de la fuente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resultados y trazabilidad: qu\u00e9 registrar<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-1024x576.webp\" alt=\"Registros de trazabilidad por unidad, lote y revisi\u00f3n para la verificaci\u00f3n de ICs programados.\" class=\"wp-image-2478\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_5_trazabilidad_registros-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">El registro de un PASS debe permitir reconstruir qu\u00e9 ocurri\u00f3 sin depender de la memoria del operador. IPC identifica IPC-1782 como el est\u00e1ndar de trazabilidad para manufactura y cadena de suministro de productos electr\u00f3nicos.[<a href=\"https:\/\/www.electronics.org\/digital-manufacturing\" target=\"_blank\" rel=\"noopener noreferrer\">7<\/a>] El nivel de detalle requerido depende del riesgo del producto, pero la asociaci\u00f3n entre unidad, proceso y resultado debe ser inequ\u00edvoca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por unidad, conviene registrar el UID o serial, n\u00famero de parte y revisi\u00f3n del IC, JEDEC ID o device ID, nombre y hash de la imagen, receta y versi\u00f3n del algoritmo, valores de configuraci\u00f3n, seriales o calibraciones inyectadas, resultado de verify, CRC o hash le\u00eddo, resultado funcional, c\u00f3digo de falla, equipo, fixture, operador o sesi\u00f3n autorizada y sello de tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lote deben conservarse la orden de trabajo, lote del semiconductor, cantidad recibida, programada, aprobada, rechazada y pendiente, cambios de receta, primera pieza, golden sample utilizada y liberaci\u00f3n de calidad. El registro debe ser inmutable o mantener historial de cambios; corregir un dato no debe eliminar el valor anterior ni la identidad de quien realiz\u00f3 la modificaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gesti\u00f3n de fallas, cuarentena y l\u00edmites de reprogramaci\u00f3n<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-1024x576.webp\" alt=\"Flujo de cuarentena, diagn\u00f3stico y retrabajo para fallas detectadas despu\u00e9s de programar un IC.\" class=\"wp-image-2479\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_6_gestion_fallas-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Una unidad con mismatch, configuraci\u00f3n inesperada o falla funcional no debe volver autom\u00e1ticamente al inicio del ciclo. El reintento indiscriminado puede convertir una falla intermitente de fixture en un PASS aparente, borrar evidencia diagn\u00f3stica o consumir ciclos de escritura sin resolver la causa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El flujo correcto comienza con <strong>cuarentena f\u00edsica y l\u00f3gica<\/strong>. Deben preservarse el c\u00f3digo de error, el paso donde ocurri\u00f3, voltajes, corriente, readback permitido, n\u00famero de socket y estado del fixture. Despu\u00e9s se clasifica la causa probable: archivo o receta, dispositivo, contacto mec\u00e1nico, alimentaci\u00f3n, integridad de se\u00f1al, bloqueo de seguridad o falla del ensamble.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La reprogramaci\u00f3n puede autorizarse cuando el dispositivo permanece accesible, no se aplicaron protecciones irreversibles, los datos \u00fanicos no han sido consumidos de forma inconsistente y el l\u00edmite de retrabajo est\u00e1 definido. Debe prohibirse cuando exista identidad duplicada, evidencia de da\u00f1o el\u00e9ctrico, lock irreversible incorrecto o trazabilidad incompleta. Cada retrabajo debe crear un nuevo evento, nunca sustituir el registro original.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplo de plan de control para un lote de producci\u00f3n<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-1024x576.webp\" alt=\"Ejemplo de plan de control para un lote de circuitos integrados programados y verificados.\" class=\"wp-image-2480\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_7_plan_control_lote-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">El siguiente ejemplo presenta una estructura adaptable para un lote de microcontroladores con firmware, option bytes y serializaci\u00f3n. No reemplaza el datasheet, la especificaci\u00f3n del producto ni el plan de calidad aprobado.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Etapa<\/th><th>Caracter\u00edstica<\/th><th>M\u00e9todo<\/th><th>Frecuencia<\/th><th>Reacci\u00f3n ante falla<\/th><\/tr><\/thead><tbody><tr><td>Liberaci\u00f3n<\/td><td>Archivo, versi\u00f3n y SHA-256<\/td><td>Comparar contra manifiesto firmado<\/td><td>Cada revisi\u00f3n<\/td><td>Bloquear receta<\/td><\/tr><tr><td>Setup<\/td><td>Dispositivo, algoritmo y voltaje<\/td><td>Leer device ID y validar receta<\/td><td>Cada cambio de lote o setup<\/td><td>STOP y revisi\u00f3n de ingenier\u00eda<\/td><\/tr><tr><td>Primera pieza<\/td><td>Flash, configuraci\u00f3n y arranque<\/td><td>Verify completo, readback, hash y prueba funcional<\/td><td>Primera unidad y despu\u00e9s de ajuste<\/td><td>Cuarentena del setup completo<\/td><\/tr><tr><td>Producci\u00f3n<\/td><td>Contenido programado<\/td><td>Verify byte a byte o CRC aprobado<\/td><td>100% de unidades<\/td><td>Segregar unidad y socket<\/td><\/tr><tr><td>Producci\u00f3n<\/td><td>Fuses, option bytes y serial<\/td><td>Lectura posterior y comparaci\u00f3n<\/td><td>100% de unidades<\/td><td>Bloquear retrabajo autom\u00e1tico<\/td><\/tr><tr><td>Funcional<\/td><td>Reset, versi\u00f3n, comunicaci\u00f3n y corriente<\/td><td>Fixture de prueba m\u00ednima<\/td><td>100% o frecuencia basada en riesgo<\/td><td>Cuarentena y diagn\u00f3stico<\/td><\/tr><tr><td>Auditor\u00eda<\/td><td>Contenido fuera del rango de imagen<\/td><td>CRC del dispositivo completo o readback<\/td><td>Muestreo por lote y cambio<\/td><td>Contenci\u00f3n del lote<\/td><\/tr><tr><td>Cierre<\/td><td>Balance y registros<\/td><td>Reconciliaci\u00f3n MES<\/td><td>Cada lote<\/td><td>No liberar embarque<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En productos cr\u00edticos, los cambios de firmware, algoritmo, fixture, socket o fuente de alimentaci\u00f3n deben disparar una nueva primera pieza. Las tendencias de fallas por socket y por estaci\u00f3n tambi\u00e9n deben revisarse: una tasa creciente de retries puede anticipar desgaste antes de que aparezcan rechazos permanentes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Una estrategia de validaci\u00f3n por capas<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-1024x576.webp\" alt=\"Modelo de validaci\u00f3n post-programaci\u00f3n en cinco capas para reducir falsos resultados PASS.\" class=\"wp-image-2481\" srcset=\"https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-1024x576.webp 1024w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-300x169.webp 300w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-768x432.webp 768w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-1536x864.webp 1536w, https:\/\/sbcgroup.com.mx\/wp-content\/uploads\/2026\/09\/contenido_verif_8_validacion_capas-2048x1152.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La forma m\u00e1s robusta de evitar unidades \u201caparentemente programadas\u201d es separar las preguntas de calidad. Primero se confirma la identidad del IC. Despu\u00e9s se verifica el contenido dentro y fuera de los rangos relevantes. Luego se leen la configuraci\u00f3n y los datos \u00fanicos. Finalmente se prueba el comportamiento despu\u00e9s de un reset real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta independencia reduce los puntos ciegos. Si Program y Verify comparten una interpretaci\u00f3n err\u00f3nea, un hash independiente o el boot test puede detectar la discrepancia. Si el contenido es correcto pero los fuses son incorrectos, la lectura posterior y el power cycle revelan el problema. Si todos los valores son correctos pero el hardware no inicia, la prueba funcional evita que la unidad avance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo no es acumular pruebas por rutina, sino dise\u00f1ar una cobertura proporcional al riesgo, con referencias maestras controladas, l\u00edmites claros y una reacci\u00f3n definida. En producci\u00f3n electr\u00f3nica, <strong>la calidad del firmware no termina al escribir el \u00faltimo byte; termina cuando la unidad demuestra que contiene, protege y ejecuta la configuraci\u00f3n correcta<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conoce m\u00e1s<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/seguridad-de-firmware-en-manufactura-proteccion-de-propiedad-intelectual\/\">Seguridad de Firmware en Manufactura: Protecci\u00f3n de Propiedad Intelectual<\/a>.<\/li>\n\n\n\n<li><a href=\"\/serializacion-de-ics-trazabilidad-y-control-en-manufactura-electronica\/\">Serializaci\u00f3n de ICs: Trazabilidad y Control en Manufactura Electr\u00f3nica<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/180-4\/upd1\/final\" target=\"_blank\" rel=\"noopener noreferrer\">NIST FIPS 180-4: Secure Hash Standard<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.pemicro.com\/blog\/index.cfm?post_id=197\" target=\"_blank\" rel=\"noopener noreferrer\">PEmicro: Verify a Programmed Device via Checksum<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.electronics.org\/digital-manufacturing\" target=\"_blank\" rel=\"noopener noreferrer\">Global Electronics Association: IPC-1782 y manufactura digital<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Referencias<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.keysight.com\/kkbopen\/how-does-the-flash-ram-program-test-verify-test-and-crc-tests-interact-589308836.html\" target=\"_blank\" rel=\"noopener noreferrer\">Keysight \u2014 How do the Flash RAM Program, Verify and CRC tests interact?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.pemicro.com\/blog\/index.cfm?post_id=197\" target=\"_blank\" rel=\"noopener noreferrer\">PEmicro \u2014 Verify a Programmed Device via Checksum<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/180-4\/upd1\/final\" target=\"_blank\" rel=\"noopener noreferrer\">NIST \u2014 FIPS 180-4 Secure Hash Standard<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/csrc.nist.gov\/glossary\/term\/digital_signature\" target=\"_blank\" rel=\"noopener noreferrer\">NIST CSRC \u2014 Digital Signature Glossary<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/community.st.com\/stm32-mcus-60\/what-option-bytes-in-stm32-are-and-how-to-use-them-81\" target=\"_blank\" rel=\"noopener noreferrer\">STMicroelectronics \u2014 What option bytes in STM32 are, and how to use them<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developerhelp.microchip.com\/xwiki\/bin\/view\/products\/mcu-mpu\/8-bit-avr\/structure\/fuses\/\" target=\"_blank\" rel=\"noopener noreferrer\">Microchip \u2014 8-bit AVR Microcontrollers Fuses<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.electronics.org\/digital-manufacturing\" target=\"_blank\" rel=\"noopener noreferrer\">Global Electronics Association \u2014 Digital Manufacturing and IPC-1782<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Programming an IC does not equate to validating its functionality. This guide compares verify, readback, checksum, CRC, hash, and digital signature, and explains how to check fuses, option bytes, serials, and the actual boot process using a minimal functional test.<\/p>","protected":false},"author":1,"featured_media":2471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[46],"tags":[321,259,281,320],"class_list":["post-2482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programing","tag-crc","tag-firmware","tag-programacion-ics","tag-verificacion"],"_links":{"self":[{"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/posts\/2482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/comments?post=2482"}],"version-history":[{"count":1,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/posts\/2482\/revisions"}],"predecessor-version":[{"id":2483,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/posts\/2482\/revisions\/2483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/media\/2471"}],"wp:attachment":[{"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/media?parent=2482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/categories?post=2482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sbcgroup.com.mx\/en\/wp-json\/wp\/v2\/tags?post=2482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}