女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MM32F5330微控制器基本介紹 TinyUSB Host基本移植介紹

靈動(dòng)MM32MCU ? 來(lái)源:靈動(dòng)MM32MCU ? 2023-10-20 09:27 ? 次閱讀

1基本介紹

MM32F5330微控制器搭載了由安謀科技授權(quán)的Armv8-M架構(gòu)“星辰”STAR-MC1處理器,最高工作頻率可達(dá)180MHz。內(nèi)置了128KB Flash,32KB SRAM,并集成了豐富的I/O端口和外設(shè)模塊,包括ADCDAC模擬比較器,高級(jí)定時(shí)器,通用定時(shí)器,基礎(chǔ)定時(shí)器和低功耗定時(shí)器,還包含通信接口I2C,I3C從機(jī),SPI或I2S,UART,USART,低功耗UART,集成了內(nèi)部PHY的USB 2.0全速Device/Host控制器,以及FlexCAN-FD接口

180MHz“星辰” STAR-MC1 處理器,內(nèi)置單精度浮點(diǎn)運(yùn)算單元 FPU,支持DSP 擴(kuò)展

128KB Flash,32KB SRAM,集成豐富的 I/O 端口和外設(shè)模塊

4 個(gè)UART,1 個(gè) USART,1 個(gè) LPUART

1 個(gè)集成內(nèi)部 PHY 的 USB 2.0

1 個(gè) FlexCAN-FD 接口

2 個(gè) I2C,1 個(gè) I3C 從機(jī),3 個(gè) SPI 或 I2S

2 個(gè) 3MSPS 12 位的 ADC, 1 個(gè) 12 位的 DAC

2 個(gè) 16 位 AdvTimer, 6 個(gè) GP Timer,1 個(gè) LP Timer

工作電壓:1.8V ~ 5.5V

工作溫度范圍:-40℃ ~ +105℃

封裝形式:LQFP64/48,QFN32

TinyUSB 是一個(gè)用于嵌入式系統(tǒng)的開(kāi)源跨平臺(tái) USB 主機(jī)/設(shè)備協(xié)議棧,源碼是托管在GitHub上面,地址是:https://github.com/hathach/tinyusb。

2TinyUSB Host基本移植介紹

之前我們有講過(guò)TinyUSB Device的移植,本期我們就來(lái)介紹一下Host設(shè)備的移植。同樣的我們介紹的移植修改是基于TinyUSB exampleshost下已經(jīng)有參考示例的設(shè)備。將TinyUSB 從GitHub上克隆下來(lái),examplehost文件夾里面就有對(duì)應(yīng)的示例,本次我們以msc_file_explorer為示例演示如何移植一個(gè)host設(shè)備。

b92b4a90-6ea0-11ee-939d-92fbcf53809c.png

圖1 TinyUSB Host示例

將tinyusb 目錄下exampleshostmsc_file_explorer下的對(duì)應(yīng)三個(gè)文件copy到例程TinyUSB_Host_MSC工程目錄文件夾里面。

b9710f8a-6ea0-11ee-939d-92fbcf53809c.png

圖2 TinyUSB msc_file_explore文件

b9aa6e92-6ea0-11ee-939d-92fbcf53809c.png

圖3 TinyUSB_Host_MSC工程目錄

MM32F5333有兩個(gè)PLL,PLL1可以設(shè)置高主頻180M給CPU和其他外設(shè)使用,PLL2可以單獨(dú)配置給USB使用。增加一個(gè)USB時(shí)鐘配置函數(shù)void USB_DeviceClockInit(void)和void SetPLL2ToUSB_HSE_96M(void),PLL2配置96M 選擇PLL2輸入二分頻到USB。有使用TU_LOG做串口輸出,可以使能CFG_TUSB_DEBUG 為需要的輸出等級(jí),同時(shí)將#define tu_printf printf 改到串口輸出,Keil Options->Target 勾選Use MicroLIB,并實(shí)現(xiàn)重定向函數(shù)。

