Điều rộng xung TxPWM

Một phần của tài liệu Điều khiển động cơ không đồng bộ 3 pha bằng phương pháp FOC trên cơ sở DSP TMS320F2812 (Trang 58)

Điều rộng xung là một phần cơ bản quan trọng trong vấn đề điều khiển các khóa

đóng ngắt của các bộđiều khiển công suất cũng như trong các thiết bị điều khiển số. Với sự hỗ trợ của bộ vi xử lý, việc tạo ra các xung có độ rộng phức tạp trở nên dễ

08 07 06 05 04 03 02 01 00

10 09

15 14 13 12 11

TPS0 T2SWT1 TENABLE TCLKS1 TCLKS0 TCLD1 TCLD0 TECMPR TSELT1PR TPS2 TPS1

FREE SOFT RESE TMODE1 TMODE2

15 14 13 12 11 10-09 08-07 06 05 04 03-02 01-00

dàng hơn. Nội dung được mô tảở đây cần thiết cho tính toán và điều khiển cho một

kênh PWM cơ sở.

-Tính chu kỳ, tần số cho bộđ m.

Tần sốđược điều khiển bằng cách gán giá trị cho thanh ghi TxPR như hình 4.9.

Với giá trị gán TxPR=4 cho các kiểu đếm lên, xuống, và lên xuống thì chu kỳ và tần sốcó được như hình sau. Độlớn của bậc thời gian tùy thuộc vào tần số của xung vào GP timer. Timer clock có thể là xung clock ngoài hoặc xung clock cao HSPCLK. Bộ đếm bắt đầu đếm khi bit 6 của thanh ghi TxCON được set lên mức 1.

Hình 4.5: Thanh ghi GP timer.

Từ hình 4.8 thì chu kỳ và tần số được tính như sau:

W 2 P M CLK T  TxPR T (4.1) W W 1 P M P M f T  (4.2) -Định d ng bộđ m.

Dạng sóng đếm của GP Timer có thể được điều khiển thông qua việc cài

đặt bit 11 – 12 cho thanh ghi TxCON để tạo ra trạng thái hoạt động của bộđếm. Bộ đếm tăng đến khi bằng giá trị được cài đặt trong thanh ghi TxPR thì tự động được

reset về 0 và tiếp tục chu kỳ tiếp theo.

-Cài đặt giá trị so sánh.

Mỗi GP Timer có một thanh ghi TxCMPR chứa giá trị so sánh và một chân tạo ra các xung TxPWM tương ứng. Thao tác so sánh được cho phép bởi bit 1 của thanh ghi TxCON. Giá trị bộ đếm liên tục so sánh với giá trị thanh ghi TxCMPR. Khi điều kiện bằng xảy ra thì tạo ra các sự kiện sau:

TxCON[6] Timer Clock

- Cờ ngắt so sánh được bật lên trong một chu kỳ xung clock.

- Nếu cài đặt bit 0 – 3 của thanh ghi GPTCONA/B thích hợp sẽ tạo xung ở các

chân TxPWM.

- Nếu cài đặt bit 7 –10 của thanh ghi GPTCONA/B thích hợp thì tín hiệu kích ADC được tạo cùng lúc với cờ ngắt so sánh được set.

-Ngắt GP Timer.

Việc ngắt là cần thiết khi ta muốn thay đổi trạng thái xung TxPWM. điều này thực hiện thông qua việc ngắt GP Timer, sau đó CPU rẽnhánh đến một chương trình con ISR để thực hiện việc cập nhật các giá trị hồi tiếp, xong tính toán theo giải thuật của người lập trình. Giá trị trả về sau cùng sẽđem lại sựthay đổi cho tín hiệu TxPWM.

Có 16 cờ ngắt cho 4 GP Timer nằm trong các thanh ghi EVAIFRA, EVAIFRB, EVBIFRA, và EVBIFRB. Mỗi GP Timer có thể tạo ra 4 sự kiện ngắt như sau:

- Tràn trên: TxOFINT. - Tràn dưới: TxUFINT.

- Ngắt so sánh: TxCINT.

- Ngắt chu kỳ: TxPINT.

Sự kiện so sánh xảy ra khi giá trị bộ đếm bằng với giá trị trong thanh ghi so sánh. Cờ ngắt so sánh tương ứng sẽ được set một chu kỳ xung clock nếu hoạt động

