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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

雅特力AT32 MCU USB設備庫的架構和使用方法

0739hhbb ? 來源:AT32 MCU 雅特力科技 ? 2023-02-22 10:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AT32 USB設備協議庫

這部分主要介紹AT32 USB設備庫的結構和庫的使用方法,AT32 USB是基于USB2.0全速設備,不支持USB2.0高速設備。這里庫的作用是用來管理USB外設和實現USB的基本協議,使開發者能夠更快的上手開發。USB Deivce庫包含以下幾個模塊如圖1:
  • 用戶應用程序

    此部分為開發者根據應用具體需求開發應用程序。

  • USB Core Driver和USB設備類

    USB Core Driver:此部分實現USB設備標準協議棧,標準請求等接口

    USB設備類:此部分實現一個具體USB設備的描述和設備請求。

  • USB硬件底層接口

    此部分實現硬件寄存器抽象接口

  • USB/OTG外設

圖1. USB庫結構f9323596-b216-11ed-bfe3-dac502259ad0.png ? ?

AT32 USB庫文件

如下是AT32 USB應用工程結構圖:圖2. AT32工程結構f943cee6-b216-11ed-bfe3-dac502259ad0.pngCore Driver庫路徑:OTGFS-->middlewaresusb_driversUSBFS-->middlewaresusbd_driversDevice Class庫路徑:middlewaresusbd_class如下是USB庫文件列表:表1. USB庫文件列表f96d1f62-b216-11ed-bfe3-dac502259ad0.png表2. USB設備類型文件列表f9962538-b216-11ed-bfe3-dac502259ad0.png ?

USB設備庫文件說明

USB庫實現USB設備標準請求,同時實現USB規格里面的4種傳輸類型(control,interrupt,bulk,isochronous)的函數接口。圖3.USB庫文件結構f9d3e382-b216-11ed-bfe3-dac502259ad0.png ?

USB設備文件函數接口

usbd_int.c函數接口usbd_int.c主要處理底層中斷,不同USB外設,此部分會根據外設不同而有所改變。AT32系列芯片USB外設存在USBFS和OTGFS兩種外設,此部分函數接口基本相同。表3.usbd_int函數接口fa10aa7e-b216-11ed-bfe3-dac502259ad0.png ?usbd_core.c函數接口usbd_core.c此文件封裝不同的usb接口用于不同的地方調用,包括一些接收,發送函數等。表4.usbd_core函數接口fa2ac83c-b216-11ed-bfe3-dac502259ad0.png ?usbd_sdr.c函數接口usbd_sdr.c此文件處理USB一些標準請求。表5.usbd_sdr函數接口fa61a870-b216-11ed-bfe3-dac502259ad0.png支持的標志設備請求如下表:表6. 標準設備請求fa719c94-b216-11ed-bfe3-dac502259ad0.png ?usbd_xx_class.c函數接口usbd_xx_class.c 此文件為具體設備類型的數據處理,通過結構體函數來實現不同設備類型數據的處理。開發者根據不同的設備類型,來實現下面函數結構體中的函數,達到不同應用結果。函數結構體如下:表7.設備class函數結構體fa9affb2-b216-11ed-bfe3-dac502259ad0.png表8.設備class函數接口fab19236-b216-11ed-bfe3-dac502259ad0.png ?usbd_xx_desc.c函數接口usbd_xx_desc.c此文件為設備描述文件,設備描述信息都通過此文件的函數接口返回給主機。表9.設備描述函數結構體fad473f0-b216-11ed-bfe3-dac502259ad0.png表10.設備描述接口函數faefc38a-b216-11ed-bfe3-dac502259ad0.png ?其它參數函數的參數結構體如下,USB設備庫中參數傳遞使用結構體usbd_core_type,如下圖:圖4.全局結構體fb273eb4-b216-11ed-bfe3-dac502259ad0.pngUSB設備的連接狀態如下圖:連接狀態包含:
  • 默認狀態

  • 地址狀態

  • 配置狀態

  • 掛起狀態

可使用usbd_connect_state_get函數查詢當前USB設備的連接狀態。圖5.USB設備連接狀態fb4eb944-b216-11ed-bfe3-dac502259ad0.pngUSB設備返回值,USB函數接口使用如下函數返回值。圖6.函數返回值fb64146a-b216-11ed-bfe3-dac502259ad0.png ?

端點FIFO分配

USB要正常收發數據,在初始化時需要為每個端點分配發送/接收的FIFO,FIFO的大小可以根據端點上傳輸的最大包長度確認。注意,分配給所有端點FIFO大小的和不能超過系統分配給USB緩沖區的最大長度,具體USB的緩沖區大小參考RM上的描述。開發者可以參考例程usb_conf.h為每個端點自定義分配FIFO。另外使用USBFS和OTGFS兩種不同的外設時,usb_conf.h中對端點FIFO分配稍有不同。 USBFS外設端點FIFO分配USBFS外設端點分配實現了兩種分配方式,一種自動分配,一種是用戶自定義分配。
  • 自動分配:

    1. 通過打開usb_conf.h中USB_EPT_AUTO_MALLOC_BUFFER宏開啟自動分配功能

    2. 在調用打開端點函數(usbd_ept_open)時自動根據傳入的最大包長度自動分配FIFO

    3. 如果使用雙緩沖模式(同步端點,雙緩沖Bulk)時,在打開端點前先調用(usbd_ept_dbuffer_enable)表示使用雙緩沖模式,可參考audio例程。

    4. 自動分配audio例程配置如下:

    usb_conf.h

    fb8f2ef2-b216-11ed-bfe3-dac502259ad0.png

    audio_class.c:端點打開

    fbb7e18a-b216-11ed-bfe3-dac502259ad0.png

  • 自定義分配:

    1. 關閉usb_conf.h中USB_EPT_AUTO_MALLOC_BUFFER宏開啟自定義分配

    2. 在調用打開端點函數(usbd_ept_open)時調用usbd_ept_buf_custom_define函數自定義為端點分配FIFO,參考vcp_loopback例程。

    3. vcp_loopback例程自定義分配配置

    usb_conf.h:

    fbe61cee-b216-11ed-bfe3-dac502259ad0.png

    cdc_class.c端點打開:

    fc12f61a-b216-11ed-bfe3-dac502259ad0.png

