This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28335,TI官网例程eqep_pos_speed运行问题

Other Parts Discussed in Thread: TMS320F28335

你们好,我刚学习TMS320F28335,很多不懂,在此请教各位,谢谢。
运行TI官网例程eqep_pos_speed时,查看(unsigned int)EQep1Regs.QPOSCNT值只是

在0和1之间变化,应该没对,但没找到问题出在哪里,请各位多多帮忙,谢谢,

也按照以下说明连接了这3个相应管脚,

GPIO20/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal)
GPIO21/EQEP1B <- GPIO1/EPWM1B (simulates EQEP Phase B signal)
GPIO23/EQEP1I <- GPIO4 (simulates EQEP Index Signal)

  • 网上也有网友遇到了这个问题的,EQep1Regs.QPOSCNT值一直为0,但都没给出解决思路,特请教各位,谢谢,

  • 如果保证了你的输入信号是没有问题的   那就是设置问题   如果只是0和1肯定是有问题的  

    你送入eqep的A B相信号   是否正确     连续   

    Z相有没有同时送入      Z相会使计数清零的  

    下面代码请参考

    void  PosSpeed_Init(void)
    {

        #if (CPU_FRQ_150MHZ)
              EQep1Regs.QUPRD=1500000;        / Unit Timer for 100Hz at 150 MHz SYSCLKOUT =10ms
    #endif        /在150MHz系统时钟下产生100Hz的单位时间值,即让qep10ms产生一次timeout中断         
      #if (CPU_FRQ_100MHZ)
              EQep1Regs.QUPRD=1000000;                        // Unit Timer for 100Hz at 100 MHz SYSCLKOUT
    #endif        

            EQep1Regs.QPOSCNT = 0;                
            
            EQep1Regs.QDECCTL.bit.QSRC=00;// QEP quadrature count mode 求积计数模式:产生方向和4倍频的时钟
            EQep1Regs.QDECCTL.bit.XCR=0;        // 2x resolution (cnt falling and rising edges)
            EQep1Regs.QDECCTL.bit.SWAP=0;  
            EQep1Regs.QDECCTL.bit.IGATE=1;        //该位置1后,连索引脉冲都过滤了
            EQep1Regs.QDECCTL.bit.QAP=0; 
            EQep1Regs.QDECCTL.bit.QBP=0;  
            EQep1Regs.QDECCTL.bit.QIP=0;  
            EQep1Regs.QDECCTL.bit.QSP=0;  
                    
            EQep1Regs.QEPCTL.bit.FREE_SOFT=2;   //自然地动作
            EQep1Regs.QEPCTL.bit.PCRM=00;        // 每次索引事件产生时QPOSCNT复位
    //        EQep1Regs.QEPCTL.bit.PCRM=01;        // 最大计数位置时QPOSCNT复位
            EQep1Regs.QEPCTL.bit.UTE=1;                 // Unit Timeout Enable 使能单位定时器
            EQep1Regs.QEPCTL.bit.QCLM=1; // Latch on unit time out使能单位时间输出时其他重要寄存器的锁存功能
    //        EQep1Regs.QPOSMAX=0xffffffff;                //位置的最大计算值
            EQep1Regs.QPOSMAX=7999;                //位置的最大计算值
            EQep1Regs.QEPCTL.bit.QPEN=1;         // QEP enable 使能QEP
                    
            EQep1Regs.QCAPCTL.bit.UPPS=5;           // 1/32 for unit position即每32个QCLK产生一个单位位置时件
            EQep1Regs.QCAPCTL.bit.CCPS=7;        // 1/128 for CAP clock 即捕捉定时器的时钟频率为SYSCLKOUT/128
            EQep1Regs.QCAPCTL.bit.CEN=1;         // QEP Capture Enable 使能QEP捕捉功能        
    }

  • 能不能提供一个28335控制直流电机双闭环直流调速的例程,PID控制的,谢谢