so sánh được cho phép.

Sự kiện tràn trên và tràn dưới khi mà giá trị bộ đếm tiến đến FFFFh và 0000h.

Tương tự, sự kiện ngắt chu kỳ xảy ra khi giá trị bộđếm bằng với giá trị trong thanh ghi chu kỳ. Cờ ngắt cho các sự kiện này bật một chu kỳ sau mỗi sự kiện xuất hiện. Chú ý rằng việc định nghĩa tràn trên và tràn dưới ở đây khác với định nghĩa thông thường.

GP Timer là thuộc khối quản lý sự kiện, mà các ngắt khối quản lý sự kiện được tổ chức vào trong 3 nhóm: A, B, C. Mỗi nhóm liên kết với một thanh ghi cờ và thanh ghi cho phép ngắt khác nhau.

Có một thanh ghi cờ ngắt và thanh ghi mặt nạ ngắt tương ứng cho mỗi nhóm trong khối sự kiện. Có nghĩa là một cờ ngắt EVAIFRx (x = A, B, C) sẽ bị che lại (tức

không tạo ra yêu cầu ngắt) nếu bit tương ứng trong thanh ghi mặt nạ của nó EVAIMRx là bằng 0. Vậy, muốn gửi yêu cầu ngắt đến bộ điều khiển PIE thì phải set

bit tương ứng trong EVAIMRx lên 1.

Thanh ghi EVAIFRA, địa chỉ @0x742F:

Thanh ghi EVAIFRB, địa chỉ @0x7430:

Thanh ghi EVAIFRA, địa chỉ @0x7431:

4.3.2.3. Bộ điều rộng xung PWM.

Tương tự với khối tạo xung TxPWM, thì 6 xung PWM cũng có nguyên tắc hoạt

động, cách thiết lập kiểu sóng tam giác, chu kỳ đếm và tần số của sóng tam giác… đều được thiết lập tương tự. Tuy nhiên mỗi bộ quản lý sự kiện chỉ có 1 GP timer

được dùng, GP timer 1 (EVA), GP timer 2 (EVB).

Một điểm khác biệt nữa so với khối tạo xung TxPWM, bộ tạo xung này đồng thời so sánh giá trị của sóng tam giác với 3 giá trị so sánh khác. Kết quả so sánh của một giá trị so sánh với sóng tam giác xuất ra một cặp xung. Ta có thể lựa chọn mức tích cực cho từng xung của một cặp nhờ vào thanh ghi ACTRA và thiết lập thời gian chết (dead time) cho tín hiệu xuất ra từ thanh ghi DBTCONA.

Hình 4.6: Cách tạo xung PWM. 08 09 10 15 14 13 12 11 07 06 05 04 03 02 01 00 - - -

- - - - - - - - - - CAP3INT CAP2INT CAP1INT T T1CINT

T1UFINT T1OFINT

T1PINT CMP3INT CMP2INT CMP1INT PDPINT

08 09

10

15 14 13 12 11 07 06 05 04 03 02 01 00

T2OFINT T2UFINT T2CINT T2PINT

08 09 10 15 14 13 12 11 07 06 05 04 03 02 01 00 TPWM Period Compare Counter TPWM/TCMP Interrupts

Ngoài việc thiết lập các thanh ghi tạo sóng tam giác như khối TxPWM ta cần phải thiết lập thêm một số thanh ghi khi sử dụng chếđộ này chỉxét EVA (EVB tương tự):

- Thanh ghi CMPR1, CMPR2, CMPR3: chứa 3 giá trị so sánh.

- Thanh ghi COMCONA: điều khiển chế độ hoạt động của bộ so sánh.

Bit 15 sẽ cho phép CMPR1, CMPR2, CMPR3 so sánh với Timer1.

- Thanh ghi ACTRA: chọn mức tích cực cho xung PWM.

Kết quả khi so sánh của 3 thanh ghi CMPR với timer sẽ cho ra các xung

PWMx, xung này ta phải chọn mức tích cực. Việc set mức tích cực dựa vào 2 bit

CMPxACT 1-0, và PWMx ở mức thấp nếu được set CMPxACT 1 –0 = 01, PWMx ở mức cao nếu CMPxACT 1 – 0 = 10.

- Thanh ghi DBTCONA thiết lập thời gian chết cho các cặp xung.

