我的F149能够通过
if (IR_Shift(IR_CNTRL_SIG_CAPTURE) != JTAG_ID)
{
return(STATUS_ERROR);
}
判断语句正确返回JTAG_ID的0X89,但是到了
if (DR_Shift16(0x0000) & 0x0200) 这个语句发现进入函数后
TDOword一直都是0
下面是函数其中我觉得出问题的地方.
(Format == F_WORD) ? (MSB = 0x8000) : (MSB = 0x80);
for (i = Format; i > 0; i--)
{
((Data & MSB) == 0) ? ClrTDI() : SetTDI();
Data <<= 1;
if (i == 1) // Last bit requires TMS=1
SetTMS();
ClrTCK();
SetTCK();
TDOword <<= 1; // TDO could be any port pin
if (ScanTDO() != 0)
TDOword++;
我观察了下JTAGIN和JTAGOUT一直都是0XE8和0XE0之间变化.按道理应该会在I到0之前会出现JTAGI是0XE9
请问问题是出在硬件还是别的地方? |