VMIC5565反射內(nèi)存卡128MB256MB
[導(dǎo)讀] STM32F723E主打高速USB PHY特性,新探索套件還內(nèi)置一個(gè)安捷倫Pmod連接器和新定義的STMod+連接器,后者讓用戶能夠通過所提供的扇出接插板,連接Wi-Fi模塊、 SeedStudio Grove模塊、MikroElektronika click boards,或者連接電路試驗(yàn)板快速開發(fā)原型。
說實(shí)話,筆者覺得有點(diǎn)跟不上ST的節(jié)奏,我說的不是ST的全部產(chǎn)品,單是為MCU推出的評(píng)估套件這一塊,就令人目不睱接。
去年下半年的STM32F769-DISCO還沒完全熟悉,然后就是NUCLEOF412/F413系列出來了。這不,ST又推出了STM32F723E-DISCO及NUCLEO-F722E,前者隸屬DISCOVERY陣營,搭載的是 STM32F723IEK6 MCU,主打高速USB PHY特性,后者使用的是STM32F722ZET6 MCU,是了款標(biāo)準(zhǔn)的NUCLEO-144評(píng)估板。
在USB 3.0及USB 3.1大行其道的今天,MCU上的USB接口仍然處于相對(duì)落后的狀態(tài),雖則現(xiàn)有MCU大多提供了USB HS/FS接口,但其速率大多止步于全速USB接口標(biāo)準(zhǔn),數(shù)據(jù)吞吐率極其有限,這樣限制了MCU在大數(shù)據(jù)吞吐場(chǎng)合的應(yīng)用。下表給出了目前USB接口的一參考數(shù)據(jù)。
STM32F723IEK6微控制器的USB-HS (高速)設(shè)備物理層(PHY)芯片的高速USB連接器,以及USB-FS (全速)連接器和TFT 240x240像素LCD觸摸屏。該套件還預(yù)裝演示軟件,包括一個(gè)WAV音頻播放器、簡易視頻播放器和錄音機(jī)。
STM32F723E-DISCO不僅為用戶帶來了高速USB體驗(yàn),同時(shí)秉承了DISCO一貫的主張,板載大量的傳感器及LCD,為用戶提供豐富的外設(shè)接口,帶來更好的體驗(yàn)。
STM32F723E-DISCO開發(fā)套件包括MEMS麥克風(fēng)、MEMS傳感器、音頻編解碼器和用戶界面顯示屏,支持創(chuàng)新應(yīng)用演示?;诟咝阅躍TM32F7微控制器,新探索套件STM32F723E-DISCO標(biāo)志著下一代靈活性即將到來,為開發(fā)人員提供功能更豐富的第三方模塊,進(jìn)一步擴(kuò)展應(yīng)用功能。
除Arduino Uno排針外,新探索套件還內(nèi)置一個(gè)安捷倫Pmod連接器和新定義的STMod+連接器,后者讓用戶能夠通過所提供的扇出接插板,連接Wi-Fi模塊、 SeedStudio Grove模塊、MikroElektronika click boards,或者連接電路試驗(yàn)板快速開發(fā)原型。
我要看板子,別廢話!行,這就看。
居然象是工包?這次的包裝里面居然連用戶快速指南都省了,不要懷疑是否二手,貨真價(jià)實(shí),就是這個(gè)樣。
套件內(nèi)包括兩塊板,其中一塊是擴(kuò)展板,ST管它叫Fanout,提供了目前流行的一些接口,如MikroElektronika Click board兼容接口。
STM32F723E-DISCO提供的主要特性如下:
● STM32F723IEK6微控制器,512KB Flash,256KB SRAM,UFBGA176封裝
● 板載ST-LINK/V2-1調(diào)試器
● 240X240分辨率LCD,帶觸摸屏,大小為1.54英寸
● SAI音頻解碼器
● 4個(gè)ST-MEMS MIC
● 音頻輸入、輸出接口
● 512Mbit QSPI Flash存儲(chǔ)器
● 8Mbit PSRAM存儲(chǔ)器
● USB OTG HS/FS接口
● ESP-01 WiFi接口
● PMOD連接器
● STMod+連接器
● Fanout擴(kuò)展板
STM32F723E-DISCO開發(fā)板正面的一些主要元器件,主要包括LCD、ESP8266接口、USB OTG接口及PMOD、STMod+連接器等。
STM32F723E-DISCO開發(fā)板背面的設(shè)備,主要包括有STM32F723MCU,擴(kuò)展的QSPI及PSRAM存儲(chǔ)器,Ardduino UNO V3接口及WM8994音頻解碼器等。
套件內(nèi)的Fanout擴(kuò)展板提供了豐富的其它類型接口,如下圖
Fanout擴(kuò)展板提供了一些其它設(shè)備廠商開發(fā)的流行設(shè)備接口,如Grove System提供的Grove接口,在Arduino及Intel的許多設(shè)備上使用非常頻繁,F(xiàn)anout板上提供了兩個(gè):UART及I2C接口,可以方便的對(duì)接基于Grove接口的外設(shè)。另外現(xiàn)在基于Mikrobus的外設(shè)也非常多。通過Fanout擴(kuò)展板,STM32F723E-DISCO的適用性大增強(qiáng)。
STM32F723E-DISCO板載一顆STM32F723IEK6的芯,基于ARM Cortex-M7,最高主頻216MHz,支持FPU運(yùn)算,內(nèi)置的ART加速技術(shù),結(jié)合8KB的數(shù)據(jù)及8KB的指令緩存,可實(shí)現(xiàn)0等待執(zhí)行操作。該CPU的CoreMark運(yùn)算得分高達(dá)1082。
注意到MCU上的ES標(biāo)志,這與一般意義是的STM32產(chǎn)品是有區(qū)別的,ES或E表明該產(chǎn)品尚未具備正式量產(chǎn)的資格。
STM32F723系列還有一個(gè)顯著的特性,在MCU內(nèi)集成了PHY HS。也就意味著使用STM32F723實(shí)現(xiàn)USB HS功能時(shí),不需要額外使用外部PHY設(shè)備,USB HS通過開板板上的CN19與外部設(shè)備連接,實(shí)現(xiàn)高速通信。內(nèi)部連接原理圖如下
STM32F723E-DISCO開發(fā)板上的LED LD8與USB電源開關(guān)連接,用來指示設(shè)備工作狀態(tài),另外LED LD7用來指示電流是否過載。當(dāng)使用ST-LINK來供電時(shí),OTG最提供最大100mA的電流輸出,如果要輸出更高的電流,則只能使用外部電源來給開發(fā)板供電。
雖然MCU只提供了512KB/256KB的FLASH/SRAM存儲(chǔ)組合,但是根本不用擔(dān)心STM32F723E-DISCO的存儲(chǔ)瓶頸,因?yàn)殚_發(fā)板上還集成了一個(gè)8-Mbit的PSRAM,PSRAM的型號(hào)為IS66WV51216EBLL-55BLI,通過FMC接口來實(shí)現(xiàn)訪問,可實(shí)現(xiàn)16位數(shù)據(jù)傳輸及18位尋址能力。
另外STM32F723E-DISCO開發(fā)套件上還提供了一顆512Mbit的NOR Flash外部存儲(chǔ)芯片,通過QSPI與MCU連接,以實(shí)現(xiàn)更多的數(shù)據(jù)存儲(chǔ)能力,NOR Flash的型號(hào)為MX25L51245G。
該存儲(chǔ)模塊大大擴(kuò)充了開發(fā)板的存儲(chǔ)能力,可心用來存儲(chǔ)字庫或圖像等比較大的資源。
STM32F723E-DISCO開發(fā)板的其它一些圖片,供欣賞。
初步認(rèn)識(shí)了STM32F723E-DISCO開發(fā)板的外觀及一些主要的特性,現(xiàn)在準(zhǔn)備給開發(fā)板上電,體驗(yàn)預(yù)置的程序提供的一些基本功能。
需要完整的體驗(yàn)STM32F723E-DISCO開發(fā)板出廠固件提供的功能,需要準(zhǔn)備一根OTG數(shù)據(jù)線,一個(gè)U盤或者SD卡(配合讀卡器)以及一副耳機(jī)。將ST官方提供的Media資源包復(fù)制到U盤或TF卡上,供程序讀寫。
連接好之后的整體效果圖,其中OTG連接到開發(fā)板的CN19上,耳機(jī)連接到開發(fā)板的Line Out上,上圖是播放音樂的界面。最后是連接ST-LINK給開發(fā)板供電。
首次上電,提醒用戶校準(zhǔn)觸屏,點(diǎn)擊屏幕上提供的校準(zhǔn)點(diǎn),顯示屏的大小為1.54英寸,240X240的分辨率,一般男性使用手指來觸摸的話有點(diǎn)難度。
這是系統(tǒng)出廠時(shí)提供的演示程序,界面包括4個(gè)功能,視頻播放、音頻播放、時(shí)鐘及錄音功能。
這是播放AVI的效果,播放畫面非常流暢,這要?dú)w功于微處理器強(qiáng)大的運(yùn)算能力。
錄音效果,開發(fā)板上4個(gè)MEMS MIC提供了較好的降噪處理能力,實(shí)際錄音效果不錯(cuò)。
ST一直致力于打造一個(gè)良好的生態(tài)系統(tǒng)。除了在硬件方面為廣大用戶提供了豐富的硬件評(píng)估套件,軟件方面也是不遺余力,配套的STM32CUBEMX圖形開發(fā)環(huán)境及豐富的例程庫、代碼,能幫助用戶快速掌握軟件開發(fā)過程,累積開發(fā)技能并迅速應(yīng)用到實(shí)際工程上。
這里建立一個(gè)簡單的工程,實(shí)現(xiàn)LED燈及UART通信功能,為后面的CoreMark測(cè)試為準(zhǔn)備。
打開STM32CUBEMX圖形化程序,新建一個(gè)工程
在這里選擇合適的MCU型號(hào),可以使用MCU Filters來迅速找到自己需要的MCU型號(hào),例如這里STM32F723IEKx就是我們需要的。
配置RCC資源,STM32F723E-DISCO開發(fā)板上焊接了25MHz的外部晶振,將上圖中的Disable選項(xiàng)改為外部晶振適用的選項(xiàng)。
圖形化的配置模式結(jié)合自動(dòng)計(jì)算功能,可以很快設(shè)定時(shí)鐘樹,這里將時(shí)鐘HCLK設(shè)定為216MHz,這也是官方推薦的最高運(yùn)行頻率。其它需要設(shè)置的參數(shù)還包括LED用到的GPIO,這里使用PA5,其它如UART,這里用到的是UART6,這是開發(fā)板上預(yù)設(shè)的與VCOM進(jìn)行通信用到的端口。
配置后時(shí)鐘之后,對(duì)設(shè)備進(jìn)行具體參數(shù)的設(shè)定,這里指定MCU的一些特性,如使用TCM接口來取代AXIM接口,以實(shí)現(xiàn)更高的性能。
配置完設(shè)備參數(shù)之后,導(dǎo)出開發(fā)平臺(tái)相關(guān)的工程文件,如下
這里指定的參數(shù)主要是工程的名稱、位置、IDE的類型(這里使用IAR,也就是EWARM),下面還可以指定工程文件中堆和棧的大小。
STM32CUBEMX生成的只一個(gè)工程框架,具體的程序邏輯還需要用戶自行設(shè)計(jì),輸入相應(yīng)的代碼。打開工程中的main.c文件,在程序的主循環(huán)中輸入如下代碼,實(shí)現(xiàn)簡單的閃爍功能。
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(500);
}
/* USER CODE END 3 */
注意代碼中的大量注釋,STM32CUBEMX生成的工程為用戶代碼預(yù)留了插入位置,將代碼寫到這些規(guī)定的位置以防止再次生成工程時(shí)被覆蓋。
編譯并下載代碼到開發(fā)板上,與PA5對(duì)應(yīng)的LED燈就會(huì)開始閃爍了。基本的功能測(cè)試完畢,可以將CoreMark的代碼插入到現(xiàn)有工程中,使用CoreMark平臺(tái)來測(cè)試硬件性能。CoreMark的STM32移植,請(qǐng)參考官方的移植資料,這里不贅述。
這是使用IAR對(duì)工程進(jìn)行優(yōu)化編譯后得到的CoreMark測(cè)試結(jié)果,看到得分為1056,與官方宣稱的1082非常接近,反映了STM32F7的真實(shí)性能。
接下來測(cè)試USB PHY的性能。STM32F723內(nèi)置USB PHY,能夠?qū)崿F(xiàn)USB高速數(shù)據(jù)傳輸,理論上最高可達(dá)480Mbps的速度,不過受外部其它因素的影響,如存儲(chǔ)介質(zhì)的性能,傳輸?shù)木唧w實(shí)現(xiàn)方法等約束,實(shí)際傳輸速度肯定會(huì)大打折扣。
測(cè)試方案如下,使用U盤連接到開發(fā)板的OTG HS接口,使用FatFS文件系統(tǒng)寫入一定量的數(shù)據(jù),計(jì)算使用的時(shí)間,最后粗略得到一個(gè)測(cè)試的結(jié)果,部分代碼如下
//reading sectors
volatile static int32_t count = 0;
volatile static int32_t times = 8000;
volatile static int32_t sectors = 4;
char msg[100] = {0};
char buff[4096] = {0};
DRESULT status = RES_ERROR;
printf("start reading...rn");
count = HAL_GetTick();
for(int32_t i = 0; i < times; i ++) {
//res = f_write(&MyFile, wtext, sizeof(wtext), (void *)&byteswritten);
status = disk_read(0, buff, 156, sectors);
if((status != RES_OK))
printf("Error Writing sectors...");
}
count = HAL_GetTick() - count;
printf("total ticks: %drn", count);
float total_mega_bytes = sectors * 512 * times / 1000.0f / 1000.0f;
sprintf(msg, "total %6.4f MB writedrn", total_mega_bytes);
printf(msg);
sprintf(msg, "transforming rates: %6.4f MB/Secrn", total_mega_bytes * 1000.0f / count );
printf(msg);
使用FatFs中的標(biāo)準(zhǔn)配置,每扇區(qū)大小為512字節(jié),執(zhí)行連續(xù)的扇區(qū)讀操作,讀取的扇區(qū)數(shù)為4個(gè),連續(xù)讀取8000次,最后計(jì)算得到的數(shù)據(jù)吞吐率,測(cè)試的結(jié)果如下
寫入速度只有4.28Mps的樣子,已經(jīng)超過了FS的標(biāo)準(zhǔn),確實(shí)是使用HS的模式來操作。為了對(duì)比FS模式下的數(shù)據(jù)傳輸率,同樣的代碼,通過FS接口重新來測(cè)試一遍,得到的測(cè)試結(jié)果如下
這里的結(jié)果顯示為0.85MB/Sec,只有全速標(biāo)準(zhǔn)一半的樣子。
通過前面的對(duì)比測(cè)試不難發(fā)現(xiàn)高速USB PHY確實(shí)是工作的,HS相比FS的效率已大大提高,其實(shí)前文已提及到,USB數(shù)據(jù)吞吐率受多方面的影響,硬件只是其中一個(gè)要素,其它如存儲(chǔ)介質(zhì)的性能、讀寫方式設(shè)置的差異,都會(huì)影響到整體效果,木桶效應(yīng)的消除,需要權(quán)衡各方面的要素。
這次的STM32F722/723還帶來一個(gè)新的技術(shù),Proprietary code read out protection (PCROP),即私有代碼的讀寫保護(hù)功能。PCROP技術(shù)通過將需要保護(hù)的代碼放入指定扇區(qū)(0到7)來防止來自最終用戶的修改或讀取操作,任何試圖通過ITCM或AXI總線讀取操作都會(huì)觸發(fā)如下錯(cuò)誤:
● 總線錯(cuò)誤
● FLASH_SR的RDERR標(biāo)志被置位,同時(shí)觸發(fā)中斷
這部分代碼只能通過fetch的方式來獲取,最終保護(hù)用戶的利益。該區(qū)域的內(nèi)存映射如下
這是一種層次授權(quán)機(jī)制,典型的情況是level n用戶編寫一段代碼,授權(quán)給level n+1用戶調(diào)用,這是一種靈活的授權(quán)機(jī)制,在保證了代碼私有的情況下,提供了更靈活的使用方式。
ST提供了X-CUBE-PCROP庫,專門用于幫助用戶快速掌握該技術(shù),庫包含STM32F4、STM32F7及STM32L4三種版本的源碼供用戶參考。
最后的結(jié)論,STM32F723E-DISCO開發(fā)板非常不錯(cuò),自ST將自家的開發(fā)板重新分類以后,NUCLEO主打核心MCU功能,EVAL一直高高在上,平民百姓難得一見,只有DISCO系列似已成為ST新技術(shù)試驗(yàn)的溫床,各種新技術(shù)、新功能都能在DISCO板上找到影子,而且DISCO上集成的諸多外設(shè),讓評(píng)估用戶無需了解太多細(xì)節(jié),通過HAL庫提供的相關(guān)示例代碼,可以迅速評(píng)估并做出初步?jīng)Q策,的確為研發(fā)人員省心不少。
STM32F723E-DISCO的官方報(bào)價(jià)為$39,良心再次體現(xiàn)!
參考資源:
STM32F723E-DISCO
X-CUBE-PCROP
COREMARK代碼
特別推薦
轉(zhuǎn)載請(qǐng)注明來自夕逆IT,本文標(biāo)題:《VMIC5565反射內(nèi)存卡128MB256MB》

還沒有評(píng)論,來說兩句吧...