打印

救命,JTAG控制某个Pin的问题

[复制链接]
1577|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chengzzpp|  楼主 | 2012-6-15 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠好,我是第一次弄这个JTAG的东西,现在有个问题,请教各位。


我现在要控制px166芯片上的每一个JTAG口,
具体的bsdl如下:




attribute BOUNDARY_LENGTH of aspen_a0_bga: entity is 252;
attribute BOUNDARY_REGISTER of aspen_a0_bga : entity is
-- num cell port function  safe  [ccell  disval  rslt]
"   0( bc_7, EXT_WAKEUP           , bidir   , X ,      1  , 0 , Z )," &
"   1( bc_2, *                    , control , 0 )," &

.
.
.
.

" 250( bc_7, GPIO_37              , bidir   , X ,    251  , 0 , Z )," &
" 251( bc_2, *                    , control , 0 )" ;


现在的问题是:
能够控制除了最后一个pin外的任何一个pin.
具体的代码如下:

相关帖子

沙发
chengzzpp|  楼主 | 2012-6-15 16:38 | 只看该作者
for (int j=0;j<252;j++)
                        {
                                if ((j==191)||(j==251))
                                {
                                        m_TagCommandTest.pin[j] = 1;
                                }
                                else  if  ((j==190)||(j==250))
                                {
                                        if(itimes %2 == 1)
                                        {
                                                m_TagCommandTest.pin[j] = 0;
                                        }
                                        else if(itimes %2 == 0)
                                        {          
                                                m_TagCommandTest.pin[j] = 1;  
                                        }   
                                }
                                else
                                {         
                                        m_TagCommandTest.pin[j] = 0;
                                }
                        }  
                       
                        m_TagCommandTest.putp(1,0,IP);        //Run-Test/Idle
                        m_TagCommandTest.putp(1,0,IP);        //Run-Test/Idle
                        m_TagCommandTest.putp(1,0,IP);        //Run-Test/Idle
                        m_TagCommandTest.putp(1,0,IP);        //Run-Test/Idle
                        m_TagCommandTest.putp(1,1,IP);        //select DR scan
                        m_TagCommandTest.putp(1,0,IP);        //capture DR
                         m_TagCommandTest.putp(0,0,IP);        //shift IR ---> (Rami: should be DR?)
                       
                       
                        int out_dat[MAX_CHAIN_LENGTH];
                  for(int i = 1; i < 252; i++)// shift write data in to JTAG port and read data out
                         {
                                  out_dat[i] =  putp( pin[i-1],0,IP);
                         }
                         itimes ++;
                       
                         putp(0,1,IP);        //Exit1-DR
                         putp(1,1,IP);        //Update-DR
                         putp(1,0,IP);        //Run-Test/Idle
                         putp(1,0,IP);        //Run-Test/Idle
                         putp(1,0,IP);        //Run-Test/Idle

                       
                        //extest();
                         IR_Command( IR_Extest);

  还有           for(int i = 1; i < 252; i++)         这一行为什么从1开始

我快要被弄死了。拜托各位了,谢谢!

使用特权

评论回复
板凳
Ynnus| | 2012-10-9 20:23 | 只看该作者
有个 out_dat =  putp( pin[i-1],0,IP);i-1啊,所以必须从1开始。如果需要JTAG,我们提供专业解决方案:http://www.zhefar.com/services-ee.htm#JTAG-EDA-MIS_JTAG

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

2

帖子

1

粉丝