一、AJE2JTAG文档CLK时序描述
1、1.6.2.2 延时校准章节描述
该章节描述TCK进行校验,开启RUNTEST_CALIBRATION后,是为了验证Anlogic_Calibration(),如下:
2、代码理解
/* process runtest num tck */
void Anlogic_ProcessRunTestTck(int num)
{
int i = 0;
TDI_Wr(0);
TMS_Wr(0);
#ifdef RUNTEST_CALIBRATION
for (i = 0; i < num; ++i)
{
TCK_Wr(0);
TCK_Wr(0);
}
#else
for (i = 0; i < num; ++i)
{
TCK_Wr(1);
TCK_Wr(0);
}
#endif
#ifdef AJE_DEBUG
printf("RUNTEST %d TCK;\n", num);
#endif
}
void Anlogic_WritePulseTck(void)
{
TCK_Wr(1);
TCK_Wr(0);
}
这个函数按照文档描述,会产生一段脉冲,时间最少为1ms,但是文档上时序图是持续高电平维持在1ms以上?但是看代码这段脉冲应该是一直拉低才对呀?
图1 整个波形
图2 波形头部
图3 波形尾部
3、下载验证
将开发板的TDO、TDI、TMS、TCK接到外部MCU的GPIO上(模拟JTAG),其映射管脚如下:
FPGA生成的bin文件,通过Device Chain转成SVF文件,然后通过小工具转成aje格式文件,理论上不需要其他条件限制,转换成功结果如下:
然后将led_crt.aje文件导入到MCU的SD卡中,上电后,测试结果如下:
测试结果显示能读到led_crt.aje文件,但是显示数据验证失败,请问是什么环节出了问题?