我有一个XMEGA-A1 Xplained和一个JTAG ICE mkII。我只是试图在Linux上使用avrdude。我做的第一件事是尝试关闭JTAG保险丝以使用PDI(因为Hardware User's Guide表示JTAG和PDI不能一起使用 - 第9.3节),但现在我只有8个快速闪烁的LED并且无法与设备通信。 USB连接器的LED为绿色/红色,但重新插入USB时红色闪烁。如果我按下SW0,LED会停止闪烁,但是一旦我松开它们就会再次启动,按下其他7个按钮中的任何一个似乎都没有效果。
当我尝试与设备进行通信时,我得到的只有:
$ avrdude -p x128a1 -c jtag2pdi -P usb -v
avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED
avrdude: jtagmkII_close(): bad response to GO command: RSP_ILLEGAL_EMULATOR_MODE
avrdude done. Thank you.
如果我使用jtag2slow
(之前有效),我会:
avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: jtagmkII_close(): bad response to GO command: RSP_ILLEGAL_EMULATOR_MODE
avrdude done. Thank you.
我用来设置保险丝的命令取自Eclipse生成的命令:-Ufuse4:w:0x1:m
有没有办法“闯入”设备并重新建立通信?
答案 0 :(得分:1)
这是由于JTAGICE mkII因(自制)鱿鱼电缆连接不良而无法通过PDI连接进行通信而导致的。我做了一个新的,一切都好。由于没有人将这两个连接表放在一起(即AVR帮助中的“连接到PDI目标”和“表4.1:编程标题”),所以需要再次弄清楚正确的连接。在Xplained用户指南中,我的鱿鱼电缆都是灰色的,我在写下连接之前断开了它(不要这样做!)。所以,就是这样。
------------------------------------------------------ | JTAGICE mkII | XMEGA-A1 Xplained | |--------------------------------+-------------------| | Pin | JTAG Name | Squid Colour | Pin | PDI Name | |-----------------+--------------+-------------------| | 2 | GND | White | 2 | GND | | 4 | VTref | Purple | 4 | VCC | | 6 | nSRST | Green | 6 | PCI_CLK | | 9 | TDI | Red | 3 | PDI_DATA | ------------------------------------------------------
这在文档中提到,但值得重复一遍:一旦将JTAGEN
保险丝设置为1(即禁用JTAG),返回JTAG的唯一方法是建立PDI连接并设置融合回0。
如果无法通过PDI编程,设置保险丝时要非常小心,就像将熔丝字节4设置为0x01
,以及设置JTAGEN
一样,您也将禁用外部复位(第4位)并且无法使用ISP编程。如果你看上面,你会发现这就是我所做的。
显然,并非所有的JTAGICE mkII都可以做PDI(我可以),所以在你吹掉这个保险丝之前一定要确保!
答案 1 :(得分:0)
我遇到了同样的问题而且它是诱导因为我正在闪烁.elf文件而不是.hex。
为了解决这个问题,我做了下一步:
它对我有用。