OTGFS外設端點FIFO分配OTGFS對于端點的接收緩沖是共享的,因此對于所有的OUT端點,只需要分配一個接收FIFO。對發送緩沖區則需要為每個發送端點分配一塊自己專用的FIFO。支持的端點個數請參考對應型號的RM。OTGFS的端點分配都需要開發者根據端點支持的最大包長度進行分配,注意usb_conf.h中對端點分配的FIFO大小單位為word(Byte)。以vcp_loopback例程為例:fc40a02e-b216-11ed-bfe3-dac502259ad0.png ?

USB設備初始化

在使用USB時,需要對USB的寄存器做一些基本的初始化,通過調用USB的初始化函數完成這部分的操作,對于外設USBFS和OTGFS在初始化時所調用的函數一定的區別。 USBFS外設初始化USBFS初始化函數usbd_core_init包含5個參數:fc7b6bc8-b216-11ed-bfe3-dac502259ad0.png例程vcp_loopback的初始化如下:usbd_core_init(&usb_core_dev, USB, &class_handler, &desc_handler, 0); OTGFS外設初始化OTGFS初始化函數usbd_init包含5個參數:fc99ec24-b216-11ed-bfe3-dac502259ad0.png例程vcp_loopback的初始化如下:fcbd976e-b216-11ed-bfe3-dac502259ad0.png ?

USB設備中斷處理

USB中斷入口函數usbd_irq_handler處理所有USB中斷,包括Reset,端點收發數據,SOF,掛起,喚醒等中斷,下面介紹一些典型的中斷處理。圖7.USB中斷處理函數fccdc5b2-b216-11ed-bfe3-dac502259ad0.png ?Reset中斷處理當USB設備在總線上檢測到Reset信號時,將產生Reset中斷。軟件在收到Reset中斷時,需要做基本的初始化,用于后面的枚舉處理。Reset中斷處理函數usbd_reset_handler:
  • 端點FIFO初始化

  • 設備地址設置為0

  • 端點0初始化

  • 調用設備類的事件函數

    udev->class_handler->event_handler(udev, USBD_RESET_EVENT);

端點中斷處理當USB端點收發數據完成時,將產生對應的端點完成中斷,端點完成中斷處理發送和接收的數據。中斷處理函數:usbd_xeptx_handler SOF中斷處理打開SOF中斷之后,USB設備在每收到一個主機發送的SOF就會產生SOF中斷。中斷處理函數:usbd_sof_handler
  • 中斷處理函數會調用設備類的SOF處理函數

    udev->class_handler->sof_handler(udev);

Suspend中斷處理當總線滿足掛起條件時,USB設備會產生一個掛起中斷,開發者可根據此中斷判斷是否需要進入低功耗模式。中斷處理函數:usbd_suspend_handler
  • 連接狀態設置為掛起狀態

  • 設置設備進入掛起狀態

  • 調用設備類的事件處理函數

    udev->class_handler->event_handler(udev, USBD_SUSPEND_EVENT);

Wakeup中斷處理當設備在掛起狀態時,如果總線上有wakeup信號,USB設備將產生wakeup中斷。中斷處理函數:usbd_wakeup_handler
  • 設備退出掛起狀態

  • 連接狀態設置為進入掛起之前的狀態

  • 調用設備類事件處理函數

    udev->class_handler->event_handler(udev, USBD_WAKEUP_EVENT);

USB設備端點數據處理流程

USB設備在收到主機發送的數據包之后,對應端點0的數據(IN/OUT/SETUP)會做單獨處理,其它端點的數據會調用設備類的IN/OUT handler進行數據處理。如下圖所示數據的處理過程:圖8.端點數據處理流程fcf323de-b216-11ed-bfe3-dac502259ad0.png圖9. Setup處理流程fd1a6c14-b216-11ed-bfe3-dac502259ad0.png ?USB控制端點枚舉流程當設備接到主機之后,通過控制端點(端點0)進行枚舉動作,典型的枚舉流程圖如下:圖10.USB枚舉流程fd4835fe-b216-11ed-bfe3-dac502259ad0.pngUSB控制傳輸過程包含SETUP-DATA-STATUS三個階段,如下是一個主機獲取設備信息的傳輸過程GET_DESCRIPTOR:圖11 Get Descriptorfd6480b0-b216-11ed-bfe3-dac502259ad0.png如下是USB庫處理上圖Get Descriptor的流程:圖12. USB庫處理Get Descriptor調用流程fda5eec4-b216-11ed-bfe3-dac502259ad0.pngUSB設備請求格式(Setup請求)圖13.Setup請求格式fde1e91a-b216-11ed-bfe3-dac502259ad0.png ?USB應用端點處理流程應用端點指客戶實際應用使用到的非0端點,包括Bulk,interrupt,ISO等端點類型,這些端點的數據通回調函數in_handler和out_handler進行處理。開發者只需要在xxx_class.c中class_in_handler和class_out_handler里面實現具體端點的數據處理即可。IN端點數據處理:圖14.IN端點數據處理fe194306-b216-11ed-bfe3-dac502259ad0.pngOUT端點數據處理:圖15.OUT端點數據處理fe3b6562-b216-11ed-bfe3-dac502259ad0.png ?

