DSK6416 Labs Project With CCS V4

May 2, 2017 | Author: Jay Lee | Category: N/A
Share Embed Donate


Short Description

Download DSK6416 Labs Project With CCS V4...

Description

www.titans.com.vn / www.hlab.com.vn

DSK6416 Labs Project with CCS V4 Appendix 1- Giới thiệu về DSK6416 DSP ........................................................................................................... 2- Tạo project với CCS V4 và liên kết với phần cứng DSK6416 ........................................................ 3- Các bài lab cơ bản sử dụng CCS V4 với board DSK6416 ............................................................. • Phát một sóng sine với bảng sine có sẵn tới DAC của chip AIC23 .......................................... • Giao tiếp với ngoại vi LED, DIP, FLASH, AIC23 trên board DSK6416 ................................. • Tạo một bộ lọc FIR đơn giản và chạy trên boardDSK6416 ..................................................... • Tạo bộ lọc IIR trên board .........................................................................................................

[email protected]

Page 1

www.titans.com.vn / www.hlab.com.vn

1. Giới thiệu chung về DSK6416 dsp starter

Thông số chính : • A Texas Instruments TMS320C6713 DSP operating at 225 MHz. • An AIC23 stereo codec • 16 Mbytes of synchronous DRAM • 512 Kbytes of non-volatile Flash memory (256 Kbytes usable in default configuration) [email protected]

Page 2

www.titans.com.vn / www.hlab.com.vn

• 4 user accessible LEDs and DIP switches • Software board configuration through registers implemented in CPLD • Configurable boot options • Standard expansion connectors for daughter card use • JTAG emulation through on-board JTAG emulator with USB host interface or external emulator • Single voltage power supply (+5V)

------------------------------------------------------------------------------------------------------------------

[email protected]

Page 3

www.titans.com.vn / www.hlab.com.vn

2. Hướng dẫn tạo project với CCS4 Bước đầu khởi động chương trình từ shortcut trên desktop. Sau đó vào Menu File -> New-> CCS Project.

Tại hộp thoại, đặt tên cho project và chọn nơi lưu cho project

[email protected]

Page 4

www.titans.com.vn / www.hlab.com.vn

Chọn dòng DSP sử dung, cụ thể ở đây là C6000 family Next

->Next

[email protected]

Page 5

www.titans.com.vn / www.hlab.com.vn

Thiết lập như trong hình và Finish

[email protected]

Page 6

www.titans.com.vn / www.hlab.com.vn

Thiết lập thuộc tính cho project

Trong mục Include Options, thêm vào các đường dẫn như trong hình.

[email protected]

Page 7

www.titans.com.vn / www.hlab.com.vn

Các thư mục DSK6416, CSL, bios đi kèm với tài liệu này, chúng ta sẽ copy vào thư mục C:\ProgramFiles\Tesxas Instruments\ Tại mục Predefined Symbols, chúng ta sẽ thêm tên chip sử dụng

[email protected]

Page 8

www.titans.com.vn / www.hlab.com.vn

Tại mục File Search Path chúng ta thêm các thư viện và đường dẫn chứa các thư viện đó .

[email protected]

Page 9

www.titans.com.vn / www.hlab.com.vn

Sau khi thiết lập những thứ cần thiết cho một project mới, sau đây sẽ là chương trình xuất ra màn hình Console dòng chữ “Hello World!” Tại menu File ->New chúng ta sẽ thêm một Sources File C

[email protected]

Page 10

www.titans.com.vn / www.hlab.com.vn

Thêm nội dung vào HelloWorld.c Sau đó tiến hành Build Active Project

[email protected]

Page 11

www.titans.com.vn / www.hlab.com.vn

Màn hình xuất hiện thông báo lỗi về stack, để khắc phục chúng ta sẽ làm như sau:

[email protected]

Page 12

www.titans.com.vn / www.hlab.com.vn

Sau đó chúng ta sẽ Rebuild lại, kết quả thu được như sau:

Tiếp theo chúng ta sẽ tạo một file dsk6416_HelloWorld.ccsxml, đây là file được dung để liên kết với board DSK6416.

[email protected]

Page 13

www.titans.com.vn / www.hlab.com.vn

[email protected]

Page 14

www.titans.com.vn / www.hlab.com.vn

Công việc cuối cùng, chúng ta sẽ kết nối board DSK6416 với PC thông qua một cable USB. Sau đó tiến hành chạy thử.

Và đây là kết quả thu được:

[email protected]

