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

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

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

CKS32F4xx系列MCU的OTG_FS功能詳解

中科芯MCU ? 來(lái)源:中科芯MCU ? 2024-01-15 09:26 ? 次閱讀

USB是英文Universal Serial BUS(通用串行總線)的縮寫(xiě),而其中文簡(jiǎn)稱(chēng)為“通用串行總線“,是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。USB發(fā)展到現(xiàn)在已經(jīng)有USB1.0/1.1/2.0/3.0等多個(gè)版本。目前用的最多的就是USB1.1和USB2.0,USB3.0目前已經(jīng)開(kāi)始普及。

CKS32F4xx系列自帶的USB符合USB2.0規(guī)范。標(biāo)準(zhǔn)USB共四根線組成,除VCC/GND外,另外為D+和D-,這兩根數(shù)據(jù)線采用的是差分電壓的方式進(jìn)行數(shù)據(jù)傳輸?shù)?。在USB主機(jī)上,D-和D+都是接了15K的電阻到地的,所以在沒(méi)有設(shè)備接入的時(shí)候,D+、D-均是低電平。而在USB設(shè)備中,如果是高速設(shè)備,則會(huì)在D+上接一個(gè)1.5K的電阻到VCC,而如果是低速設(shè)備,則會(huì)在D-上接一個(gè)1.5K的電阻到VCC。這樣當(dāng)設(shè)備接入主機(jī)的時(shí)候,主機(jī)就可以判斷是否有設(shè)備接入,并能判斷設(shè)備是高速設(shè)備還是低速設(shè)備。 CKS32F4xx系列芯片自帶有USB OTG FS(全速)和USB OTG HS(高速),其中HS需要外擴(kuò)高速PHY芯片實(shí)現(xiàn),我們本章節(jié)對(duì)USB OTG FS進(jìn)行介紹。

USB OTG FS主要特性

CKS32F4xx系列的USB OTG FS是一款雙角色設(shè)備(DRD)控制器,同時(shí)支持從機(jī)功能和主機(jī)功能,完全符合USB2.0規(guī)范的On-The-Go補(bǔ)充標(biāo)準(zhǔn)。此外,該控制器也可配置為“僅主機(jī)”模式或“僅從機(jī)”模式,完全符合USB2.0規(guī)范。在主機(jī)模式下,OTGFS支持全速(FS,12Mb/s)和低速(LS,1.5Mb/s)收發(fā)器,而從機(jī)模式下則僅支持全速(FS,12Mb/s)收發(fā)器。OTG FS同時(shí)支持HNP和SRP。CKS32F4xx系列的USB OTG FS主要特性可分為三類(lèi):通用特性、主機(jī)模式特性和從機(jī)模式特性。

- 通用特性 -

1、經(jīng)USB-IF認(rèn)證,符合通用串行總線規(guī)范第2.0版

2、集成全速PHY,且完全支持定義在標(biāo)準(zhǔn)規(guī)范OTG補(bǔ)充第1.3版中的OTG協(xié)議:

支持A-B器件識(shí)別(ID線)

支持主機(jī)協(xié)商協(xié)議(HNP)和會(huì)話請(qǐng)求協(xié)議(SRP)

允許主機(jī)關(guān)閉VBUS以在OTG應(yīng)用中節(jié)省電池電量

支持通過(guò)內(nèi)部比較器對(duì)VBUS電平采取監(jiān)控

支持主機(jī)到從機(jī)的角色動(dòng)態(tài)切換

3、可通過(guò)軟件配置為以下角色:

具有SRP功能的USB FS從機(jī)(B器件)

具有SRP功能的USB FS/LS主機(jī)(A器件)

USB On-The-Go全速雙角色設(shè)備

4、支持FS SOF和LS Keep-alive令牌

SOF脈沖可通過(guò)PAD輸出

SOF脈沖從內(nèi)部連接到定時(shí)器2(TIM2)

可配置的幀周期

可配置的幀結(jié)束中斷

5、具有省電功能,例如在USB掛起期間停止系統(tǒng)、關(guān)閉數(shù)字模塊時(shí)鐘、對(duì)PHY和DFIFO電源加以管理

6、具有采用高級(jí)FIFO控制的1.25KB專(zhuān)用RAM

可將RAM空間劃分為不同F(xiàn)IFO,以便靈活有效地使用RAM

