งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Digital Signal Processing TMS320F2812 เบื้องต้น By Mr.Rungwicha Chaiyot.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Digital Signal Processing TMS320F2812 เบื้องต้น By Mr.Rungwicha Chaiyot."— ใบสำเนางานนำเสนอ:

1 Digital Signal Processing TMS320F2812 เบื้องต้น By Mr.Rungwicha Chaiyot

2 TMS320F2812 เป็นผลิตภัณฑ์ของบริษัทเทคซัสอินสตรูเมนท์ ( Texas Instrument ) มีอุปกรณ์รอบข้างที่เหมาะสำหรับประยุกต์ใช้ในงานควบคุมมอเตอร์ โดยเฉพาะดังนี้ -Two event-manager modules (EVA,EVB) -Enhanced analog-to-digital converter (ADC) module -Digital I/O and shared pin function

3 EVENT MANAGER (EV) Module มีคุณสมบัติในการประยุกต์ใช้ในงาน ควบคุมการเคลื่อนที่และควบคุม มอเตอร์โดยเฉพาะ ประกอยด้วย EVA,EVB นำไปประยุกต์ใช้ในงานแบบ multi- axis/motion control เช่น - ควบคุมมอเตอร์สองตัว - ควบคุมอินเวอร์เตอร์แบบสามระดับ แต่ละ EV Module มี full compare unit 3 หน่วย ให้ กำเนิด PWM ได้โมดูลละ 6 สัญญาณพร้อม ทั้ง dead band โดยที่ค่า dead band ที่ต้องการ สามารถโปรแกรมเข้าไปยัง Compare Register ได้

4 EV แต่ละตัวจะใช้ General-Purpose (GP) Timers เพื่อเป็น Time base ให้กับ Compare unit ซึ่งเกี่ยวข้องกับการให้กำเนิด สัญญาณ PWM ดังรูปที่ 1 รูปที่ 1 โมดูลกำเนิดสัญญาณ PWM

5 GP Timer Counting Operation Compare output ของ GP Timer สามารถกำหนด active high,active low force high,force low ได้ GP Timer แต่ละตัวมีโหมดการทำงานที่เป็นไปได้ 4 แบบ -Stop/Hold mode -Continuous Up-Counting mode -Directional Up-/Down-Counting mode -Continuous Up-/Down-Counting mode โดยแต่ละแบบสามารถกำหนดได้โดยใช้ timer control register (TxCON) บิตที่ 11-12

6 Stop/Hold Mode ในโหมดนี้ GP Timer จะหยุดทำงานและคงอยู่ที่สถานะปัจจุบัน ตัว timer counter,compare output จะไม่มีการเปลี่ยนแปลง Continuous Up-Counting mode GP Timer ในโหมดนี้จะทำการนับขึ้นจนกระทั่ง timer counter มีค่าเท่ากับ Period register ซึ่งตรงกับขอบขาขึ้นของ input clock พอดี ค่า GP Timer จะรีเซตเป็น 0 และเริ่มนับใหม่อีกครั้งหนึ่ง ดังรูปที่ 2

7 รูปที่ 2 GP Timer Continuous Up-Counting mode GP Timer ที่นับแบบ Continuous Up-Counting mode ประโยชน์คือนำไปสร้าง PWM แบบ Asynchronous

8 Directional Up-/Down-Counting mode ในโหมดนี้ GP Timer จะนับขึ้นและนับลง ตามอินพุตที่ขา TDIRA/B ของ GPIO PORT -TDIRA/B เป็น high GP Timer จะนับขึ้นจนมีค่าเท่ากับ Period register Timer จะรีเซตเป็น 0 และนับขึ้นใหม่อีกครั้ง -TDIRA/B เป็น low GP Timer จะนับลงจนมีค่าเท่ากับ 0 ค่า Timer จะ reloads ใหม่ให้เท่ากับ Period register และนับลงใหม่อีกครั้ง ดังรูปที่ 3