Page 15

www.titans.com.vn / www.hlab.com.vn

3. Các bài thí nghiệm cơ bản chạy trên CCSV4. 3.1. Tạo một sóng sine, vẽ đồ thị minh họa và output ra ngoài DAC của AIC23. Tạo một project theo hướng dẫn phía trên và thêm vào các file cần thiết:

Copy đoạn code này vào hàm file main.c /* * Program creat a new sine wave output to both channels * Creator : Chu Manh Cuong * Date: 19/8/2011 * Fs = 8Khz * Hardware: DSK6416 board * Software: CCSV4 Texas Texas Instruments */ #include #include Uint32 fs=DSK6416_AIC23_FREQ_8KHZ; //set sampling rate //set gain short gain = 10; //creat sine wave table short _sine_wave[8]={0,707,1000,707,0,-707,-1000,-707};//sine values short output_buffer[8]; void main() { Uint16 i,j; comm_poll(); //init DSK, codec, McBSP while(1) { for(i=0;i Debug Active project. Kết nối headphone hoặc speaker (loa) tới outout trên boar, nhấn vào nút Run và nghe âm thanh được phát ra. Uint32 fs=DSK6416_AIC23_FREQ_8KHz là tần số lấy mẫu được thiết lập cho DAC AIC23, cụ thể ở đây tần số lấy mẫu là 8KHz. Commpoll() là khai báo board DSK6416, khởi động AIC23 và giao tiếp giữa DSP6416 với AIC23. _sine_wave[8] là bảng sóng sine được quy định sẵn các giá trị đã được lấy mẫu, output_sample() là hàm được gọi ngầm và được khai báo trong file c6416dskinit.h, có chức năng xuất mẫu tới AIC23, chú ý khi khởi tạo project chúng ta phải copy 2 file c6416dskinit.h và c6416dskinit.c tới thư mục chứa project đã tạo.

[email protected]

Page 17

www.titans.com.vn / www.hlab.com.vn

Mô tả chương trình như sau: _sine_wave [8] :là một tín hiệu sine rời rạc, khi xuất tới AI23 nó sẽ convert thành tín hiện sine gần giống tướng ứng ở dạng analog. Biến gain là biến độ lợi, làm tăng biên độ giá trị ngõ ra để âm thanh nghe được có biên độ cao hơn. Hàm output_sample() là hàm xuất giá trị rời rạc tới AIC23. Vẽ đồ thị trong CCSV4 cho project này như sau: sau khi nhấn vào Debug Active project chúng ta vào Tools -> Graph -> Dual Time:

Mô tả thông số chúng a cần quan tâm: Acquisition Buffer Size: kích thước của biến mảng (cụ thể ở đây là 8 byte).

[email protected]

Page 18

www.titans.com.vn / www.hlab.com.vn

DSP data type : kiểu dữ liệu của biến mảng ( cụ thể ở đây là biến có giá trị là biến nguyên 16bit có dấu). Sampling rate: tần số lấy mẫu (exp: 8KHz). Start Address A: tên của biến mảng thứ nhất. Start Address B: tên của biến mảng thứ hai Display data size: kích thước của dữ liệu cần hiển thị. Ngoài ra các thông số khác chúng ta có thể để mặc định. Sau khi nhấn OK chúng ta thu được : Đồ thị của _sine_wave :

Đồ thị của output_buffer:

Nhìn vào đồ thị chúng ta có thể quan sát thấy rằng, biên độ của sóng sine được xuất ra đã tăng lên gấp 10 lần. Biến đổi FFT cho _sine_wave: Tools - >Graph->FFT Magnitude

[email protected]

Page 19

www.titans.com.vn / www.hlab.com.vn

. Một số thông số cần quan tâm: Acquisition Buffer Size, Dsp Data Type, Sampling Rate HZ, Start Address, FFT Order Ngoài ra một số chức năng khác cũng có thể tự tham khảo.

[email protected]

Page 20

www.titans.com.vn / www.hlab.com.vn

3.2.API giao tiếp với ngoại vi trên board DSK6416 Đi kèm với board mạch DSK6416, chúng ta được nhà sản xuất cung cấp kèm theo các API hỗ trợ cho board để giúp việc giao tiếp ứng dụng trở nên đơn giản hơn, cụ thể đi kèm với board gồm có các file:

Với các hàm API có sẵn chúng ta chỉ việc khai báo và sử dụng chúng. Ví dụ: Chương trình giao tiếp với LED và DIP trên board:

