1基本介绍
mm32f5330微控制器搭载了由安谋科技授权的armv8-m架构“星辰”star-mc1处理器,最高工作频率可达180mhz。内置了128kb flash,32kb sram,并集成了丰富的i/o端口和外设模块,包括adc,dac,模拟比较器,高级定时器,通用定时器,基础定时器和低功耗定时器,还包含通信接口如i2c,i3c从机,spi或i2s,uart,usart,低功耗uart,集成了内部phy的usb 2.0全速device/host控制器,以及flexcan-fd接口。
180mhz“星辰” star-mc1 处理器,内置单精度浮点运算单元 fpu,支持dsp 扩展
128kb flash,32kb sram,集成丰富的 i/o 端口和外设模块
4 个uart,1 个 usart,1 个 lpuart
1 个集成内部 phy 的 usb 2.0
1 个 flexcan-fd 接口
2 个 i2c,1 个 i3c 从机,3 个 spi 或 i2s
2 个 3msps 12 位的 adc, 1 个 12 位的 dac
2 个 16 位 adv timer, 6 个 gp timer,1 个 lp timer
工作电压:1.8v ~ 5.5v
工作温度范围:-40℃ ∼ +105℃
封装形式:lqfp64/48,qfn32
tinyusb 是一个用于嵌入式系统的开源跨平台 usb 主机/设备协议栈,源码是托管在github上面,地址是:https://github.com/hathach/tinyusb。
2tinyusb host基本移植介绍
之前我们有讲过tinyusb device的移植,本期我们就来介绍一下host设备的移植。同样的我们介绍的移植修改是基于tinyusb exampleshost下已经有参考示例的设备。将tinyusb 从github上克隆下来,examplehost文件夹里面就有对应的示例,本次我们以msc_file_explorer为示例演示如何移植一个host设备。
图1 tinyusb host示例
将tinyusb 目录下exampleshostmsc_file_explorer下的对应三个文件copy到例程tinyusb_host_msc工程目录文件夹里面。
图2 tinyusb msc_file_explore文件
图3 tinyusb_host_msc工程目录
mm32f5333有两个pll,pll1可以设置高主频180m给cpu和其他外设使用,pll2可以单独配置给usb使用。增加一个usb时钟配置函数void usb_deviceclockinit(void)和void setpll2tousb_hse_96m(void),pll2配置96m 选择pll2输入二分频到usb。有使用tu_log做串口输出,可以使能cfg_tusb_debug 为需要的输出等级,同时将#define tu_printf printf 改到串口输出,keil options->target 勾选use microlib,并实现重定向函数。
void setpll2tousb_hse_96m(void){ rcc->cr &= ~rcc_cr_pll2on_msk; /* reset pll2src, pll2pdiv, pll2mul, pll2div bits */ rcc->pll2cfgr &= ~rcc_pll2cfgr_pll2src_msk; rcc->pll2cfgr &= ~rcc_pll2cfgr_pll2pdiv_msk; rcc->pll2cfgr &= ~rcc_pll2cfgr_pll2mul_msk; rcc->pll2cfgr &= ~rcc_pll2cfgr_pll2div_msk; /* config pll clock source*/ rcc->pll2cfgr |= (0x01u = 8000000) { rcc->pll2cfgr |= (0x03
fs_type == fs_fat16) { printf( fat type = fat16); } else { printf( fat type = fat32); } printf( bytes per cluster = %d; number of clusters=%lu , fs->csize * 512, fs->n_fatent - 2); printf( the free size: %dkb, the total size:%dkb, (freeclusternumber * (fs->csize) / 2), ((fs->n_fatent - 2) * (fs->csize) / 2));
根据那些操作接口函数我们可以对u盘里面的文件进行读写操作,创建删除文件/文件夹,插入u盘后测试打印log如下:
图8 f_readdir 读取并列出u盘文件信息串口log打印
图9 u盘文件读写操作串口log打印
基于 mm32f5333d7p 的usb 接口 tinyusb应用测试功能正常,测试在mm32f5330上能够实现对u盘里面的文件进行读写操作,创建删除文件/文件夹等操作。
ST为业界领先的NFC芯片最大供应商
土壤肥料养分速测仪的技术参数
STM32的看门狗原理和示例代码
Fitbit推出了两款B2B手环 三星Galaxy A8s新粉嫩配色发布
如何快速分辨以太网与千兆以太网
MM32F5330微控制器基本介绍 TinyUSB Host基本移植介绍
我们争取5G全球领先的底气是什么
NB-IoT窄带蜂窝物联网的“毛细血管” 连接更广阔的智能世界
华云数据率先完成了国产操作系统兼容性互认证
物联网时代的图形辨识的相关技术
浅谈充电桩系统对电能质量的影响
制造系统如何发展以实现工业IOT
处理器中断的本质 硬中断、软中断与异常的区别
什么是数据中心复杂性 如何提升数据中心的工作持续性
一文了解PLC编程及技术指标
应用案例 | 晶圆全自动切割工艺中,微米级精度检测方案
HTC推出VIVEPORT无线串流VR的新体验
AMIC110 SoC让工业通信变得简单
Imagination和腾讯WeTest开展深度合作 希捷发布年度多元化报告
基于Windows的线接触加工数控系统实时性研究