9 GP Timer ที่นับแบบ Up-/Down-Counting mode ใช้ในกรณีมีเหตการณ์ จากภายนอกเปลี่ยนไปในงานควบคุมและ power electronics application รูปที่ 3 Directional Up-/Down-Counting mode

10 Continuous Up-/Down-Counting mode ในโหมดนี้การทำงานจะเหมือนกับ Direction Up-/Down-Counting mode แต่ PIN TDIRA/B ไม่มีผลต่อทิศทางการนับ - ทิศทางการนับจะเปลี่ยนจาก up to down เมื่อ timer counter มีค่าเท่ากับ Period register - ทิศทางการนับจะเปลี่ยนจาก down to up เมื่อ timer counter มีค่าเท่ากับ 0 ดูรูปที่ 4

11 รูปที่ 4 Continuous Up-/Down-Counting mode Continuous Up-/Down-Counting mode ใช้สร้าง PWM แบบ Symmetric และ period ของ timer ในโหมดนี้มีค่าเป็นสองเท่าของ Period register (TxPR)

12 Asymmetric/Symmetric Waveform Generation asymmetric /symmetric PWM wave form สามารถกำหนด ได้โดย counting mode ที่อยู่ภายใน GP Timer Asymmetric Waveform Generation เมื่อ GP Timer อยู่ใน continuous up-counting mode. output waveform (PWM) จะมีการเปลี่ยนแปลงดังนี้ - มีค่า 0 ก่อน timer counter จะทำงาน - มีค่าคงที่จนกระทั่งเกิดการ compare math (timer counter= compare register) -Toggle เมื่อเกิดการ compare math - มีค่าคงที่จนกระทั่งสิ้นสุด period - รีเซตเป็น 0 เมื่อจบ period

13 รูปที่ 5 GP Timer Compare/PWM Output in Up-Counting Mode

14 Symmetric Waveform Generation เมื่อ GP Timer อยู่ใน continuous up-/down counting mode. output waveform (PWM) จะมีการเปลี่ยนแปลงดังนี้ - มีค่า 0 ก่อน timer counter จะทำงาน - มีค่าคงที่จนกระทั่งเกิดการ compare math (timer counter= compare register) -Toggle เมื่อเกิดการ compare math - มีค่าคงที่จนกระทั่งเกิดการ compare math ครั้งที่สอง - Toggle เมื่อเกิดการ compare math ครั้งที่สอง - มีค่าคงที่จนกระทั่งสิ้นสุด period - รีเซตเป็น 0 เมื่อจบ period

15 รูปที่ 6 GP Timer Compare/PWM Output in Up-/Down Counting Mode PWM Output สามารถที่จะกำหนด active high,active low, force low,force high ได้โดยกำหนดคุณสมบัติใน ACTRA/B register

16 Compare Unit1= Bit0-3 =PWM1,PWM2 Compare Unit2= Bit 4-7=PWM3,PWM4 Compare Unit3= Bit 8-11=PWM5,PWM6 ACTRA= PWM1=ALPWM2=AH PWM3=ALPWM4=AH PWM5=AL PWM6=AH PWM2 AH PWM1 AL รูปที่ 7 ACTRA รูปที่ 8 Symmetrical PWM1,PWM2

17 มี register อีกหลายตัวที่เกี่ยวข้องกับการใช้งาน PWM ศึกษา เพิ่มเติมได้จาก litrrature number SPRU065

18 General-Purpose Input/Output (GPIO) GPIO MUX register ใช้เลือกคุณสมบัติการทำงานให้กับ PIN ในตัวประมวลผลซึ่งสามารถกำหนดให้เป็นการทำงานแบบต่างๆได้ดังนี้ -Digital I/O หรือ Peripheral โดย GPxMUX registers - ถ้าเป็น Digital I/O กำหนดให้เป็น Input/Output โดย GPxDIR registers แต่ละ Port ของ GPIO จะถูกควบคุมโดย MUX, Direction, Data, Set, Clear, Toggle Registers