Hình 4. 7: Dead time của 2 xung.

Và Dead time được tính như công thức (4.3) sau:

Dead time = DB period * DB prescaler * CPUCLK period (4.3) Trong đó:

DB period: được tính từ việc thiết lập 4 bit DBTCONA 8 – 11, DB prescaler: được tính từ việc thiết lập 2 bit DBTCONA 3 – 4, CPUCLK period: tần số cấp cho Dead time, nó phụ thuộc vào HSPCLK và CPUCLK period = 1/HSPCLK.

CENABLE CLD1 CLD0 SVENABLE ACTRLD1 ACTRLD0 FCOMPOE PDPINTA RESE RESE RESE RESE RESE RESE RESE RESE

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

SVRDIR D2 D1 D0 CMP6ACT1 CMP6ACT0 CMP5ACT1 CMP5ACT0 CMP4ACT1 CMP4ACT0 CMP3ACT0-1 CMP2ACT0-1 CMP1ACT0-1

15 14 13 12 11 10 09 08 07 06 05-04 03-02 01-00 Clock PHx DT DTPHx DTPHx Dead time

RESE RESE RESE RESE DBT3 DBT2 DBT1 DBT0 EDBT3 EDBT2 EDBT1 EDBT0 DBTPS1 DBTPS1 RESE RESE

4.3.2.4. Đ m xung encoder – QEP.

Mỗi khối quản lý sự kiện có một bộ nhận xung encoder. Khi được cho phép, nó sẽ

giải mã và đếm tín hiệu xung mã hóa vào trên chân CAP1/QEP1 và CAP2/QEP2 (thuộc khối EVA) hoặc CAP4/QEP3 và CAP5/QEP4 (thuộc khối EVB).

Theo hình 4.13 thì có 2 tín hiệu cùng vào là CAP/QEP nên phải có thanh ghi lựa chọn xung đi vào, nó phụ thuộc vào bit 13 – 14 của thanh CAPCONA

Nếu 00: vô hiệu hóa chức năng CAP/QEP.

Nếu 01: chọn chức năng CAP.

Nếu 11: chọn chức năng QEP. -Bộđ m cơ b n.

Bộđếm cơ bản cho QEP được cung cấp bởi GP Timer 2 (GP Timer 4 cho EVB). GP Timer phải được cài đặt ở chếđộ đếm lên/xuống có hướng với nguồn xung clock là mạch QEP.

Hình 4.8: Sơ đồ khối của bộ QEP.

-Gi i mã hướng.

Vị trí góc và vận tốc của motor có thể được xác định bằng bộđếm xung và tần số xung. Còn xác định hướng thì thường phải giải mã cho tuần tự 2 xung có tần số thay đổi nhưng độ lệch pha không đổi bằng ¼ chu kỳ (900).

RESE CAP3EDGE CAP2EDGE CAP1EDGE CAP3TOADC CAP12TSEL CAP3TSEL CAP3EN RESE CAPQEPN CAPRES 01-00 03-02 05-04 07-06 08 09 10 12 11 13-14 15

Mức logic xác định hướng cho QEP trong khối EV được quy ước theo thứ tự xung vào đầu tiên. Bộđếm sẽ đếm lên nếu tín hiệu từchân QEP1 vào đầu tiên, hoặc

đếm xuống nếu QEP2 là tín hiệu vào đầu tiên. Đây là xét cho khối sự kiện EVA, đối với EVB thì tương tự.

Hình 4.9: Giải mã encoder.

Mạch QEP đếm cả 2 cạnh lên và xuống của mỗi xung QEP nên tín hiệu xung

clock bằng 4 lần tần số mỗi kênh. -Cài đặt QEP.

Để khởi động QEP trong khối EVA cần phải thực hiện các bước sau:

- Thiết lập giá trị mong muốn cho các thanh ghi trị đếm ban đầu, chu kỳ, trị so

sánh.

- Quan trọng đó là thiết lập chế độ đếm lên/xuống có hướng trong thanh ghi T2CON với nguồn xung clock từ mạch QEP, và cho phép timer này được chọn.

4.3.2.5. Bộ chuyển đ i tín hi u tương t sang số - ADC.