voidSetPLL2ToUSB_HSE_96M(void)
{
RCC->CR&=~RCC_CR_PLL2ON_Msk;

/*ResetPLL2SRC,PLL2PDIV,PLL2MUL,PLL2DIVbits*/
RCC->PLL2CFGR&=~RCC_PLL2CFGR_PLL2SRC_Msk;
RCC->PLL2CFGR&=~RCC_PLL2CFGR_PLL2PDIV_Msk;
RCC->PLL2CFGR&=~RCC_PLL2CFGR_PLL2MUL_Msk;
RCC->PLL2CFGR&=~RCC_PLL2CFGR_PLL2DIV_Msk;

/*Configpllclocksource*/
RCC->PLL2CFGR|=(0x01U<PLL2CFGR&=~RCC_PLL2CFGR_PLL2ICTRL_Msk;

if(HSE_VALUE>=8000000)
{
RCC->PLL2CFGR|=(0x03<PLL2CFGR|=(0x01<PLL2CFGR|=((0x17<CR|=(0x01U<CR&RCC_CR_PLL2RDY_Msk)==0)
{
__ASM("nop");/*__NOP();*/
}
}

voidUSB_DeviceClockInit(void)
{
/*SelectUSBCLKsource*/
RCC->CFGR|=1<CFGR&=~(0x03<CFGR|=0x01<

添加tuh_hcd_port.c 接口函數(shù)文件。

b9eb9d36-6ea0-11ee-939d-92fbcf53809c.png

圖4 Keil添加tuh_hcd_port.c文件

移植修改和之前Device設(shè)備基本流程一致,Keil工程按如下文件樹(shù)添加對(duì)應(yīng)文件。

ba2c0970-6ea0-11ee-939d-92fbcf53809c.png

圖5 Keil工程添加對(duì)應(yīng).c文件

工程文件樹(shù)如下:

1.TinyUSB_Host_MSC

2. │

3. ├─APP

4. │ main.c

5. │ mm32f5330_it.c

6. │ platform.c

7. │ msc_app.c

8. │ tinyusb_msc_file_explorer.c

9. │ tuh_hcd_port.c

10. │

11. ├─TinyUSB

12. │ tusb.c

13. │ tusb_fifo.c

14. │ hub.c

15. │ usbh.c

16. │ msc_host.c

17. │

18. └─FATFS

19. ff.c

20. ffsystem.c

21. ffunicode.c

在tusb_config.h文件里面添加#define CFG_TUSB_MCU OPT_MCU_MM32F533X Tusb_mcu.h 文件里面增加:

//-------------MindMotion-------------//
#elifTU_CHECK_MCU(OPT_MCU_MM32F016X)
#defineTUP_DCD_ENDPOINT_MAX8

#elifTU_CHECK_MCU(OPT_MCU_MM32F327X)
#defineTUP_DCD_ENDPOINT_MAX16

#elifTU_CHECK_MCU(OPT_MCU_MM32F533X)
#defineTUP_DCD_ENDPOINT_MAX16

在while(1)循環(huán)里面添加tuh_task(); 然后解決基本的編譯問(wèn)題后燒錄板子插入U(xiǎn)盤,將printf接上串口調(diào)試助手即可測(cè)試。

voidTinyUSB_MSC_File_Explorer_Sample(void)
{
printf("
Test%s
",__FUNCTION__);

TinyUSB_Device_Configure();

while(1)
{
//tinyusbhosttask
tuh_task();
}
}

插入和拔出U盤都能看到”A MassStorage device is mounted”和”A MassStorage device is unmounted” 證明已經(jīng)成功讀取到U盤。

ba7c0402-6ea0-11ee-939d-92fbcf53809c.png

圖6 插入和拔出U盤串口log打印

3U盤基本的文件讀寫測(cè)試

基于上述兩點(diǎn)我們已經(jīng)能通過(guò)USB設(shè)備識(shí)別到U盤了,同時(shí)TinyUSB libfatfssource里面也提供了FatFs 文件操作的接口,下面我們就基于這些文件操作接口函數(shù)對(duì)U盤里面的文件進(jìn)行讀寫操作測(cè)試。

babc2758-6ea0-11ee-939d-92fbcf53809c.png

圖7 ff.c FatFs 文件操作函數(shù)接口

首先識(shí)別到U盤我們先用f_mount 對(duì)U盤掛載,掛載成功之后使用f_getfree得到當(dāng)前U盤空間等相關(guān)信息。

printf("testf_getfree:
");
fatfsCode=f_getfree((charconst*)&driverNumberBuffer[0],(DWORD*)&freeClusterNumber,&fs);
if(fatfsCode)
{
printf("error
");
returnfalse;
}
if(fs->fs_type==FS_FAT12)
{
printf("FATtype=FAT12
");
}
elseif(fs->fs_type==FS_FAT16)
{
printf("FATtype=FAT16
");
}
else
{
printf("FATtype=FAT32
");
}
printf("bytespercluster=%d;numberofclusters=%lu
",fs->csize*512,fs->n_fatent-2);
printf("Thefreesize:%dKB,thetotalsize:%dKB
",(freeClusterNumber*(fs->csize)/2),
((fs->n_fatent-2)*(fs->csize)/2));

根據(jù)那些操作接口函數(shù)我們可以對(duì)U盤里面的文件進(jìn)行讀寫操作,創(chuàng)建刪除文件/文件夾,插入U(xiǎn)盤后測(cè)試打印log如下:

bb591a04-6ea0-11ee-939d-92fbcf53809c.png

圖8 f_readdir 讀取并列出U盤文件信息串口log打印

bb8c6c42-6ea0-11ee-939d-92fbcf53809c.png

圖9 U盤文件讀寫操作串口log打印

基于 MM32F5333D7P 的USB 接口 TinyUSB應(yīng)用測(cè)試功能正常,測(cè)試在MM32F5330上能夠?qū)崿F(xiàn)對(duì)U盤里面的文件進(jìn)行讀寫操作,創(chuàng)建刪除文件/文件夾等操作。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7911

    瀏覽量

    153735
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8952

    瀏覽量

    153224
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8147

    瀏覽量

    270976
  • U盤
    +關(guān)注

    關(guān)注

    7

    文章

    494

    瀏覽量

    64012
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    394

    瀏覽量

    28583

原文標(biāo)題:靈動(dòng)微課堂 (第274講)|基于MM32F5333D7P的USB接口TinyUSB應(yīng)用:Host設(shè)備的移植和U盤文件讀寫

文章出處:【微信號(hào):MindMotion-MMCU,微信公眾號(hào):靈動(dòng)MM32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于MM32G5330的FlexCAN實(shí)現(xiàn)CANopenNode協(xié)議棧移植

    本文將介紹如何基于靈動(dòng)MM32G5330的FlexCAN實(shí)現(xiàn)CANopenNode協(xié)議棧的移植,并使用靈動(dòng)官方提供的開(kāi)發(fā)板Mini-G5333進(jìn)行驗(yàn)證。
    發(fā)表于 04-12 09:15 ?2180次閱讀
    基于<b class='flag-5'>MM32G5330</b>的FlexCAN實(shí)現(xiàn)CANopenNode協(xié)議棧<b class='flag-5'>移植</b>

    基于MM32F5微控制器的FSMC接口外接SRAM存儲(chǔ)的用法

    MM32F5微控制器基于Arm STAR-MC1微控制器,最高主頻可達(dá)120MHz,集成了FPU單元和DSP擴(kuò)展指令集,有不錯(cuò)的算力。
    發(fā)表于 07-17 15:08 ?1831次閱讀
    基于<b class='flag-5'>MM32F</b>5<b class='flag-5'>微控制器</b>的FSMC接口外接SRAM存儲(chǔ)<b class='flag-5'>器</b>的用法

    MM32F5330內(nèi)存保護(hù)單元(MPU)設(shè)計(jì)

    靈動(dòng)微電子發(fā)布了搭載安謀科技“星辰”STAR-MC1處理的全新高性能 MM32F5 微控制器系列,該系列在內(nèi)核、總線和外設(shè)配置等多個(gè)方面進(jìn)行了創(chuàng)新
    的頭像 發(fā)表于 09-07 18:29 ?1877次閱讀
    <b class='flag-5'>MM32F5330</b>內(nèi)存保護(hù)單元(MPU)設(shè)計(jì)

    LPC800系列微控制器介紹PPT

    LPC800系列微控制器介紹PPT
    發(fā)表于 09-23 11:08

    介紹STM32F107微控制器的主要片內(nèi)外設(shè)

    2.2 主要板載資源本節(jié)介紹STM32F107微控制器的主要片內(nèi)外設(shè),著重介紹10/100M以太網(wǎng)接口、CAN總線接口和RS485總線接口。2.2.1 10/100M以太網(wǎng)接口1.功能
    發(fā)表于 08-05 06:19

    基于靈動(dòng)微MM32F0130微控制器的OBD診斷儀系統(tǒng)參考方案

    控:-本機(jī)通過(guò)片上的CAN通信引擎,及移植MM32F0130微控制器平臺(tái)上的J1850協(xié)議,引出OBD-II接口接入到車載系統(tǒng)-OBD-II接口還將從車載系統(tǒng)中捕獲電源管理命令,從而調(diào)整本機(jī)的功耗
    發(fā)表于 11-29 06:03

    基于FatFs在32位微控制器STM32上的移植

    基于FatFs在32位微控制器STM32上的移植
    發(fā)表于 09-26 09:31 ?9次下載
    基于FatFs在32位<b class='flag-5'>微控制器</b>STM32上的<b class='flag-5'>移植</b>

    關(guān)于AVR微控制器最早期的樣品介紹

    愛(ài)特梅爾AVR微控制器共同發(fā)明人兼首席營(yíng)銷官Alf-Egil Bogen 介紹AVR微控制器最早期的樣品。
    的頭像 發(fā)表于 07-06 05:38 ?4397次閱讀

    基于ARM Cortex M0的微控制器MM32F013x

    基于ARM Cortex M0的微控制器MM32F013x
    發(fā)表于 08-26 09:55 ?22次下載

    如何對(duì)TinyUSB上游倉(cāng)庫(kù)進(jìn)行移植

    TinyUSB 是一個(gè)用于嵌入式系統(tǒng)的開(kāi)源跨平臺(tái) USB Host/Device 協(xié)議棧,其為了內(nèi)存安全而設(shè)計(jì),沒(méi)有動(dòng)態(tài)分配,同時(shí)也是線程安全的,所有中斷事件都會(huì)被推遲,然后在非 ISR 任務(wù)函數(shù)中處理,支持多種 MCU。目前 Tiny
    的頭像 發(fā)表于 05-06 11:26 ?4046次閱讀
    如何對(duì)<b class='flag-5'>TinyUSB</b>上游倉(cāng)庫(kù)進(jìn)行<b class='flag-5'>移植</b>

    AN4228_從STM32F1到STM32F3微控制器移植

    AN4228_從STM32F1到STM32F3微控制器移植
    發(fā)表于 11-21 17:06 ?0次下載
    AN4228_從STM32<b class='flag-5'>F</b>1到STM32<b class='flag-5'>F</b>3<b class='flag-5'>微控制器</b>的<b class='flag-5'>移植</b>

    基于MM32F0160微控制器的機(jī)械鍵盤

    最近,為了配合新品推廣,靈動(dòng)的軟件與系統(tǒng)工程SE團(tuán)隊(duì),基于帶有 USB 外設(shè)模塊的 MM32F0160 微控制器,實(shí)現(xiàn)了一套低成本帶RGB燈效的機(jī)械鍵盤。這里將設(shè)計(jì)機(jī)械鍵盤的全過(guò)程開(kāi)源出來(lái),感興趣
    的頭像 發(fā)表于 04-21 09:11 ?1637次閱讀

    Armv8-M架構(gòu)STAR-MC1處理單片機(jī)MM32F5330系列

    MM32F5330微控制器工作電壓為1.8V~5.5V,工作溫度范圍為擴(kuò)展工業(yè)型-40℃~+105℃。內(nèi)置多種省電工作模式保證低功耗應(yīng)用的要求。封裝采用LQFP64/48,QFN32。適合于工業(yè)控制、電機(jī)
    的頭像 發(fā)表于 05-23 17:27 ?1081次閱讀
    Armv8-M架構(gòu)STAR-MC1處理<b class='flag-5'>器</b>單片機(jī)<b class='flag-5'>MM32F5330</b>系列

    靈動(dòng)股份MM32F5330微控制器獲得芯片技術(shù)突破獎(jiǎng)

    8月,在OFweek維科網(wǎng)主辦的“OFweek 2023(第八屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)”暨“維科杯·OFweek 物聯(lián)網(wǎng)行業(yè)年度評(píng)選”中,靈動(dòng)股份MM32F5330榮獲“維科杯·OFweek 2023物
    的頭像 發(fā)表于 09-04 17:12 ?1114次閱讀

    從STM32F42xxx/STM32F43xxx到STM32F74xxx/STM32F75xxx的微控制器應(yīng)用移植

    電子發(fā)燒友網(wǎng)站提供《從STM32F42xxx/STM32F43xxx到STM32F74xxx/STM32F75xxx的微控制器應(yīng)用
    發(fā)表于 09-21 10:10 ?1次下載
    從STM32<b class='flag-5'>F</b>42xxx/STM32<b class='flag-5'>F</b>43xxx到STM32<b class='flag-5'>F</b>74xxx/STM32<b class='flag-5'>F</b>75xxx的<b class='flag-5'>微控制器</b>應(yīng)用<b class='flag-5'>移植</b>