19 GPxMUX Registers แต่ละ Port ของ GPIO คือ MUX registers ใช้ในการเลือกระหว่าง การทำงานเป็นอุปกรณ์รอบข้างหรือเป็น Digital I/O IF GPxMUX.bit=0 Pin ถูกกำหนดเป็น Digital I/O IF GPxMUX.bit=1 Pin ถูกกำหนดเป็นอุปกรณ์รอบข้าง GPxDIR Register แต่ละ Port ของ GPIO คือ GPxDIR registers ใช้ในการเลือกระหว่าง การทำงานเป็น Input หรือเป็น Output IF GPxDIR.bit=0 Pin ถูกกำหนดเป็น Input IF GPxDIR.bit=1 Pin ถูกกำหนดเป็น Output X=PORT A,B,D,E,F,G

20 GPxDAT Registers แต่ละ Port ของ GPIO คือ GPxDAT registers ใช้ในการสะท้อนสถานะ ปัจจุบันของ I/O IF GPxDAT.bit=0, PIN กำหนดเป็น Output เมื่อนั้น PIN ถูกเปลี่ยนเป็น Low IF GPxDAT.bit=1, PIN กำหนดเป็น Output เมื่อนั้น PIN ถูกเปลี่ยนเป็น High

21 GPxSET Register แต่ละ Port ของ GPIO คือ GPxSET registers โดย PIN นั้นต้องถูกกำหนดเป็น Output IF GPxSET.bit=0, ignored (no effect) IF GPxSET.bit=1, PIN กำหนดเป็น Output เมื่อนั้น PIN ถูกเปลี่ยนเป็น High GPxCLEAR Registers แต่ละ Port ของ GPIO คือ GPxCLEAR registers โดย PIN นั้นต้องถูกกำหนดเป็น Output IF GPxCLEAR.bit=0, ignored (no effect) IF GPxCLEAR.bit=1, PIN กำหนดเป็น Output เมื่อนั้น PIN ถูกเปลี่ยนเป็น Low

22 GPxTOGGLE Registers แต่ละ Port ของ GPIO คือ GPxToggle registers โดย PIN นั้นต้องถูกกำหนดเป็น Output IF GPxToggle.bit=0, ignored (no effect) IF GPxToggle.bit=1, PIN กำหนดเป็น Output เมื่อนั้น PIN ถูกเปลี่ยนเป็นค่าตรงกันข้าม

23 GPIO A GPIOA0 / PWM1 GPIOA1 / PWM2 GPIOA2 / PWM3 GPIOA3 / PWM4 GPIOA4 / PWM5 GPIOA5 / PWM6 GPIOA6 / T1PWM_T1CMP GPIOA7 / T2PWM_T2CMP GPIOA8 / CAP1_QEP1 GPIOA9 / CAP2_QEP2 GPIOA10 / CAP3_QEPI1 GPIOA11 / TDIRA GPIOA12 / TCLKINA GPIOA13 / C1TRIP GPIOA14 / C2TRIP GPIOA15 / C3TRIP GPIO B GPIOB0 / PWM7 GPIOB1 / PWM8 GPIOB2 / PWM9 GPIOB3 / PWM10 GPIOB4 / PWM11 GPIOB5 / PWM12 GPIOB6 / T3PWM_T3CMP GPIOB7 / T4PWM_T4CMP GPIOB8 / CAP4_QEP3 GPIOB9 / CAP5_QEP4 GPIOB10 / CAP6_QEPI2 GPIOB11 / TDIRB GPIOB12 / TCLKINB GPIOB13 / C4TRIP GPIOB14 / C5TRIP GPIOB15 / C6TRIP GPIO D GPIOD0 / T1CTRIP_PDPINTA GPIOD1 / T2CTRIP / EVASOC GPIOD5 / T3CTRIP_PDPINTB GPIOD6 / T4CTRIP / EVBSOC GPIO E GPIOE0 / XINT1_XBIO GPIOE1 / XINT2_ADCSOC GPIOE2 / XNMI_XINT13 GPIO F GPIOF0 / SPISIMOA GPIOF1 / SPISOMIA GPIOF2 / SPICLKA GPIOF3 / SPISTEA GPIOF4 / SCITXDA GPIOF5 / SCIRXDA GPIOF6 / CANTXA GPIOF7 / CANRXA GPIOF8 / MCLKXA GPIOF9 / MCLKRA GPIOF10 / MFSXA GPIOF11 / MFSRA GPIOF12 / MDXA GPIOF13 / MDRA GPIOF14 / XF GPIO G GPIOG4 / SCITXDB GPIOG5 / SCIRXDB C28x GPIO Pin Assignment BIT ที่เหลือ GPIO D,E,G,F คือ Reserved ตำแหน่งของ PIN บน eZDSP_TMS320F2812 board ดูได้จาก 2812_ezdsp_TechRef_F.pdf

