private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
DjtgGetVersion(jtag_version);
if (!DmgrOpen(&hif, "JtagSmt2")) {
printf("Error: Could not open device. Check device name\n");
ErrorExit();
}
if (!DjtgEnable(hif)) {
printf("Error: DjtgEnable failed\n");
ErrorExit();
}
// Put JTAG in Shift-IR state
if (!DjtgPutTmsBits(hif, fTrue, move_Shift_IR, NULL, 10, fFalse))
{
printf("DjtgPutTmsBits failed\n");
ErrorExit();
}
if (!DjtgPutTdiBits(hif, fTrue, shft_CFG_IN, NULL, 6, fFalse)) {
printf("DjtgPutTdiBits failed\n");
ErrorExit();
}
I control execution of the code with LeCroy logic analyzer and when I look at waveforms I feel a little embarrassed: 1st step is visible while 2nd - not at all.
Question
Pavel_47
Hello,
Here is extract of JTAG sequence for reading status register of Zynq-7000 (picked from UG470 - 7-Series configuration guide):
Here is fragment of my code for executing:
Declaration part:
HIF hif; char jtag_version[20]; BYTE move_Shift_IR[] = { 0xDF, 0x00 }; BYTE shft_CFG_IN[] = {0x11, 0x08, 0x00};
Execution part:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { DjtgGetVersion(jtag_version); if (!DmgrOpen(&hif, "JtagSmt2")) { printf("Error: Could not open device. Check device name\n"); ErrorExit(); } if (!DjtgEnable(hif)) { printf("Error: DjtgEnable failed\n"); ErrorExit(); } // Put JTAG in Shift-IR state if (!DjtgPutTmsBits(hif, fTrue, move_Shift_IR, NULL, 10, fFalse)) { printf("DjtgPutTmsBits failed\n"); ErrorExit(); } if (!DjtgPutTdiBits(hif, fTrue, shft_CFG_IN, NULL, 6, fFalse)) { printf("DjtgPutTdiBits failed\n"); ErrorExit(); }
I control execution of the code with LeCroy logic analyzer and when I look at waveforms I feel a little embarrassed: 1st step is visible while 2nd - not at all.
Any comments ?
Thanks.
Pavel.
Link to comment
Share on other sites
13 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.