码迷,mamicode.com
首页 > 其他好文 > 详细

jtag管脚复用---lattice LCMXO3

时间:2017-02-25 17:23:08      阅读:705      评论:0      收藏:0      [点我收藏+]

标签:png   alt   检测   .com   ges   disable   one   ima   lib   

IO资源不够的时候,会考虑复用专用IOJTAG是较为常见的复用。

复用JTAG IO要做的工作

1.软件要关闭JTAG_PORT,JTAG_PORT设置为DISABLE,这一步是前提,只有JTAG_PORT设置为DISABLE,才有复用一说,如下图

技术分享

技术分享

 

2.硬件要将JTAGENB拉低,拉高的话是作为专用下载程序的脚使用(这个在硬件上默认拉高拉低无所谓),如下图。

技术分享

 

3.通过CPU控制JTAGENB的电平,传到lattice芯片内部。JTAGENB=1JTAG的脚作为烧写程序使用,JTAGENB=0时,作为普通IO使用,如下图。

技术分享

 

  要思考的问题:什么时候烧写程序结束呢?为什么要思考这个问题呢?因为你需要告知CPU JTAGENB什么时候才能够为低电平,让JTAG脚进入普通IO状态。假如你不知道JTAGENB应该为低电平的时间点,当还在进行烧写程序的时候,你告知CPUJTAGENB为低电平,从而使JTAG进入普通IO的状态,那么此时是不是程序还没有下载完毕,这样用户功能是不是不正常?所有得找到一个合适的时间点,让JTAGENB拉低。

最笨的方法吗就是,看你的下载程序有多大,然后TCK按照25MHZ计算烧写程序所需的时间TCPU做一个延时,延时时间大于T的时候让JTAGENB拉低,使得JTAG进入普通IO的状态,以防万一延时时间可以给多一点,2T较为合适。

还有一个办法是比较明智的,检查DONE信号,如下图。当DONE信号上升沿到来时说明加载完毕了,此时就可以将JTAGENB拉低。这个办法显然比上述一种好用,一来可以节省时间,二来可以省去繁琐的计算。劣势在哪里呢?管脚不本来就不够用了,你还用了我一个DONE作为专用脚,不用DONE作为检测信号的时候,可以将其用作普通IO.

技术分享

 

jtag管脚复用---lattice LCMXO3

标签:png   alt   检测   .com   ges   disable   one   ima   lib   

原文地址:http://www.cnblogs.com/xiaozhuge/p/6442045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!