Sunteți pe pagina 1din 6

Universitatea Politehnica din București

Facultatea de Inginerie Electrică

TEMĂ ENCODER
Programare modul Encoder pe controlerul
TMS320F28335
Controlere DSP pentru sisteme de acţionare electrică

 Student: BALAN Alexandru-Stefan


 Facultatea: Inginerie Electrica
 Master: Electronica de Putere si Actionari Electrice Inteligente
 Anul: I
 Grupa: EPA-1
Enunț:

Se vor implementa functiile de initializare, activare si citire ale interfetei QEP1, pentru un
controler DSP TMS320F28335.

Parametri specifici:

1. Numarul de linii ale encoderului [Nl - linii/rot]: pt. calculul unghiului electric
2. Numarul de perechi de poli ai motorului [pp] : pt. calculul unghiului electric

PWM
N linii enc p
[linii/rot] [perechi poli]
3 BALAN Alexandru-Stefan 4096 4

1. InitEncoder() – Funcția pentru initializarea modulului QEP1

Inițializări:

a. Initializare registrii de control ai sistemului (SysCtrlRegs) [1]:

 GPBMUX2 – configurare pini interfata GPIO50 si GPIO51 ca pini encoder QEP1

S
GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 1;
GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 1;
 PCLKCR1 – setare eQEP1 – activare ceas pt. intrarile QEP

SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1;

b. Initializare registrii de control ai interfetei QEP (EQep1Regs) [2]:


S
 QDECCTL – setare biții QSRC pt. configurare pini IO ca pini encoder incremental (QEP1)

EQep1Regs.QDECCTL.bit.QSRC = 0;
 QEPCTL – registrul control interfata encoder QEP, bitii:

- FREE_SOFT – contor encoder neafectat de emulator


- PCRM - reset contor encoder la pozitia maxima
- UTE - dezactivare timer unitate eQEP
- QCLM - memorare contor la citire
- QPOSMAX - valoare maxima contor encoder pe 32 biti
EQep1Regs.QEPCTL.bit.FREE_SOFT = 0x2;
EQep1Regs.QEPCTL.bit.PCRM = 01;
EQep1Regs.QEPCTL.bit.UTE = 0;
EQep1Regs.QEPCTL.bit.QCLM= 0;
EQep1Regs.QPOSMAX = 0xFFFFFFFF;

2. StartEncoder()

Activare numarare pulsuri de la encoder in registrul de control al QEP (SysCtrlRegs) [2]

 QEPCTL – setare bit QPEN, activare contor encoder

EQep1Regs.QEPCTL.bit.QPEN = 1;

3. ReadEncoder()

Citire valoare contor encoder QEP1 (EQep1Regs) [2]:

 QPOSCNT – registrul contor encoder, din care se citeste pozitia (numarul de pulsuri de la
encoder)
Position = EQep1Regs.QPOSCNT;

S-ar putea să vă placă și