USB設備類型例程

本章將說明使用AT32 USB設備庫實現不同的設備類型的例程。目前實現的設備例程如下:
  • Audio

  • custom_hid

  • keyboard

  • mouse

  • msc(mass strorage)

  • printer

  • vcp_loopback

  • virtual_msc_iap

  • composite_vcp_keyboard

  • hid_iap

Audio例程

Audio例程使用audio V1.0的協議實現一個Speaker和Microphone,傳輸Audio數據使用同步傳輸,Speaker使用同步OUT傳輸,Microphone使用同步IN傳輸。Audio的例程運行在AT-START評估板上,Audio Speaker和Mircophone是基于Audio Arduino Demo Board進行實現,實驗過程中需要連接AT-START和Audio Arduino Board,更多開發板信息請參考《UM_Audio Arduino Daughter Board_V1.0/V2.0》,Audio協議請參數《Universal Serial Bus Device Class Define for Audio Device V1.0》。 實現功能實現一個Speaker和Microphone的Audio復合設備,可以同時進行音頻播放和錄音。Speaker功能:
  • 支持16K,48K采樣率

  • 支持采樣率切換

  • 支持16bit采樣

  • 支持靜音

  • 支持音量調節

  • 支持feedback功能

  • 支持雙通道

Microphone功能:
  • 支持16K,48K采樣率

  • 支持采樣率切換

  • 支持16bit采樣

  • 支持靜音

  • 支持音量調節

  • 支持雙通道

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉以及Audio部分控制。

  • 端點1 IN:用于Microphone錄音數據

  • 端點1 OUT:用于Speaker播放數據

  • 端點2 IN:用于Feedback數據

I2C
  • 使用I2C發送控制信息到音頻Board

I2S:
  • 使用I2S1發送數據到音頻board(speaker)

  • 使用I2S2從音頻board接收數據(microphone)

DMA
  • 使用DMA1通道3傳輸I2S1的數據

  • 使用DMA1通道4傳輸I2S2的數據

TIMER:
  • 使用TIMER產生Codec所需要的時鐘