每個(gè)FIFO可存儲(chǔ)多個(gè)數(shù)據(jù)包

動(dòng)態(tài)分配存儲(chǔ)區(qū)

FIFO大小可配置為非2的冪次方值,以便連續(xù)使用存儲(chǔ)單元

7、一幀之內(nèi)可以無(wú)需要應(yīng)用程序干預(yù),以達(dá)到最大USB帶寬

- 主機(jī)(Host)模式特性 -

1、通過(guò)外部電荷泵生成VBUS電壓

2、多達(dá)8個(gè)主機(jī)通道(管道):每個(gè)通道都可以動(dòng)態(tài)實(shí)現(xiàn)重新配置,可支持任何類(lèi)型的USB傳輸

3、內(nèi)置硬件調(diào)度器:

在周期性硬件隊(duì)列中存儲(chǔ)多達(dá)8個(gè)中斷加同步傳輸請(qǐng)求

在非周期性硬件隊(duì)列中存儲(chǔ)多達(dá)8個(gè)控制加批量傳輸請(qǐng)求

4、管理一個(gè)共享RX FIFO、一個(gè)周期性TX FIFO和一個(gè)非周期性TX FIFO,以有效使用USB數(shù)據(jù)RAM

- 從機(jī)(Slave/Device)模式特性 -

1、1個(gè)雙向控制端點(diǎn)0

2、3個(gè)IN端點(diǎn)(EP),可配置為支持批量傳輸、中斷傳輸或同步傳輸

3、3個(gè)OUT端點(diǎn)(EP),可配置為支持批量傳輸、中斷傳輸或同步傳輸

4、管理一個(gè)共享Rx FIFO和一個(gè)Tx-OUT FIFO,以高效使用USB數(shù)據(jù)RAM

5、管理多達(dá)4個(gè)專(zhuān)用Tx-IN FIFO(分別用于每個(gè)使能的IN EP),降低應(yīng)用程序負(fù)荷支持軟斷開(kāi)功能

2d97e4fc-b20c-11ee-8b88-92fbcf53809c.png

圖1USB OTG FS框圖

對(duì)于USB OTG FS功能模塊,CKS32F4xx系列通過(guò)AHB總線訪問(wèn)(AHB頻率必須大于14.2Mhz),其中48Mhz的USB時(shí)鐘,是來(lái)自時(shí)鐘樹(shù)圖里面的PLL48CK(和SDIO共用)。不過(guò),我們提供了一套完整的 USB OTG驅(qū)動(dòng)庫(kù)(包括主機(jī)和設(shè)備),通過(guò)這個(gè)庫(kù)可以很方便的實(shí)現(xiàn)所要的功能。

軟件設(shè)計(jì)

2dcdbe24-b20c-11ee-8b88-92fbcf53809c.png

圖2USB配置代碼

配置時(shí),我們重點(diǎn)要配置的就是USB_APP文件夾下面的代碼。 usb_bsp.c提供了幾個(gè)USB庫(kù)需要用到的底層初始化函數(shù),包括:IO設(shè)置、中斷設(shè)置、VBUS配置以及延時(shí)函數(shù)等。USB Device(Slave)和USB Host共用這個(gè).c文件。 usbd_usr.c提供用戶應(yīng)用層接口函數(shù),即USB設(shè)備類(lèi)的一些回調(diào)函數(shù),當(dāng)USB狀態(tài)機(jī)處理完不同事務(wù)的時(shí)候,會(huì)調(diào)用這些回調(diào)函數(shù),我們通過(guò)這些回調(diào)函數(shù),就可以知道USB當(dāng)前狀態(tài),比如:是否枚舉成功、是否連接、是否斷開(kāi)等,根據(jù)這些狀態(tài),用戶應(yīng)用程序可以執(zhí)行不同操作,完成特定功能。 要使用USB OTG FS,必須在編譯器的全局宏定義里面,定義:USE_USB_OTG_FS 具體的USB庫(kù)調(diào)用函數(shù)篇幅較大,不再詳細(xì)描述,以下為main函數(shù)代碼:

