AVR应用笔记 AVR单片机内核剖析 ATmega168 片上调试系统

ATmega168 片上调试系统

以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!

特性


* 完全的程序流控制
* 仿真芯片上所有的模拟和数字功能,除了RESET引脚
* 实时操作
* 支持符号调试(C 与汇编级,或其它 HLL)
* 没有限制的程序断点数( 使用软件断点)
* 非插入式操作
* 与实际器件相同的电气特性
* 自动配置系统
* 高速操作
* 编程非易失性存储器

概述


debugWIRE片上调试系统使用单线双向接口来控制程序流,在CPU中执行AVR指令,对 不同的非易失性存储器进行编程。

物理接口


当ATmega168的debugWIRE使能熔丝位DWEN被编程且锁定位未编程时,目标器件中的debugWIRE 系统被激活。RESET 端口引脚配置为上拉使能的线与 ( 开漏 ) 双向 I/O,成为目标与仿真 器间的联系通路。

mega168 debugWIRE设置

Figure114 给出 debugWIRE 使能的目标 MCU 及仿真连接器的示意图。系统时钟不受 debugWIRE 的影响,只由 CKSEL 熔丝位决定。
设计使用 debugWIRE 的系统时,必须进行下面的检查:
* dW/(RESET) 的上拉电阻不得小于 10k 。 debugWIRE 并不需要上拉电阻
* 将 RESET 引脚与 VCC 直接连接将无法工作
* 使用 debugWIRE 时必须断开与 RESET 引脚连接的电容
* 必须断开所有的外部复位源

软件断点


debugWIRE通过AVR断点指令来设置程序存储器断点。在AVR Studio 设置一个断点将 在程序存储器中插入 BREAK 指令。被 BREAK 指令所替代的指令将被保存。程序继续运行时,保存的指令得到执行,然后继续执行其他指令。断点也可以通过在程序中插入 BREAK指令进行手工设置。
每次断点改变后Flash必须要重新编程。这由AVRStudio 通过debugWIRE 接口自动处 理。断点的使用会降低 Flash 数据记忆时间。调试用的器件不能发给最终客户。

debugWIRE的局限


debugWIRE通讯引脚(dW)与外部复位(RESET)共用同一引脚。因此使能debugWIRE之后,系统不支持外部复位源。
当程序在 CPU 中全速运行时, debugWIRE 系统精确的仿真所有的 I/O 口功能;当CPU停止工作时,通过调试器访问某些 I/O 寄存器时要注意。详见 debugWIRE 文档。
DWEN 熔丝位的编程使部分时钟系统在所有的休眠模式下都保持运行。这会增加器件休眠模式的功耗。因此不使用 debugWire 时应该禁用 DWEN 熔丝位。

校准的ATmega168片内 RC 振荡器提供了固定的 8.0 MHz 的时钟 这是在 3V、25 C 下的标称数值。 器件出厂时CKDIV8熔丝位已经被编程,请参见 P31”系统时钟预分频器” 。按照Table11 对熔丝位 CKSEL 进行编程即可将其作为系统时钟。

I/O存储器中与debugWIRE相关的寄存器

下面说明在 debugWire 中用到的寄存器。

mega168 debugWIRE数据寄存器-DWDR

DWDR寄存器为在MCU中运行的程序与调试器提供了通信通路。该寄存器只能由debug-WIRE 访问且不能在通常操作中作为通用寄存器使用。

 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

ATmega168 片上调试系统

——