You are on page 1of 11

Stalone912@gmail.

com

Lập trình TMS320F28335 trên Simulink


Matlab phiên bản 2009 trở lên đã hỗ trợ rất nhiều và cụ thể các board mạch xử lý
tín hiệu của Texas Instrument (TI) các dòng từ C2000 đến C6000…

Sơ đồ kết nối từ PC đến ngoại vi


Trên PC cần các phần mềm để biên soạn, biên dịch chương trình và download
chương trình xuống board qua cáp kết nối (có nhiều loại cáp tùy theo phần cứng).
Kết nối ngoại vi bên ngoài với board trung tâm theo mục đích lập trình.
Trong tài liệu này sẽ tiến hành soạn chương trình trên Simulink, biên dịch và
đổ kết quả xuống board mạch thực hiện một số khối sau: GPIO, đọc ADC điều
khiển PWM và truyền lên máy tính bằng chuẩn giao tiếp SCI (UART).
Yêu cầu:
- Phần mềm:
Matlab 2009 trở lên.
CCS (Code Composer Studio) V3.3 trở lên (chú ý phiên bản tương thích nhau).
Cài thêm một số thư viện cho CCS: Flash API, C/C++ Header file… được cung
cấp đầy đủ trên trang chủ của TI.
- Phần cứng: TMS320F28335 (trong tài liệu này), cáp XDS100 emulator.
Sau khi cài đặt đầy đủ ta tiến hành thiết lập và kiểm tra sự kết nối giữa các
phần mềm với nhau:
Stalone912@gmail.com

Khi cài CCS xong sẽ cho ta 2 phần mềm:

Đầu tiên ta cấu hình cho board mà ta đang làm TMS320F28335 bằng cách chạy
Setup CCStudio v3.3:

Chọn cụ thể board TMS320F28335 với cáp XDS100usb emulator rồi Save and
exit. Khi đó phần mềm CCS sẽ làm việc với board đã cài đặt.
Vì chúng ta lập trình trên Simulink, nên lập trình trên phần mềm CCS 3.3 chúng
ta không cần quan tâm nhiều.
Trước tiên chúng ta kiểm tra kết nối giữa Matlab và CCS (nhớ kết nối phần cứng
board với máy tính bằng cáp trong khi thực hiện) bằng các lệnh sau:
>> cc=ticcs % kiểm tra phần mềm CCS và board đang kết nối
>>checkEnvSetup(‘ccs’, ‘f28335’, ‘check’) % kiểm tra phần mềm, thư viện, và
các phần hỗ trợ biên dịch, nạp board: Flash API, DOS/BIOS, C/C++ header file…
Và nhiều hàm khác hỗ trợ tùy phiên bản.
Stalone912@gmail.com

Khi đó Matlab tự động gọi CCS mà ta không cần bật nó lên, tra các cấu hình và hỗ
trợ của phiên bản phần mềm.
Sau khi kiểm tra đúng đắn thì cơ bản ta đã xong phần cài đặt và tiến hành thiết kế
trên Simulink.

Thiết kế chương trình:


- Tạo một file model mới.
- Lấy trong Target Support Package => Supported Processor => Texas
Instruments C2000 => Target Preferences => F28335 eZdsp như các hình sau bỏ
vào file model mới tạo. Đường dẫn trên gồm tất cả các khối hỗ trợ cho các board của TI
cũng như một số hãng khác.
Stalone912@gmail.com

- Trong Texas Instruments C2000 có nhiều khối hỗ trợ cho các module của
F28335 như sau:
Stalone912@gmail.com

Ngoài ra còn hỗ trợ nhiều khối xử lý toán học (IQmath, DMC).


- Tiếp theo ta cấu hình cho file model từ Simulation => Configuration
Parameters:
Stalone912@gmail.com

- Tiếp theo ta thiết kế các module của mình:

Trong đó khối GPIO DO1: Có chức năng điều khiển nhấp nháy chân GPIO 30 theo
chu kì chọn trong khối constant 1.
Stalone912@gmail.com

Khối GPIO DI sẽ nhận tín hiệu vào chân GPIO 32 và điều khiển xuất giá trị ra
chân GPIO 34 của khối GPIO DO 2.

Khối ADC cổng A đọc tín hiệu ADC từ chân (có mức điện áp từ 0 ÷ 3.3V) và xử
lý: Count*100/4095 để lấy được tín hiệu phần trăm đưa ra điều khiển độ rộng PWM.
Stalone912@gmail.com

Cách tính chu kì theo Timer Period:


=Timer period*Clock cycle (PWM)
=Timer period*Clock cycle*(TBCLK/HSTBCLK)
Như ở TH trên: CK=1000*(1/150MHz)*(1/1)=6.66*10^-6 (s)
Còn nhiều thiết lập khác chúng ta có thế nghiên cứu thêm trong Help.
Stalone912@gmail.com

Tiếp theo ta thiết lập khối SCI: Là khối truyền tín hiệu theo chuẩn nối tiếp
(UART). Thiết lập trên khối đơn giản là chọn cổng, chọn ký tự đầu, ký tự cuối trong gói
dữ liệu. Có thể cho phép ngắt bộ đẹm dữ liệu (cờ tràn sẽ báo khi bộ đệm đầy).

- Tiếp theo, ta cấu hình các khối này trên Reference Board F28335:

Các khối ngoại vi có tần số hoạt động dựa vào bit HSPCLK. Mặc định là 1 tức tần
số bằng 1/2 tần số xung Clock. (75MHz)
Stalone912@gmail.com

Thiết lập thông số truyền thông cho SCI tương tự như RS232.
- Sau khi thiết lập xong các thông số cho từng khối, ta thiết lập tần số lấy mẫu
riêng cho từng module lập trình riêng rẽ. Khối nháy led cổng GPIO 30 theo chu kỳ 0.5s.
Khối GPIO DI và DO (nhận nút nhấn thì có thể chu kỳ 0.01 s).
- Tiếp theo là dịch chương trình bằng cách bấm nút Incremental Build. Khi đó
Simulink sẽ tự động gọi CCS lên, biên dịch chương trình, download chương trình
Stalone912@gmail.com

xuống Board mạch F28335 (nhờ DOS/BIOS tạo các linker file và commander đã được
cài đặt). Nếu không có lỗi gì thì chương trình đã được download xuống Board và chạy
như đã lập trình.
- Kết quả được ghi lại trong file Video sau.
https://drive.google.com/file/d/0B7McRukClCLaSmJMckRkdjFOUk0/edit?
usp=sharing

You might also like