Audio設備實現USB Audio設備類實現源文件在audio_class.c和audio_desc.c中,外部codec的控制以及音頻數據的處理都在audio_codec.c中實現,根據主機的請求設置會調用到audio_codec.c中具體的設置函數。另外需要特別注意關于USB設備端點FIFO大小的分配在usb_conf.h中配置,此部分根據具體端點傳輸的最大包長度進行分配。 1. 設備描述:(audio_desc.c/h
  • Audio設備的描述(g_usbd_descriptor)

  • Audio設備的配置描述信息(g_usbd_configuration)

    AC interface

    Mricrophone Streaming interface

    Microphone Terminal INPUT/OUTPUT

    Microphone Feature Unit

    Microphone Endpoint

    Speaker Streaming interface

    Speaker Terminal INPUT/OUTPUT

    Speaker Feature Unit

    Speaker Endpoint

    Feedback Endpoint

  • Lang id (g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(audio_desc.h)

    fe573706-b216-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(audio_desc.h)

    fe7439fa-b216-11ed-bfe3-dac502259ad0.png

2. 數據處理部分(audio_class.c/h audio_codec.c/h
  • 端點初始化(class_init_handler)

    fe9b5bc0-b216-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    feb2576c-b216-11ed-bfe3-dac502259ad0.png

  • Audio控制請求(class_setup_handler)

    實現如下audio控制請求:

    fed7e536-b216-11ed-bfe3-dac502259ad0.png

    ff0152fe-b216-11ed-bfe3-dac502259ad0.png

  • Audio音量、靜音、采樣率設置(class_ept0_rx_handler)

    此函數用于接收完主機發送的設置數據之后進行處理,包括設置音量,靜音,以及采樣率的設置。

    ff387b94-b216-11ed-bfe3-dac502259ad0.png

  • Microphone和Feedback數據傳輸(class_in_handler)

    ff659a34-b216-11ed-bfe3-dac502259ad0.png

  • Speaker數據接收(class_out_handler)

    ff7e6014-b216-11ed-bfe3-dac502259ad0.png

  • audio_codec.c中實現codec具體的控制以及數據處理,需要實現如下函數:

    ff8f0e00-b216-11ed-bfe3-dac502259ad0.png

    以上函數可根據例程里的方式進行實現,也可以根據開發者實際使用的codec來進行修改,對于codec的初始化部分,在這里將不再講述。

  • audio例程功能配置

    audio_conf.h中可以對當前audio例程進行配置,例如:是否需要speaker功能,支持采樣率等,有如下選項配置:

    ffd80c04-b216-11ed-bfe3-dac502259ad0.png

如何根據Audio例程進行開發本章將簡單描述如何修改audio例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改audio配置(audio_conf.h)

  • 根據功能需求修改設備描述信息(audio_desc.c, audio_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    其它描述

  • 根據功能修改要使用端點(audio_class.c, audio_class.h)

    端點定義(audio_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的Audio控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • Audio數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

  • 根據具體需求實現codec函數接口(audio_codec.c)

custom_hid例程

custom_hid實現一個HID(human interface device)功能,與上位機(Artery_UsbHid_Demo)通信完成一些簡單的交互操作,HID使用中斷傳輸與上位機通信,例程在AT-START開發板上運行,上位機可在官網下載,關于HID協議參考《Human Interface Devices (HID) V1.11》。 實現功能
  • 上位機顯示按鍵狀態

  • 通過上位機控制開發板LED等開關狀態

  • HID數據回環功能

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

  • 端點1 OUT:用于數據接收

custom_hid設備實現custom_hid設備類實現源代碼主要在custom_hid_class.c和custom_hid_desc.c中,這兩個源文件實現了對設備的描述和設備的處理。 1. 設備描述:(custom_hid_desc.c/h)
  • custom hid設備描述(g_usbd_descriptor)

  • custom hid設備配置描述(g_usbd_configuration)

    HID interface

    HID Endpoint

  • custom hid report描述(g_usbd_hid_report)

    HID_REPORT_ID_2(LED2)

    HID_REPORT_ID_3(LED3)

    HID_REPORT_ID_4(LED4)

    HID_REPORT_ID_5(BUTTON)

    HID_REPORT_ID_6(LOOPBACK DATA)

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(custom_hid_desc.h

    fff20f3c-b216-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(custom_hid_desc.h)

    000a149c-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理部分(custom_hid_class.c/h)
  • 端點初始化(class_init_handler)

    0031ae8a-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    005768d2-b217-11ed-bfe3-dac502259ad0.png

  • HID設備類請求(class_setup_handler)

    實現如下請求:

    SET_PROTOCOL

    GET_PROTOCOL

    SET_IDLE

    GET_IDLE

    SET_REPORT

    代碼如下:

    0082eae8-b217-11ed-bfe3-dac502259ad0.png

  • Custom_HID發送數據

    00b64708-b217-11ed-bfe3-dac502259ad0.png

  • Custom_HID接收數據

    00c4f190-b217-11ed-bfe3-dac502259ad0.png

  • 數據處理

    00d5c81c-b217-11ed-bfe3-dac502259ad0.png

如何根據custom hid例程進行開發本章將簡單描述如何修改custom_hid例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(custom_hid_desc.c, custom_hid_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    設備報告描述符(g_usbd_hid_report)

    其它描述

  • 根據功能修改要使用端點(custom_hid_class.c, custom_hid_class.h)

    端點定義(custom_hid_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的custom_hid控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • custom_hid發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

  • 修改數據處理部分

keyboard例程

keyboard實現一個鍵盤功能,使用中斷傳輸與上位機通信,例程在AT-START開發板上運行,通過按鍵發送字符串到主機。 實現功能
  • 通過按鍵發送字符串(”Keyboard Demo”)到主機

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

keyboard設備實現keyboard設備類實現源代碼主要在keyboard_class.c和keyboard_desc.c中,這兩個源文件實現了對設備的描述和設備的處理。 1. 設備描述:(keyboard_desc.c/h
  • keyboard設備描述(g_usbd_descriptor)

  • keyboard設備配置描述(g_usbd_configuration)

    keyboard interface

    keyboard endpoint

  • keyboard report描述(g_usbd_hid_report)

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(keyboard_desc.h)

    00f4e530-b217-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(keyboard_desc.h)

    01087fdc-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理部分(keyboard_class.c/h
  • 端點初始化(class_init_handler)

    013759d8-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    0154ab78-b217-11ed-bfe3-dac502259ad0.png

  • HID設備類請求(class_setup_handler)

    實現如下請求:

    SET_PROTOCOL

    GET_PROTOCOL

    SET_IDLE

    GET_IDLE

    SET_REPORT

  • keyboard發送數據

    01751732-b217-11ed-bfe3-dac502259ad0.png

  • keyboard字符數據處理

    018ed0e6-b217-11ed-bfe3-dac502259ad0.png

如何根據keyboard例程進行開發本章將簡單描述如何修改keyboard例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(keyboard_desc.c, keyboard_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    設備報告描述符(g_usbd_hid_report)

    其它描述

  • 根據功能修改要使用端點(keyboard_class.c, keyboard_class.h)

    端點定義(keyboard_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的keyboard控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • keyboard發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

  • 修改數據處理部分

Mouse例程

實現功能mouse實現一個簡單的鼠標功能,使用中斷傳輸與上位機通信,例程在AT-START開發板上運行,通過開發板上的按鍵發送鼠標右鍵功能。圖16.鼠標傳輸格式01ad4d0a-b217-11ed-bfe3-dac502259ad0.png鼠標d通常是通過設置X和Y值來控制PC鼠標移動。 外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

mouse設備實現mouse設備實現源代碼主要在mouse_class.c和mouse_desc.c中,這兩個源文件實現了對設備的描述和設備的處理。 1. 設備描述:(mouse_desc.c/h
  • mouse設備描述(g_usbd_descriptor)

  • mouse設備配置描述(g_usbd_configuration)

    mouseinterface

    mouseendpoint

  • mouse report描述(g_usbd_hid_report)

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(mouse_desc.h)

    01e9ce9c-b217-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(keyboard_desc.h)

    02015c6a-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理部分(mouse_class.c/h)
  • 端點初始化(class_init_handler)

    02221ab8-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    024927c0-b217-11ed-bfe3-dac502259ad0.png

  • HID設備類請求(class_setup_handler)

    實現如下請求:

    SET_PROTOCOL

    GET_PROTOCOL

    SET_IDLE

    GET_IDLE

    SET_REPORT

  • keyboard發送數據

    0262cdba-b217-11ed-bfe3-dac502259ad0.png

  • mouse數據處理

    027719a0-b217-11ed-bfe3-dac502259ad0.png

如何根據mouse例程進行開發本章將簡單描述如何修改mouse例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(mouse_desc.c, mouse_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    設備報告描述符(g_usbd_hid_report)

    其它描述

  • 根據功能修改要使用端點(mouse_class.c, mouse_class.h)

    端點定義(mouse_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的mouse控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • mouse發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

  • 修改數據處理部分

msc例程

msc(mass storage)例程展示如何通過USB BULK傳輸,進行PC主機和AT-START通信,該例程支持BOT(Bulk only transfer)協議和SCSI(small computer system interface)指令。圖17. BOT 命令/數據/狀態 流程02aeb752-b217-11ed-bfe3-dac502259ad0.png圖18.BOT命令格式02d11d74-b217-11ed-bfe3-dac502259ad0.png圖19.BOT狀態格式02fa5a72-b217-11ed-bfe3-dac502259ad0.png ?實現功能
  • 將內部FLASH虛擬成一個磁盤

  • 實現bulk-only傳輸協議

  • 實現subclass SCSI傳輸命令

    MSC_CMD_INQUIRY

    MSC_CMD_START_STOP

    MSC_CMD_MODE_SENSE6

    MSC_CMD_MODE_SENSE10

    MSC_CMD_ALLOW_MEDIUM_REMOVAL

    MSC_CMD_READ_10

    MSC_CMD_READ_CAPACITY

    MSC_CMD_REQUEST_SENSE

    MSC_CMD_TEST_UNIT

    MSC_CMD_VERIFY

    MSC_CMD_WRITE_10

    MSC_CMD_READ_FORMAT_CAPACITY

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

  • 端點1 OUT:用于數據接收

msc設備實現1. 設備描述:(msc_desc.c/h
  • msc設備描述(g_usbd_descriptor)

  • msc設備配置描述(g_usbd_configuration)

    msc interface

    msc endpoint

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(custom_hid_desc.h)

    0311144c-b217-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(msc_desc.h)

    03333d60-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理部分(msc_class.c/h)
  • 端點初始化(class_init_handler)

    0349afa0-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    037224a8-b217-11ed-bfe3-dac502259ad0.png

  • MSC設備請求(class_setup_handler)

    GET_MAX_LUN

    BO_RESET

    代碼如下:

    039912d4-b217-11ed-bfe3-dac502259ad0.png

  • IN傳輸處理

    03c93900-b217-11ed-bfe3-dac502259ad0.png

  • OUT傳輸處理(接收數據)

    03e5fce8-b217-11ed-bfe3-dac502259ad0.png

3. BOT和SCSI命令處理Bulk-only transfer和SCSI的命令處理在庫文件msc_bot_scsi.c/h中。表11.msc_bot_scsi函數列表040a6fd8-b217-11ed-bfe3-dac502259ad0.png ?4. diskio處理此部分主要處理與存儲設備間接口,例程里面以內部flash的存儲控制作為說明,msc_diskio.c/h根據開發者使用存儲不同,只需要實現對應存儲的讀寫函數即可。表12.inquiry描述044256d2-b217-11ed-bfe3-dac502259ad0.png表13 diskio操作函數04617972-b217-11ed-bfe3-dac502259ad0.png ?如何根據msc例程進行開發本章將簡單描述如何修改msc例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(msc_desc.c, msc_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    其它描述

  • 根據功能修改要使用端點(msc_class.c, msc_class.h)

    端點定義(msc_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的msc控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • msc發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

  • 修改diskio部分,實現表13里面的函數(msc_diskio.c/h)

printer例程

Printer例程展示了使用USB Device作為打印機設備,此demo可在PC端識別到一個打印機設備并且可應答PC端發送的關于printer類的狀態請求命令(例如打印機的有紙/無紙狀態) 實現功能
  • 實現一個打印機設備

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

  • 端點1 OUT:用于數據接收

printer設備實現1. 設備描述(printer_desc.c/h
  • printer設備描述(g_usbd_descriptor)

  • printer設備配置描述(g_usbd_configuration)

    printer interface

    printer endpoint

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(custom_hid_desc.h)

    04893b60-b217-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(msc_desc.h)

    04ac42e0-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理(printer_class.c/h
  • 端點初始化(class_init_handler)

    04d8248c-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler

    04fe3c30-b217-11ed-bfe3-dac502259ad0.png

  • printer設備請求(class_setup_handler)

    GET_DEVICE_ID

    PORT_STATUS

    SOFT_RESET

    代碼如下:

    051592e0-b217-11ed-bfe3-dac502259ad0.png

  • IN傳輸處理

    0530c466-b217-11ed-bfe3-dac502259ad0.png

  • OUT傳輸處理(接收數據)

    054ff750-b217-11ed-bfe3-dac502259ad0.png

如何根據printer例程進行開發本章將簡單描述如何修改printer例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(printer_desc.c, printer_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    其它描述

  • 根據功能修改要使用端點(printer_class.c, printer_class.h)

    端點定義(printer_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的printer控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • printer發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

vcp loopback例程

在現代PC中,USB是和絕大部分外設通信的標準接口。盡管如此,大部分的工業軟件依舊使用COM接口(UART)通信。vcp_loopback例程提供使用USB設備模擬COM接口方法,解決了該問題, vcp_loopback例程展示了如何通過CDC協議進行USB數據收發。改例程需要使用虛擬串口驅動,可在官網下載。 實現功能
  • 實現一個虛擬串口

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

  • 端點1 OUT:用于數據接收

  • 端點2 IN:監控中斷傳輸

vcp_loopback設備實現1. 設備描述(cdc_desc.c/h
  • cdc設備描述(g_usbd_descriptor)

  • cdc設備配置描述(g_usbd_configuration)

    cdc interface

    cdc endpoint

  • Lang id(g_string_lang_id)

  • 序列號(g_string_serial)

  • 廠商產品ID(custom_hid_desc.h)

    056f8ade-b217-11ed-bfe3-dac502259ad0.png

  • 制造商、產品名、配置描述、接口描述(msc_desc.h)

    0596a916-b217-11ed-bfe3-dac502259ad0.png

2. 數據處理(cdc_class.c/h
  • 端點初始化(class_init_handler)

    05b8695c-b217-11ed-bfe3-dac502259ad0.png

  • 端點清除(class_clear_handler)

    05e0ec92-b217-11ed-bfe3-dac502259ad0.png

  • cdc設備請求(class_setup_handler)

    SET_LINE_CODING

    GET_LINE_CODING

    代碼如下:

    06044ee4-b217-11ed-bfe3-dac502259ad0.png

  • IN傳輸處理

    062ca394-b217-11ed-bfe3-dac502259ad0.png

  • OUT傳輸處理(接收數據)

    06570bd4-b217-11ed-bfe3-dac502259ad0.png

如何根據vcp_loopback例程進行開發本章將簡單描述如何修改cdc例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(cdc_desc.c, cdc_desc.h)

    設備描述信息(g_usbd_descriptor)

    設備配置描述信息(g_usbd_configuration)

    其它描述

  • 根據功能修改要使用端點(cdc_class.c, cdc_class.h)

    端點定義(cdc_class.h)

    端點初始化(class_init_handler,class_clear_handler)

  • 修改使用的cdc控制請求

    控制請求修改(class_setup_handler)

    控制請求設置處理(class_ept0_rx_handler)

  • cdc發送接收數據處理修改

    IN數據處理(class_in_handler)

    OUT數據處理(class_out_handler)

  • 根據需求修改端點FIFO大小分配(usb_conf.h)

virtual_msc_iap例程

virtual msc iap實現一個升級功能的設備,不依賴上位機,當接入PC之后,通過將固件拷貝到磁盤以達到升級目的。 實現功能
  • 將flash虛擬成磁盤進行升級

  • Iap保留使用20K byte空間

  • 升級完成之后reset usb設備返回升級狀態

  • 支持下載地址設置

  • 支持升級完成之后跳轉到APP運行

  • 支持bin文件升級

外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉

  • 端點1 IN:用于數據發送

  • 端點1 OUT:用于數據接收

virtual_msc_iap設備實現1. 設備描述(msc_desc.c/h參考3.5.3.1 2. 數據處理部分(msc_class.c/h參考3.5.3.2 3. BOTSCSI命令處理參考3.5.3.3 4. diskio處理參考3.5.3.4 5. flash升級部分(flash_fat16.c/h
  • 升級狀態

    0683b3c8-b217-11ed-bfe3-dac502259ad0.png

    當連接Host之后,在響應磁盤上通過TXT文檔顯示當前狀態

    準備升級狀態(Ready.TXT)

    升級成功(Success.TXT)

    升級失敗(Failed.TXT)

    未知文件或錯誤(Unkonwn.TXT)

    升級文件大于FLASH大小(Large.TXT)

  • FAT16分區表描述

    06a93de6-b217-11ed-bfe3-dac502259ad0.png
  • 升級接口函數06f42540-b217-11ed-bfe3-dac502259ad0.png
如何根據virtual_msc_iap例程進行開發本章將簡單描述如何修改virtual_msc_iap例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(msc_desc.c, msc_desc.h)設備描述信息(g_usbd_descriptor)設備配置描述信息(g_usbd_configuration)其它描述
  • 根據功能修改要使用端點(msc_class.c, msc_class.h)端點定義(msc_class.h)端點初始化(class_init_handler,class_clear_handler)
  • 修改使用的msc控制請求控制請求修改(class_setup_handler)控制請求設置處理(class_ept0_rx_handler)
  • msc發送接收數據處理修改IN數據處理(class_in_handler)OUT數據處理(class_out_handler)
  • 根據需求修改端點FIFO大小分配(usb_conf.h)
  • 修改diskio部分,實現表13里面的函數(msc_diskio.c/h)
  • 修改flash_fat16.c/h升級參數,包括APP起始地址,IAP占用空間等,要保證IAP和APP地址不重合。

composive_vcp_keyboard例程

復合設備定義如下:擁有多個相互獨立接口的設備被稱為復合設備。當使用該設備時,該設備上擁有多個組合的功能。例如,Composite vcp keyboard demo 提供的復合設備包含HID和CDC功能(鍵盤和串口通信) 實現功能
  • 實現一個USB虛擬串口(參考3.7)
  • 實現一個USB鍵盤設備(參考3.3)
外設資源使用USB外設:
  • 端點0 IN/OUT:用于USB枚舉
  • 端點1 IN:用于數據發送
  • 端點1 OUT:用于數據接收
  • 端點2 IN:CDC命令中斷傳輸
  • 端點3 IN:Keyboard發送數據
composite_vcp_keyboard設備實現1. 設備描述(cdc_keyboard_desc.c/h
  • cdc_keyboard設備描述(g_usbd_descriptor)
  • cdc_keyboard設備配置描述(g_usbd_configuration)cdc interfacecdc endpointkeyboard interfacekeyboard endpoint
  • Lang id(g_string_lang_id)
  • 序列號(g_string_serial)
  • 廠商產品ID(custom_hid_desc.h)071ba26e-b217-11ed-bfe3-dac502259ad0.png
  • 制造商、產品名、配置描述、接口描述(msc_desc.h)07318782-b217-11ed-bfe3-dac502259ad0.png
2. 數據處理(cdc_keyboard_class.c/h
  • 端點初始化(class_init_handler)07595ae6-b217-11ed-bfe3-dac502259ad0.png
  • 端點清除(class_clear_handler)077dc21e-b217-11ed-bfe3-dac502259ad0.png
  • 設備請求(class_setup_handler)cdc設備類請求:SET_LINE_CODINGGET_LINE_CODIN

    Keyboard hid設備類請求:

    SET_PROTOCOLGET_PROTOCOLSET_IDLEGET_IDLESET_REPORT

    代碼如下:

    079b6a44-b217-11ed-bfe3-dac502259ad0.png
  • IN傳輸處理07cb4796-b217-11ed-bfe3-dac502259ad0.png
  • OUT傳輸處理(接收數據)0808f5d2-b217-11ed-bfe3-dac502259ad0.png
如何根據composite_vcp_keyboard例程進行開發本章將簡單描述如何修改composite_vcp_keyboard例程的代碼來進行復合設備開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(cdc_keyboard_desc.c, cdc_keyboard_desc.h)設備描述信息(g_usbd_descriptor)設備配置描述信息(g_usbd_configuration)其它描述
  • 根據功能修改要使用端點(cdc_keyboard_class.c, cdc_keyboard_class.h)端點定義(cdc_class.h)端點初始化(class_init_handler,class_clear_handler)
  • 修改使用的cdc控制請求控制請求修改(class_setup_handler)控制請求設置處理(class_ept0_rx_handler)
  • cdc_keyboard發送接收數據處理修改IN數據處理(class_in_handler)OUT數據處理(class_out_handler)
  • 根據需求修改端點FIFO大小分配(usb_conf.h)

hid_iap例程

hid_iap例程使用usb hid實現IAP升級功能,需要搭配上位機使用,上位機可在官網下載IAP_Programmer。hid iap的例程代碼位于BSP固件庫utilitiesat32f435_437_usb_iap_demo中,使用方法可參考《AN0007_AT32_IAP_using_the_USB_HID_ZH_V2.x.x.pdf》 1. 實現功能
  • 實現使用HID進行設備升級
2. 外設資源使用USB 外設:
  • 端點0 IN/OUT:用于USB枚舉
  • 端點1 IN:用于數據發送
  • 端點1 OUT:用于數據接收
hid_iap設備實現1. 設備描述(hid_iap_desc.c/h
  • hid iap設備描述(g_usbd_descriptor)
  • hid iap設備配置描述(g_usbd_configuration)HID interfaceHID Endpoint
  • hid iap report描述(g_usbd_hid_report)
  • Lang id(g_string_lang_id)
  • 序列號(g_string_serial)
  • 廠商產品ID(hid_iap_desc.h)08321566-b217-11ed-bfe3-dac502259ad0.png
  • 制造商、產品名、配置描述、接口描述(hid_iap_desc.h)084e44e8-b217-11ed-bfe3-dac502259ad0.png
2. 數據處理(hid_iap_class.c/h
  • 端點初始化(class_init_handler)087c3c40-b217-11ed-bfe3-dac502259ad0.png
  • 端點清除(class_clear_handler)089e6f86-b217-11ed-bfe3-dac502259ad0.png
  • HID設備類請求(class_setup_handler)實現如下請求:SET_PROTOCOLGET_PROTOCOLSET_IDLEGET_IDLESET_REPORT代碼如下:08be20b0-b217-11ed-bfe3-dac502259ad0.png
  • hid iap發送數據08e60cec-b217-11ed-bfe3-dac502259ad0.png
  • hid iap接收數據0918b4f8-b217-11ed-bfe3-dac502259ad0.png
  • 升級命令數據處理 094243a4-b217-11ed-bfe3-dac502259ad0.png
3. hid iap升級協議表14.hid iap升級命令0976967c-b217-11ed-bfe3-dac502259ad0.png
  1. 0x5AA0進入IAP模式

    作為一個特定的命令,當用戶APP收到這個命令之后將進入IAP模式。實現方式為收到這個命令之后擦除flag然后reset

    上位機:[0x5A, 0xA0]

    IAP設備響應:[0x5A, 0XA0, ACK/NACK]

  2. 0x5AA1開始下載

    上位機:[0x5A,0xA1]

    IAP設備響應:[0x5A,0xA1,ACK/NACK]

  3. 0x5AA2設置下載地址

    設置下載地址需按照1KB對齊,每下載1Kbyte數據之后,都需要重新設置下載地址。

    上位機(命令+地址):[0x5A, 0xA2, 0x08, 0x00, 0x40, 0x00]

    IAP設備響應:[0x5A,0xA2, ACK/NACK]

  4. 0x5AA3下載數據命令(1KB 對齊多個包發送)

    下載數據命令采用命令+長度+數據的格式進行發送,每包最大數據量為60Byte(64–命令–長度),當發送數據達到1KB時,上位機需要等待設備的ACK響應。此時設備需將1KB的數據寫到FLASH。

    上位機(命令(2Byte)+長度(2 Byte)+數據(n byte)):[0x5A,0xA3,LEN1,LEN0,DATA0….DATAn]

    收完1KB數據后IAP設備響應:[0x5A, 0XA3, ACK/NACK]

  5. 0x5AA4下載結束

    上位機:[0x5A, 0xA4]

    IAP設備響應:[0x5A, 0xA4, ACK/NACK]

  6. 0x5AA5固件CRC校驗

    上位機傳輸固件起始地址和固件大小/1KB(固件大小按1KB對齊,不足補0xFF),由IAP計算CRC之后返回給上位機。

    上位機:[0x5A,0xA5, 0x08, 0x00, 0x40, 0x00, LEN1, LEN0]

    IAP設備響應: [0x5A, 0xA5, ACK/NACK, CRC3, CRC2, CRC1, CRC0]

  7. 0x5AA6跳轉命令

    跳轉命令將跳轉到用戶代碼進行運行

    上位機:[0x5A,0xA6, 0x08, 0x00, 0x40, 0x00]

    IAP設備響應:[0x5A,0xA6,ACK/NACK]

  8. 0x5AA7獲取IAP設置的app地址

    返回IAP設置的app地址

    上位機:[0x5A, 0xA7]

    IAP設備響應:[0x5A, 0xA7, ACK/NACK, 0x08, 0x00, 0x40, 0x00]

如何根據hid_iap例程進行開發本章將簡單描述如何修改hid_iap例程的代碼來進行開發,根據應用具體的需求來修改代碼。
  • 根據功能需求修改設備描述信息(hid_iap_desc.c, hid_iap_desc.h)設備描述信息(g_usbd_descriptor)設備配置描述信息(g_usbd_configuration)其它描述
  • 根據功能修改要使用端點(hid_iap_class.c, hid_iap_class.h)端點定義(hid_iap_class.h)端點初始化(class_init_handler,class_clear_handler)
  • 修改使用的hid控制請求控制請求修改(class_setup_handler)控制請求設置處理(class_ept0_rx_handler)
  • hid_iap發送接收數據處理修改IN數據處理(class_in_handler)OUT數據處理(class_out_handler)
  • 根據需求修改端點FIFO大小分配(usb_conf.h)
  • 修改hid_iap_user.h中的升級參數,包括APP起始地址等,IAP占用空間等,保證APP地址和IAP的地址不要重合。
審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17956

    瀏覽量

    365907
  • usb
    usb
    +關注

    關注

    60

    文章

    8173

    瀏覽量

    272451
  • 雅特力
    +關注

    關注

    0

    文章

    179

    瀏覽量

    8559
  • AT32
    +關注

    關注

    1

    文章

    121

    瀏覽量

    2693

原文標題:AT32講堂046 | 雅特力AT32 MCU USB設備庫的架構和使用方法

文章出處:【微信號:AT32 MCU 雅特力科技,微信公眾號:AT32 MCU 雅特力科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AT32系列MCU上Flash模擬EEPRO的應用原理和使用方法

    AN0002—AT32 MCU如何使用片上Flash來實現EEPROM功能當前諸多嵌入式應用場景都需要用到 EEPROM 作為非易失性的數據存儲設備。出于客戶低成本的考慮,AT32
    發表于 11-26 07:15

    AT32 MCU USB主機庫應用說明

    AT32 MCU USB Host Library Application Note主要描述AT32F4xx 系列USB 主機庫的架構
    發表于 10-25 07:02

    AT32 MCU USB設備應用說明

    AT32 MCU USB Device Library Application Note主要描述AT32F4xx 系列USB 設備
    發表于 10-25 07:07

    攜高效能AT32 MCU“芯”動亮相ICCAD 2020

    高峰論壇,獲得了業界人士、廣大客戶及眾多媒體的廣泛關注。 (供圖,下同) 在同期舉辦的IP 與 IC 設計專題論壇上,
    的頭像 發表于 12-16 17:12 ?2286次閱讀

    攜高性能AT32 MCU精彩亮相全球MCU生態發展大會

    技術、邊緣AI、新興應用和生態發展等熱門議題。 業務處長陳佳延在大會發表了題為“
    的頭像 發表于 08-30 10:04 ?4801次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生態發展大會

    如何使用AT32 MCU主機庫快速開發USB相關應用

    這部分主要介紹AT32 USB主機庫的結構和使用方法AT32 USB支持全速和低速,不支持
    的頭像 發表于 01-14 10:56 ?2402次閱讀
    如何使用<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>主機庫快速開發<b class='flag-5'>USB</b>相關應用

    AT32 SPI

    AT32 SPI 科技AT32F415系
    發表于 03-30 10:44 ?675次閱讀

    攜高性能AT32 MCU精彩亮相D Forum 2021 微控制器論壇

    AT32高效能MCU平臺–持續布局多元化應用市場”的主題演講。產品與行銷處長杜立博先生在演講中首先介紹了公司近幾年來取得的成績,
    的頭像 發表于 02-24 09:33 ?1036次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相D Forum 2021 微控制器論壇

    攜高性能AT32 MCU精彩亮相全球MCU生態發展大會

    技術、邊緣AI、新興應用和生態發展等熱門議題。業務處長陳佳延在大會發表了題為“AT3
    的頭像 發表于 02-24 09:31 ?751次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生態發展大會

    AT32講堂046 | AT32 MCU USB設備架構使用方法

    AT32USB設備協議這部分主要介紹AT32USB設備的結構和
    的頭像 發表于 02-22 11:23 ?7305次閱讀
    <b class='flag-5'>AT32</b>講堂046 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>USB</b><b class='flag-5'>設備</b><b class='flag-5'>庫</b>的<b class='flag-5'>架構</b>和<b class='flag-5'>使用方法</b>

    展臺首日速遞,AT32 MCU精彩亮相

    8月23日,elexcon2023深圳國際電子展在深圳會展中心(福田)正式拉開帷幕!攜AT32MCU精彩亮相,電機控制、工業控制、消費&商務、電力&電源、智能家電及汽車電子等
    的頭像 發表于 08-24 08:17 ?906次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>展臺首日速遞,<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相

    如何使用AT32 MCU定時器進行PWM輸入測試

    如何使用AT32 MCU定時器進行PWM輸入測試
    的頭像 發表于 10-27 14:20 ?4042次閱讀
    如何使用<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>定時器進行PWM輸入測試

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發表于 10-27 09:27 ?1806次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Printf的功能<b class='flag-5'>使用方法</b>

    AT32 MCU實現高效電機驅動控制與應用

    發展。受邀出席此次會議,產品市場總監林金海發表了題為“AT32
    的頭像 發表于 11-17 08:15 ?1134次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>實現高效電機驅動控制與應用

    AT32 MCU與SEGGER攜手合作,開發量產事半功倍

    近日,與SEGGER共同宣布J-Link仿真調試器與Flasher在線燒錄器全面支持AT32 MCU產品,SEGGER工具鏈的加持使
    的頭像 發表于 02-23 10:27 ?680次閱讀