int main(void)
{
u32t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
uart_init(115200);
LED_GPIO_Init();
USBH_Init(&USB_OTG_Core_dev,USB_OTG_FS_CORE_ID,&USB_Host,&HID_cb,&USR_Callbacks);
while(1)
{
USBH_Process(&USB_OTG_Core_dev, &USB_Host);
if(bDeviceState==1)//á??ó?¨á¢á?
{
if(USBH_Check_HIDCommDead(&USB_OTG_Core_dev,&HID_Machine))
{     
USBH_HID_Reconnect();
}
}else
{
if(USBH_Check_EnumeDead(&USB_Host))
{     
USBH_HID_Reconnect();
}
}
t++;
if(t==200000)
{
LED1=!LED1;
t=0;
}
}
}

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16887

    瀏覽量

    349928
  • 收發(fā)器
    +關(guān)注

    關(guān)注

    10

    文章

    3371

    瀏覽量

    105792
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

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

    關(guān)注

    60

    文章

    7877

    瀏覽量

    263713

原文標(biāo)題:MCU微課堂|CKS32F4xx系列OTG_FS功能

文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F4xx系列產(chǎn)品具有眾多的外設(shè),但并非所有的外設(shè)均需要系
    發(fā)表于 12-12 10:17 ?796次閱讀

    CKS32F4xx系列ETH通信詳解

    CKS32F4xx系列芯片自帶以太網(wǎng)模塊,該模塊包括帶專(zhuān)用DMA控制器的MAC 802.3(介質(zhì)訪問(wèn)控制)控制器
    的頭像 發(fā)表于 11-10 11:13 ?940次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ETH通信<b class='flag-5'>詳解</b>

    CKS32F4xx系列DSP功能介紹

    CKS32F4xx系列使用高性能的32位內(nèi)核,支持浮點(diǎn)運(yùn)算單元(FPU),同時(shí)還支持DSP指令以及存儲(chǔ)保護(hù)(MPU)用來(lái)加強(qiáng)應(yīng)用的安全性。
    的頭像 發(fā)表于 03-04 13:43 ?1488次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DSP<b class='flag-5'>功能</b>介紹

    CKS32F4xx系列產(chǎn)品串口DMA傳輸

    在上一講,我們講過(guò)CKS32F4xx系列的6個(gè)串口都支持DMA傳輸。因此本節(jié)我們對(duì)CKS32F4xx系列的DMA進(jìn)行介紹,同時(shí)利用DMA對(duì)串口數(shù)據(jù)進(jìn)行傳輸。
    的頭像 發(fā)表于 04-10 11:18 ?997次閱讀

    CKS32F4xx系列RNG功能設(shè)置

    ? MCU 微課堂 CKS32F4xx 系 列RNG功能 隨機(jī)數(shù)發(fā)生器簡(jiǎn)介 ? ? CKS32F4xx系列自帶了硬件隨機(jī)數(shù)發(fā)生器(RNG),
    的頭像 發(fā)表于 09-08 10:01 ?557次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG<b class='flag-5'>功能</b>設(shè)置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發(fā)表于 11-06 16:56 ?807次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC<b class='flag-5'>功能</b>

    CKS32F4xx系列ADC多通道DMA電壓采集

    CKS32F4xx系列ADC多通道DMA電壓采集
    的頭像 發(fā)表于 11-06 16:53 ?1056次閱讀

    CKS32F4xx系列低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式STANDBY模式
    的頭像 發(fā)表于 11-06 16:57 ?443次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式SLEEP模式
    的頭像 發(fā)表于 11-06 16:59 ?637次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式STOP模式

    CKS32F4xx系列低功耗模式STOP模式
    的頭像 發(fā)表于 11-06 17:08 ?580次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STOP模式

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出
    的頭像 發(fā)表于 11-09 17:39 ?801次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作
    的頭像 發(fā)表于 11-09 17:41 ?568次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品Timer的基本使用方法-定時(shí)操作

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信
    的頭像 發(fā)表于 10-24 17:12 ?648次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置
    的頭像 發(fā)表于 10-24 15:14 ?733次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品GPIO口配置

    CKS32F4xx系列FSMC功能簡(jiǎn)介

    本課講為大家講解CKS32F4xx系列產(chǎn)品的FSMC應(yīng)用實(shí)例,F(xiàn)SMC全稱(chēng)是Flexible Static Memory Controller,讀作靈活的靜態(tài)存儲(chǔ)控制器,顧名思義,MCU可以通過(guò)FSMC擴(kuò)展靜態(tài)內(nèi)存
    的頭像 發(fā)表于 04-14 15:06 ?837次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC<b class='flag-5'>功能</b>簡(jiǎn)介