Module ADC có tất cả 16 kênh: 8 kênh cho sự kiện A (SEQ1) và 8 kênh cho sự kiện B (SEQ2). Chúng có thể hoạt động độc lập (Cascaded mode) hoặc phối hợp (Dual mode) để tạo module 16 kênh. Tất cả đều được đưa vào cùng 1 bộ chuyển đổi ADC. Kết quả chuyển đổi được lưu trong thanh ghi ADCRESULT tương ứng.

ADC có 3 thanh ghi điều khiển là ADCTRL1 – 3:

- Thanh ghi DACTRL1 có chức năng lựa chọn chếđộ vận hành cho ADC, dựa vào bit 4.

Nếu bit 4 = 0 thì ADC vận hành với chếđộ Dual. QEP_A QEP_CLK QEP_B RESE

RESE RESET SUSMOD1 SUSMOD0 ACQ_PS3-2 ACQ_PS1-0 CPS CONT_RUN SEQ1_OVRD SEQ_CASC RESE

03-02

Nếu bit 4 = 1 thì ADC vận hành với chếđộ Cascaded.

- Thanh ghi DACTRL2 có chức năng lựa chọn bộ sắp xếp, trong đó 8 bit cao dùng để thiết lặp cấu hình cho SEQ1 và 8 bit thấp sẽ cho SEQ2. Chú ý: việc lựa chọn chỉcó ý nghĩa khi ADC được chọn ở chếđộ Dual.

- Thanh ghi DACTRL3 có chức năng lựa chọn nguồn xung cấp cho ADC, dựa vào bit 1 – 4 và chức thực hiện chuyển đổi nhờ vào bit 0

Nếu bit 0 = 0 thì ADC thực hiện chuyển đổi lần lược từng tín hiệu. Nếu bit 0 = 1 thì ADC thực hiện chuyển đổi cùng lúc.

Hình 4.10: Sơ đồ khối của bộ ADC.

Đặc điểm của bộ chuyển đổi ADC như sau:

- Nhân ADC 12 bit để mã hóa mẫu analog.

- Có khả năng lấy mẫu đồng thời hay liên tiếp nhờ bộ sắp thứ tự (Auto sequencer).

- Tần số xung clock hoạt động tối đa 25MHz.

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

EVB_SOC

_SEQ RST_SEQ1 SOC_SEQ1 RESE INT_EVA _SEQ1 INT_MOD _SEQ1 RESE EVA_SOC _SEQ1 EXT_SOC _SEQ1 _SEQ2 RST _SEQ2 SOC RESE INT_EVA _SEQ2 INT_MOD _SEQ2 RESE EVA_SOC _SEQ2

15-08 07 06 05 04 03 02 01 00

Hình 4.11: Nguồn xung cấp cho bộ ADC.

- Có 16 kênh nhận tín hiệu Analog vào từ0V → 3V. và có 16 thanh ghi đểlưu

trữ kết quả chuyển đổi cho 16 kênh, và được tính như sau:

Digital Value = 0 khi Input = 0V

Input Analog Voltage - ADCL0

Digital Value = 4096 khi 0 < Input < 3V 3

Digital Value = 4095 khi Input > 3V

Nguồn kích để bắt đầu chuyển đổi (SOC) xếp theo thứ tự ưu tiên: S/W kích

bằng phần mềm, EVA, EVB, Chân kích bên ngoài (theo hình 4.15).

Khi kết thúc chuyển đổi thì cờ ngắt được bật lên khi ta set bit 10 của thanh ghi ADCTRL2.

Nguyên lý ho t động chuyển đ i.

Có 4 thanh ghi đưa tín hiệu ADC vào để chuyển đổi ADC Input Channel Select

Sequencing Control Register ADCCHSELSEQ 1-4, mỗi thanh ghi quản lý 4 CONV, có 16 CONV từ 00-15.(16 CONV chính là 16 chân ADC từ ngoài vào, và được sắp xếp vào 16 CHSEL từ 00-15 trong bộ SEQ).

ADCCHSELSEQ1 ADCCHSELSEQ2 ADCCHSELSEQ3 ADCCHSELSEQ4 CONV03 CONV02 CONV01 CONV00

CONV07 CONV06 CONV05 CONV04 CONV11 CONV10 CONV09 CONV08 CONV15 CONV14 CONV13 CONV12

