DSP是為運算而生的芯片,他最強大的地方就在與它的數**算性能,那是由它的指令集支持的。那些拿DSP和STM32比較的,省省吧,如果你兩者都熟悉你就知道根本沒啥好比的,
如果我需要很多高級的接口,比如以太網和USB,那么我自然選STM32,如果我需要實現一些算法,那肯定會選DSP。如果你對運算速度不敏感,反正72M的速度已經比原先單片機快很多了,那當然是看你熟悉哪個,哪個價格比較好,支持比較好。
從51 AVR到DSP最大的障礙
1、應該是編譯環境吧,TI的DSP都用的是CCS,CCS界面和原先IAR區別不是一般的大,比如程序導入,比如觀察變量,比如燒寫FLASH。恩,是的。用過了IAR那種傻瓜化的操作了之后,真是怎么弄怎么別扭,CCS真是太不友好了。但是沒辦法,IAR他們是專門做編譯軟件的,TI主要是做DSP的,TI也意識到這個問題了,所以現在推出的CCSV4好像在這方面有很大的加強。不過網上還是CCS3.3的資料最多,大家也熟悉,如果剛接觸還是先用CCS3.3為好。
如果你手頭有快開發板,那里面應該有對這些操作的詳細說明。所以這個慢慢應該也可以熟悉。
2、庫文件。TI的庫文件都是聯合+結構+位域的形式。對這些結構不是非常熟悉的話可能看著有點暈,這個只能慢慢去看C的書。最納悶的可能就是它的地址映射,如何把寄存器映射到相應的地址,那是它由編譯器來支持的主要通過#PROGRM來實現,可以去看看它的CMD文件
3、CMD,CMD文件可能是入門最大的一個坎了,單片機或者ARM根本就沒這么一說,這破東西到底啥用吶?CMD文件主要作用就是用來做內存分配,你的芯片里面有FLASH有RAM有BOOT ROM,你編寫的程序有代碼,要燒到FLASH中,有全局變量要存到RAM的全局變量區域,有局部變量,要存到堆棧中。CDM文件其實就是把你代碼中的這些一塊一塊的東西和具體的硬件存儲對應起來。你可以隨你需要任意來配置,比如我有一個數據表格,普通的單片機你定義好了之后會有編譯器來幫你存放到一個地方,但是DSP里面你可以通過配置CMD把它放在你認為合適的地方。再比如堆棧空間的大小,以前從來沒關心過堆棧大小,但是開辟的太大的話可能浪費內存空間。當然,每個芯片都有一個標準的CMD文件,初學者完全可以不用去修改它。
4、文檔。TI的文檔包括數據手冊和外設指南,很多人說很亂,不像其它芯片,所有外設的資料都會放在一起,但是TI會每個外設弄一個。這就要說說TI的外設,它的外設都非常專業,是的專業。比如它的PWM外設,叫ePWM,也就是增強型的PWM,這個外設可以輕松輸出非常復雜的PWM波形,而且不用CPU參與。所以它的外設指南有100多頁,你會發現很多外設都是這樣,里面有很多很多增強的功能,相對應的它的說明文檔也就非常長。要是全部都集合在一起那就會非常的大。而且它的每個外設都是有獨立版本的,比如ADC,已經從0版到3版,而ePWM還是1版,分開之后升級的維護會方便很多,很多外設在類似的芯片都是一樣的。
用STM32的時候我從來沒看懂過它的庫,甚至都沒仔細看過它的手冊。但是最后也搞出來了,完了之后我對這塊芯片沒多少熟悉的感覺。但是用C2000系列的DSP的時候則要反反復復的去看外設指南,分析手冊上給出的結構,讓我對芯片非常熟悉,再加上它的編譯環境是完全可以配置的,我甚至都知道我某個變量會在哪個地方。
工業控制與自動化, 這個按21IC的網友說:“那是萬精油”面很廣。
芯片只是個軀殼。 重要的是專業知識和算法。TI的DSP 性能質量穩定可靠。 讓你用的放心。
而STM32, 有許多未知的因素,比如BUG,可靠性等等,如果樓主的產品價錢利潤高,當然使用TI的DSP或者MICROCHIP的DSPIC.咱們不用太擔心 芯片的質量問題,芯片的BUG/抗干擾等等。
TI的DSP有些地方做的比STM32專業好多。例如可靠性,TI的DSP的許多寄存器有寫保護功能,因此對某些從引腳等干擾芯片內部寄存器/改寫內部寄存器等嚴重問題,會有很大幫助。但是STM32沒有這個功能。還有TI在DSP在電機控制控制方面做得很專業,PWM部件的功能,比如死區,輸入保護,PWM脈沖的特殊波形等方面都有獨到的地方。
而STM32 還是顯得比較嫩。 TI多年前都專門有虛擬浮點庫給定點的DSP使用。也是最找出浮點DSC的廠家。28335比STM32F4早了3-4年推出市場。
而且TI 還出了一個芯片內包括兩個核心:ARM7/CM3+DSP的控制器。還有多通道同時采樣轉換的ADC , TI在醫學/電力電子與新能源方面的應用等都可以看出 TI比ST公司專業很多。更知道咱們需要什么。
但對于咱們使用者來說,如果是中檔路線或民用的工業產品,或者對成本比較敏感的產品,當然要STM32之類的了。作為工程師,可以快速使用多種芯片,這個是必須的。
來源;21ic