24 ตารางที่ 1 PIN Assigment บน P4 และ P8 ของ DSP board

25 Ex. Example_281xEvPwm.c //Description #include “header_file” // ประกาศ function ที่ใช้ในโปรแกรม void init_eva(void) void init_evb(void) // void main(void) { init_eva ( ); init_evb ( ); for (; ;); } void init_eva ( ) { } void init_evb ( ) { } ( generate PWM1-12 ) ( ประกาศค่าต้นแบบให้กับโปรแกรม ) ( function ชื่อ init_eva/b แบบไม่มีการส่ง ตัวแปรเข้า / ออกจากโปรแกรม =void) ( โปรแกรมหลักเริ่มด้วยคำสั่ง main ) ( เรียกใช้ function init_eva ) ( Idle Loop ) ( สร้าง function ชื่อ init_eva() )

26 การสร้าง project 1. Menu Project->New

27 Project Name: ProjectPwm Location: c:\Project Project Type: Executable(.out) Target: TMS320C28XX Click: Finish NOTE: ใน Folder Project สร้าง header file และ C Source code สำหรับกำหนดค่า Default ของ DSP ไว้เรียบร้อยแล้ว

28 Menu File->New->Source File 2. เขียน C-Source Code

29 Menu:File->Save as

30 Save in: project Filename:ProjectPwm Save as type: C Source Files Click: Save

31 3. Add code file to the project Menu Project->Add files to project ไปที่ Folder Project : projectPwm.c :DSP281x_Codestartbranch.asm :DSP281x_Defaultsisr.c :DSP281x_Globalvariabledef.c :DSP281x_PieCtrl.c :DSP281x_PieVect.c :DSP281x_SysCtrl.c :DSP281x_header_nonBIOS.cmd :EzDSP_RAM_INK.cmd กำเนิด PWM กำหนดค่า Default ของ register ให้ DSP Link Command File Link Command File : จองพื้นที่ใน หน่วยความจำให้กับตัวประมวลผล

32 4. Add the C-runtime-library to Project Project->Build Option Linker->Library Search Patch Type:C:\Ti\c2000\cgtools\lib Linker->Include Libraries Type:rts2800_ml.lib Add the stack-size of 0x400 Linker->Stack Size(-Stack) Type: 0x400 Close Build Option Click OK

33 5. Menu Project->Build

34 6. Load File projectPwm.out and run Program Menu File->Load Program ->projectPwm.out ->Click Open

35 Run Program Halt Program

36 REFERENCE 1.Texas Instrument “TMS320x281x DSP Event Manager (EV) Referencre Guide.” (SPRU065d) November Texas Instrument “TMS320x281x DSP System Control and Interrupts Refer Ence Guide.” (SPRU078C) March Texas Instrument “ACI3_1For TMS320F281X Setup Company.” (SPRC130)


ดาวน์โหลด ppt Digital Signal Processing TMS320F2812 เบื้องต้น By Mr.Rungwicha Chaiyot.

งานนำเสนอที่คล้ายกัน


Ads by Google