Số lượng chuyển đổi các tín hiệu ADC dựa vào thanh ghi Maximum Conversion Channel Register ADCMAXCONV, đối với chế độ Dual ta dùng cả 7 bit, đối với chế độ Cascade ta chỉ dùng 4 bit cuối, 4 bit này đi từ 0000 -1111 sẽ thực hiện chuyển đổi được 16 chân ADC vào của DSP trong 1 chu kỳ.

Việc chuyển đổi được thực thi khi bit 6 của thanh ghi ADCTRL1 (Continuous Run) được set lên 1. Bit 6 của thanh ghi ADCTRL1 sẽ thực hiện việc này. Chế độ chuyển đổi được set bởi bit 0 (SMODE_SEL) trong thanh ghi ADCTRL3, nếu SMODE_SEL = 0 khi chế độ của ADC là Cascade, ngược lại là Dual.

Kết quả chuyển đổi sẽ được lưu vào thanh ghi kết quả ADC Conversion Result Buffer Register ADCRESULT, bộ ADC có 16 thanh ghi kết quả từ ADCRESULT

00-15.

Mỗi thanh ghi sẽ chứa những dữ liệu từ 16 chân ADC vào của DSP. Do DSP có 12 bit ADC nên kết quả chuyển đổi của bộ ADC sẽ được lưu vào 12 bit cao của các thanh ghi ADCRESULT, vì thế muốn xuất kết quả ra ta phải thêm 1 bước dịch 4

bit.

Dữ liệu của 16 chân ADC được định nghĩa bằng 16 CONV 00-15 trong 4 thanh ghi ADCCHSELSEQ 1-4 (hình 4.17) cũng chính là 16 CHSEL 00-15 chứa trong bộ

SEQ (hình 4.15), sẽ chuyển đổi khi có lệnh và lưu kết quả vào 16 thanh ghi

ADCRESULT 00-15 tương ứng.

Ví d :

Xét 1 ví dụ cụ thể về việc định nghĩa các chân, sau đó chuyển đổi và lưu kết quả vào thanh ghi kết quả như sau: giả sử ta có 6 tín hiệu ADC cần đọc là I1, I2, I3, V1, V2,

V3. Khi đó ta định nghĩa các tín hiệu này vào thanh ghi ADCCHSELSEQ như sau:

15-07 06 05 04 03 02 01 00

RESE MAX_CONV2_2 MAX_CONV2_1 MAX_CONV2_0 MAX_CONV1_3 MAX_CONV1_2 MAX_CONV1_1 MAX_CONV1_0

MBS LBS 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 ADCCHSELSEQ1 ADCCHSELSEQ1 vào V1 x I3 x I2 V3 I1 V2 15-12 11-08 07-04 03-00

CONV03 CONV02 CONV01 CONV00 CONV07 CONV06 CONV05 CONV04 ADCCHSELSEQ1

Và sao khi chuyển đổi thì kết quả sẽ lưu vào thanh ghi kết quả

4.3.3. Bộ ngắt ngo i vi m rộng - PIE.

Khối ngắt PIE hỗ trợ đến 96 ngắt, ngắt nào được chọn thông qua 8 nhóm phân loại đưa vào 12 đường ngắt INT1 - 12. Mỗi ngắt có một vectơ quản lý tương ứng của mình được lưu giữ trong bộ nhớ chuyên dụng mà người lập trình có thể tác động thay đổi. Để thực hiện, CPU mất 9 chu kỳ xung clock, do vậy có thể đáp ứng nhanh đến các sự kiện ngắt. Mỗi ngắt riêng lẻ có thể được kiểm soát qua phần cứng hay phần mềm, và bật tắt thông qua khối PIE.

Hình 4.12: Sơ đồ khối của bộ ngắt mở rộng PIE.

Tuần tự hoạt động ngắt:

Từ ngoại vi: khi một sự kiện ngắt xuất hiện, bit cờ ngắt (IF) tương ứng được

set trong thanh ghi của ngoại vi. Và nếu được phép, bit cho phép (IE) được set để gửi yêu cầu ngắt đến bộ điều khiển PIE. Còn nếu không được phép thì bit IF vẫn

Một phần của tài liệu Điều khiển động cơ không đồng bộ 3 pha bằng phương pháp FOC trên cơ sở DSP TMS320F2812 (Trang 58)

Tải bản đầy đủ (PDF)

(125 trang)