首頁(yè) > 評(píng)測(cè) > 高速USB+Fanout——STM32F723E-DISCO開(kāi)發(fā)板評(píng)測(cè)

高速USB+Fanout——STM32F723E-DISCO開(kāi)發(fā)板評(píng)測(cè)

  • 作者:netlhx
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • STM32F723E主打高速USB PHY特性,新探索套件還內(nèi)置一個(gè)安捷倫Pmod連接器和新定義的STMod+連接器,后者讓用戶能夠通過(guò)所提供的扇出接插板,連接Wi-Fi模塊、 SeedStudio Grove模塊、MikroElektronika click boards,或者連接電路試驗(yàn)板快速開(kāi)發(fā)原型。

編譯并下載代碼到開(kāi)發(fā)板上,與PA5對(duì)應(yīng)的LED燈就會(huì)開(kāi)始閃爍了;镜墓δ軠y(cè)試完畢,可以將CoreMark的代碼插入到現(xiàn)有工程中,使用CoreMark平臺(tái)來(lái)測(cè)試硬件性能。CoreMark的STM32移植,請(qǐng)參考官方的移植資料,這里不贅述。

22.jpg

 

這是使用IAR對(duì)工程進(jìn)行優(yōu)化編譯后得到的CoreMark測(cè)試結(jié)果,看到得分為1056,與官方宣稱的1082非常接近,反映了STM32F7的真實(shí)性能。

接下來(lái)測(cè)試USB PHY的性能。STM32F723內(nèi)置USB PHY,能夠?qū)崿F(xiàn)USB高速數(shù)據(jù)傳輸,理論上最高可達(dá)480Mbps的速度,不過(guò)受外部其它因素的影響,如存儲(chǔ)介質(zhì)的性能,傳輸?shù)木唧w實(shí)現(xiàn)方法等約束,實(shí)際傳輸速度肯定會(huì)大打折扣。

測(cè)試方案如下,使用U盤連接到開(kāi)發(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...\r\n");

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: %d\r\n", count);

float total_mega_bytes = sectors * 512 * times / 1000.0f / 1000.0f;

sprintf(msg, "total %6.4f MB writed\r\n", total_mega_bytes);

printf(msg);

sprintf(msg, "transforming rates: %6.4f MB/Sec\r\n", 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é)果如下

23.jpg

 

寫入速度只有4.28Mps的樣子,已經(jīng)超過(guò)了FS的標(biāo)準(zhǔn),確實(shí)是使用HS的模式來(lái)操作。為了對(duì)比FS模式下的數(shù)據(jù)傳輸率,同樣的代碼,通過(guò)FS接口重新來(lái)測(cè)試一遍,得到的測(cè)試結(jié)果如下

24.jpg

 

這里的結(jié)果顯示為0.85MB/Sec,只有全速標(biāo)準(zhǔn)一半的樣子。

通過(guò)前面的對(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還帶來(lái)一個(gè)新的技術(shù),Proprietary code read out protection (PCROP),即私有代碼的讀寫保護(hù)功能。PCROP技術(shù)通過(guò)將需要保護(hù)的代碼放入指定扇區(qū)(0到7)來(lái)防止來(lái)自最終用戶的修改或讀取操作,任何試圖通過(guò)ITCM或AXI總線讀取操作都會(huì)觸發(fā)如下錯(cuò)誤:

• 總線錯(cuò)誤

• FLASH_SR的RDERR標(biāo)志被置位,同時(shí)觸發(fā)中斷

這部分代碼只能通過(guò)fetch的方式來(lái)獲取,最終保護(hù)用戶的利益。該區(qū)域的內(nèi)存映射如下

25.jpg

 

這是一種層次授權(quán)機(jī)制,典型的情況是level n用戶編寫一段代碼,授權(quán)給level n+1用戶調(diào)用,這是一種靈活的授權(quán)機(jī)制,在保證了代碼私有的情況下,提供了更靈活的使用方式。

ST提供了X-CUBE-PCROP庫(kù),專門用于幫助用戶快速掌握該技術(shù),庫(kù)包含STM32F4、STM32F7及STM32L4三種版本的源碼供用戶參考。

最后的結(jié)論,STM32F723E-DISCO開(kāi)發(fā)板非常不錯(cuò),自ST將自家的開(kāi)發(fā)板重新分類以后,NUCLEO主打核心MCU功能,EVAL一直高高在上,平民百姓難得一見(jiàn),只有DISCO系列似已成為ST新技術(shù)試驗(yàn)的溫床,各種新技術(shù)、新功能都能在DISCO板上找到影子,而且DISCO上集成的諸多外設(shè),讓評(píng)估用戶無(wú)需了解太多細(xì)節(jié),通過(guò)HAL庫(kù)提供的相關(guān)示例代碼,可以迅速評(píng)估并做出初步?jīng)Q策,的確為研發(fā)人員省心不少。STM32F723E-DISCO的官方報(bào)價(jià)為$39,良心再次體現(xiàn)!

參考資源:

STM32F723E-DISCO

X-CUBE-PCROP

COREMARK代碼

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+