/* * Interface with LED, DIP on board * Creator : Chu Manh Cuong * Date: 19/8/2011 * Hardware: DSK6416 board * Software: CCSV4 Texas Texas Instruments * */ /Include API library support for board #include #include #include void main() { DSK6416_init(); DSK6416_LED_init(); //init led DSK6416_DIP_init(); //init dip DSK6416_LED_on(0); //on led 0 while(DSK6416_DIP_get(0)); //loop wait for dip0 pressed DSK6416_LED_on(1); //on led 1 DSK6416_LED_off(0); //off led 0 while(1); //stop here }

[email protected]

Page 21

www.titans.com.vn / www.hlab.com.vn

3.3.Thiết kế bộ lọc FIR trên DSK6416 Như chúng ta đã biết bộ lọc FIR được đặc trưng bởi : =ℎ



Với x(n) là tín hiệu ngõ vào, h(n) là đáp ứng xung của bộ lọc, y(n) là tín hiệu ngõ ra sau khi đã được lọc. Để tính tích chập này chúng ta có thể sử dụng một số phương pháp như sau: Đối với phương pháp xử lý khối chúng ta sẽ sử dụng một số phương pháp sau: a. Dạng tích chập (convulation) Đây là dạng được dung để tính tích chập trực tiếp và dạng LTI sẽ được tính theo công thức này. =

,



Công thức này sẽ tính tổng tất cả các giá trị h(i)x(j) với i+j = n. Trong phương trình trên i,j phụ thuộc vào đặc tính tự nhiên của bộ lọc và dữ liệu đầu vào là h(n) và x(n). b. Dạng trực tiếp(direct form) =

. ,





Với M là bậc của bộ lọc nhân quả FIR với đáp ứng xung h(i) , i = 0,1,2….M. L là chiều dài của chuỗi dữ liệu ngõ vào (cụ thể là số mẫu ngõ vào). Như vậy khối dữ liệu ngõ ra sẽ có chiều dài như sau: Ly = L+M Suy ra: 0≤ n ≤L+M-1 c. Dạng tuyến tính bất biến theo thời gian LTI(LTI form)

=

, ,





Với L là chiều dài (sô mẫu) của ngõ vào, M là bậc của bộ lọc có đáp ứng xung h(i),với i= 0,1,2…M. n = 0,1,2,….L+M-1. Là chiều dài của tín hiệu ngõ ra. d. Trạng thái thức thời và trạng thái tĩnh.

[email protected]

Page 22

www.titans.com.vn / www.hlab.com.vn

=





Với 0≤ n ≤ L – 1. Đây được xem như là phương trình vào ra I/O cho tất cả bộ lọc FIR bậc M. Nhằm mục đích viết chương trình, người ta sẽ sử dụng công thức b , bởi công thức này không dẫn đến việc vượt quá vùng biên của dãy. Thực hiện bộ lọc FIR với CCSV4 chạy trên nền DSK6416. a. Phương pháp xử lý khối (block processing method) Đây là phương pháp xử lý một khối dữ liệu đã có sẵn x(n) và cho ra một khối dữ liệu mới y(n), Với FDA Toolbox của matlab chúng ta sẽ thu được hệ số đáp ứng xung h(n bộ lọc, cụ thể trong phần này sẽ là thiết kế bộ lọc FIR thông thấp (lowpass fir filter) Đây là đáp ưng xung của bộ lọc thu được trên Matlab với các thông số sau:

Specify order: là bậc của bộ lọc Fs : là tần số lấy mẫu Fpass: dải thông Fstop : dải dừng Áp dụng chạy trên nền chip DSP với board DSK6416 : [email protected]

Page 23

www.titans.com.vn / www.hlab.com.vn

Tạo một project mới với các file như trong hình hoặc add project được tạo sẵn đi kèm với tài liệu này chúng ta sẽ có một project như sau:

Sử dụng công thức I/O như sau: =





Với 0≤ n ≤ L – 1. Chương trình main: /* * Project: fir filter base with dsk6416 board * Block processing method * Author : Chu Manh Cuong * Email :[email protected] * Creat date: 24/8/2011 * Board support: DSK6416 TI * Combiner: CCS V4 * */ //include library support #include #include "dsk6416_aic23.h" #include "HelloWorld.cof" #include Uint32 fs=DSK6416_AIC23_FREQ_32KHZ; //set sampling rate //macro function #define max(a,b) (((a)>(b))?(a):(b)) #define min(a,b) (((a)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF