xin tài liệu họ dsPIC30F

nguyenquoctrung-hhk

Thành Viên PIF
tình hình là em muốn làm một bộ lọc số dùng vi điều khiển, mới đầu thì em nghĩ dùng PIC, nhưng tham khảo trên mạng thì dsPIC rất thuận tiện thiết kế bộ lọc số, em muốn tìm hiểu, cũng chưa tìm được nguồn tài liệu nào, mong các anh chị đang nghiên cứu vê họ dsPIC30f giúp đỡ em về nguồn tài liệu, để em có thể nghiên cứu, em xin cám ơn
 
để thiết kế bộ lọc số thì có một dong hiện tại phải nói là rất mạnh. đó là DSP nhưng hiện tại dòng này ở việt nam rất ít người dùng và cũng rất khó kiếm tài liệu. còn em muốn dung con dspic thì em lên down datasheet của nó về tự nghiên cứu. tất cả mọi dòng ic hay vi điều khiển thì đều có datasheet của nó, và rất chi tiết.
 

2death

Cố Vấn CLB
Staff member
DsPIC cũng là chip DSP, của hãng Microchip, dùng với các ứng dụng cần DSP vừa phải thì cũng tạm được.
DSP mà Tuấn nó có lẽ các dòng DSP của TI.
Ngoài ra còn có các dòng DSP của các hãng khác như FreeScale...

DsPIC thì có nguyên 1 diễn đàn rất bự support cho nó, đó là bên PICvietnam, các bạn nên lên đó tìm hiểu, các thầy / anh / chị bên đó hỗ trợ về PIC rất nhiều.

Datasheet là cái đương nhiên cần phải xem. Ngoài ra thì vận dụng kĩ năng google để tìm tài liệu ở các website, forum nước ngoài (Sẽ có rất nhiều tư liệu, vì DsPIC phổ biến và người ta dùng nhiều rồi)
 
DSP thì ở đâu cũng vậy, chỉ có bộ lọc với bộ lọc, sai phân với sai phân, hàm thì vác từ bên này sang bên kia cái một, bộ lọc thì Matlab làm ầm ầm. Không có lí do gì các bạn phải kiên dè dòng này với dòng kia. Nhưng, DSP của TI thì dụng cụ debug rẻ nhất là cái XDS100 V2 Tàu bán ở PNlab giá hơi chác, rất khó DIY. Không biết PIC như thế nào chứ bắt đầu với TI thì không khả quan cho lắm.

Xét về hiệu năng làm việc thì 1 con ARM CM3 hay CM0 có tần số cao phổ biến là 50Mhz hay 100Mhz chạy vẫn ăn đứt mấy con dsPIC. :)). Các bạn có thể coi benchmark tại đây:
http://www.ti.com/lit/an/slaa205c/slaa205c.pdf

Ngoài ra gói CMSIS của ARM có gần đủ hết các thứ ta cần: FIR, IIR, FFT, nhân ma trận tối ưu ... Việc gì mà phải ngại các bạn.
 

nguyenquoctrung-hhk

Thành Viên PIF
vấn đề mình thiết kế quan trọng tận dụng về mặt tiện lợi cũng như mặt kinh tế, với bộ lọc số nhỏ nhoi và giao tiếp với GLCD bên dsPIC hỗ trợ nhiều, mà dùng tới arm thì quá lãng phí. tiền mua một con arm đâu phải rẻ đâu bạn nhỉ.:)
 
điều quan trọng của xử lý tín hiệu số trên vi điều khiển thì gặp phải một số khó khăn sau.
thứ nhất: trước tiên chưa biết dòng đó có chạy nổi hay không mà là vấn đề lấy mẫu riêng việc lấy mẫu để xử lý tiếng nói không đã cần đến một bộ RAM cực khủng chứ đừng có nói đến là xử lý âm thanh. bình thường theo định lý lấy mẫu thì tần số lấy mẫu ít nhất là gấp đôi tần số max của tín hiệu mà tín thiệu âm thanh khoảng 20KHz. tức là phải lấy mẫu với tần số 40Khz. với lượng lấy mẫu vậy thì con nào lưu trữ nổi. ở đây những ứng dụng dùng cho xử lý chỉ là những tín hiệu có tần số thấp. như tiếng nói 4k lấy mẫu 8k là vừa.
thứ hai: với lượng lấy mẫu đó thì các bộ lấy mẫu có lấy kịp hay không.
thứ ba: là tốc độ xử lý. lấy mẫu kịp mà không xử lý nổi thì cũng như không.
để chọn vi diều khiển thì cần đến 3 vấn đề trên không được thiếu bất kỳ yếu tố nào cả.
để nâng cao chất lượng của việc lấy mẫu thì em thử lên trang TI sample con TLV320AIC23BPW thử xem, nó dùng giao thức I2S để giao tiếp. con này thì anh chưa dùng nhưng thấy TI dùng trong việc lấy mẫu tín hiệu MICROPHONE, CAMERA,và hỗ trợ luôn HEADPHONE. Dùng nó hơi khó khăn nhưng nghe nói là dùng khas ổn cho việc lấy mẫu.
 
Nếu như bạn Phương Tuấn nói thì em cũng nên chuẩn bị tiền tậu cái kit về luôn đi nếu có ý định làm những việc liên quan tới âm thanh, hình ảnh, chứ giờ mà em lại DIY nữa thì lại càng mất phương hướng. Hình như P.Tuấn nó rành DIY lắm, kiếm bạn í mà nhờ DIY.
Ngoài ra, với những ứng dụng đồ sộ như bạn P.Tuấn nói thì khó có thể nhờ tới mấy con dsPIC và ARM nếu không có RAM và FLASH ngoài.
Nếu mục đích em hướng tới là những tín hiệu có phổ tần số dưới 1Khz hoặc thấp hơn với những bộ lọc ít tầng thì cứ ARM và dsPIC mà tới em à.

Khi làm việc với dòng nào thì phải tính luôn tới công cụ để làm việc với dòng đó. Nếu không, có con CPU ngon rồi cũng chỉ để ngó thôi.

JTAG cho mấy con TI nằm ở đây:
http://www.pnlabvn.com/pnlab/index.php/Mach-nap-VDK/Mach-nap-DSPMSP430.html
PIC đây:
http://tme.com.vn/Products.aspx?cateId=81

Còn việc GLCD gì LCD gì gì thì do chỉ là GPIO nên port code qua lại không khó như em nghĩ. Vì là mã nguồn mở nên em có thể tham khảo để đưa nó qua 1 dòng khác 1 cách dễ dàng mà. Nhiều bạn ngại port code, nhưng port code là việc mà các bạn nên làm và phải tập tành ngay từ bây giờ.

Tài liệu thì cứ datasheet và các app note mà làm tới. Việc kiếm mấy thứ này không phải là việc khó khăn gì đâu, Microchip nó có cả kho.
 

nguyenquoctrung-hhk

Thành Viên PIF
nếu em xử lý tín hiệu âm thanh dãi tần từ 20Hz đến 20kHz, thì phải dùng con khác, như anh nói dưới 1Khz thì còn dùng được dsPIC với ARM. ở đây em chưa hiểu ý anh là tần số lấy mẫu hay là phổ tín hiệu ? nếu tần số lấy mẫu lớn phải cần đến dung lượng bộ nhớ lớn, mà mình cần bộ nhớ ở đây chủ yếu là phần nào trong con dsPIC hay ARM anh, cái này em cũng gà lắm chẳng biết có phải là ROM hong nữa. hehe
 
chủ yếu là các biến sẽ được lưu trữ trên RAM. trừ trường hợp em dùng ROM để lưu trữ. để một chương trình chạy nhanh thì không ai lưu giá trj cần dùng vào ROM cả và số lần ghi vào ROM cũng có giới hạn không giống như RAM nếu em ghi liên tục thì nó sẽ bị chết ROM. không dùng được nữa. tại vì khi ghi vào ROM em phải tốn thời gian để ghi vào và lấy ra một khi cần dùng trong khi lưu trử trên RAM thì không mất một chu kỳ nào cho việc đọc dữ liệu.
 
Hình như dsPIC không dùng lọc âm thanh bạn ạ! Không FPU, không DMA, năng lực kém và ...
Nếu bạn chỉ định làm quen với DSP thì chọn dsPIC cũng tốt nhưng M0 là lựa chọn đáng giá hơn, M3 thì tạm và M4 thì quá ok, DSP TI thì trên cả tuyệt vời.
Mình nghĩ đây là thứ bạn cần:
http://www.ti.com/tool/tmdx5535ezdsp?DCMP=c5000-c553x-110830&HQS=c553x-b-tf
55$ cho cả target và JTAG, một món hời đấy !

Thường thì các cof sẻ được lưu trong ROM. Con CM3 100Mhz anh thử nghiệm thì xu lí 320 mẫu trộn 1k và 15k trong khoảng 0.0005s với bộ lọc thông thấp FIR 29 hệ số và các phép tính được dựa vào số float single precision. Nếu dựa trên số nguyên thì hiệu năng chắc chắn sẻ khủng hơn nhiều do ARM CM3 cũng có các lệnh MAC cho số nguyên.
Do là dữ liệu tạo sẵn nên cũng chưa đánh giá đúng được, trên thực tế nếu dùng DMA cho A2D thì hiệu năng chắc không kém đâu.

@ phương tuấn : "lưu trử trên RAM thì không mất một chu kỳ nào cho việc đọc dữ liệu"
ít nhất thì cũng tốn 1 ck chứ ! hi hi
 
Top