debugWIRE es un protocolo de comunicación serie, diseñado por Atmel . Se utiliza para la depuración en chip de microcontroladores AVR .
Protocolo
debugWIRE está diseñado como una alternativa más simple a JTAG , dirigida a microcontroladores (MCU) con recursos limitados. Es compatible con el clásico ATtiny y algunos microcontroladores ATmega más pequeños, como el ATmega328 . Al usar debugWIRE, se tiene acceso completo de lectura y escritura a toda la memoria y control total sobre el flujo de ejecución. Admite instrucciones de paso a paso, ejecución hasta el cursor, salida de paso y interrupción por software. Un punto de interrupción (ejecución hasta el cursor) se establecerá reprogramando el código de operación BREAK [ 1 ] en la memoria flash del MCU. Se debe tener cuidado debido al número limitado de ciclos de escritura garantizados (10000) del dispositivo. [ 2 ] Para evitar reprogramar la memoria flash, use paso a paso o ejecución hasta el cursor, que usarán un único punto de interrupción de hardware.
Modelos de programadores
debugWIRE es compatible con todos los depuradores de hardware modernos de Microchip . Esto incluye Atmel-ICE, [ 3 ] JTAGICE3, AVR Dragon, JTAGICE mkII y SNAP. [ 4 ] También es posible construir un depurador de hardware debugWIRE económico [ 5 ] basado en un boceto de Arduino de código abierto , [ 6 ] utilizando un adaptador USB-Serial general o una placa ATtiny85, [ 7 ] o un microcontrolador CH552. [ 8 ]
Especificaciones de debugWIRE
debugWIRE se activa configurando (programando a cero) el fusible DWEN (habilitación de debugWIRE), normalmente ubicado en el byte alto del fusible. Después de esta acción, la función del pin /RESET ya no está disponible y el protocolo ISP no se puede utilizar. debugWIRE se puede deshabilitar con cualquiera de los depuradores mencionados enviando un comando de reinicio especial que deshabilita temporalmente la función debugWIRE y vuelve a habilitar /RESET y también ISP hasta el siguiente ciclo de apagado. debugWIRE no puede programar los fusibles de un dispositivo. Si desea deshabilitar debugWIRE permanentemente, debe deshabilitar la función temporalmente y programar el fusible utilizando la función ISP ahora disponible. [ 9 ] debugWIRE utiliza una conexión serie de drenaje abierto de 1 cable . La velocidad de transmisión predeterminada utilizada es el reloj del MCU/128. Enviar un BREAK devolverá 0x55 que se utiliza para detectar la velocidad de transmisión. El MCU devolverá un BREAK cuando se alcance un punto de interrupción o se detecte una colisión en la conexión debugWIRE. 0x06 se usa para deshabilitar debugWIRE y volver a habilitar /RESET e ISP, 0x07 reinicia el MCU, 0xF0 devuelve el PC, 0xF3 el ID de debugWIRE. [ 10 ] [ 11 ] [ 12 ]
Referencias
- ↑ Manual de instrucciones del AVR
- ↑ Resumen de la hoja de datos de ATtiny25-ATtiny45-ATtiny85.pdf
- ↑ Atmel-ICE
- ↑ Depurador en circuito MPLAB SNAP
- ↑ Un depurador de hardware debugWIRE por menos de 10 €
- ↑ dw-link---Un depurador debugWIRE basado en Arduino
- ↑ dwire-debug
- ↑ Paquete de placas Arduino para depurar Uno/ATmega328P con el depurador CH552 en Arduino IDE 2.0.0
- ↑ Artículo de debugWIRE (en alemán)
- ↑ El protocolo debugWIRE
- ↑ Depurador debugWIRE sencillo e independiente (código abierto)
- ↑ Microchip Makes (25 de noviembre de 2015). "Depuración avanzada con placas Arduino" – vía YouTube.
- Autobuses en serie
- Depuración