功能上新!嘉楠K230D RTOS系统正式解锁 USB OTG 能力,设备可灵活切换USB主机(Host)与设备(Device)模式,轻松对接U盘、键鼠、USB摄像头等各类外设,大幅拓展开发玩法与硬件拓展空间,广大开发者、创客朋友们可以上手体验啦!
结合官方最新文档,本文为大家全面讲解K230D USB OTG功能说明、软件配置、硬件方案以及使用注意事项,零基础也能快速配置落地。


首先明确设备兼容性:仅K230D支持USB OTG功能,原生 K230 板载双 USB 接口,分别独立为 Host 与 Device 模式,因此无需额外启用 OTG。
USB OTG 最核心的优势是角色动态切换:同一套USB控制器,可根据USB_ID引脚状态,在传统USB从设备(Device)和USB主机(Host)两种模式之间自由切换。
默认状态:系统为 Device 模式,可被电脑识别、调试、传输数据;
切换后:系统变为 Host 模式,可驱动外接USB外设。
该功能默认处于关闭状态,需要开发者手动完成软件配置与硬件适配后才能使用。

想要正常启用OTG,需按顺序完成内核配置、编译两大环节,以下是标准操作流程:
1. 基础环境初始化
加载K230D对应的默认配置文件:
make k230d_canmv_bpi_zero_defconfig2. 进入图形化配置界面
make rtsmart-menuconfig3. 分步开启核心配置(关键三步)
启用USB OTG总开关
依次进入路径:Components Configuration -> Enable CherryUSB,勾选 Enable CherryUSB OTG(该选项仅K230D配置下可见)。
优化Host模式传输性能
进入路径:Components Configuration -> Enable CherryUSB -> Enable CherryUSB Host -> CherryUSB Host Controller Driver -> Using DesignWare Driver,勾选 Enable descriptor DMA mode。
重要提醒:若跳过此项,Host模式下数据传输性能会严重受限。
适配CanMV/MPY运行环境
进入路径:Components Configuration -> Enable CherryUSB -> Enable CherryUSB Host,勾选 Enable USB Host for CanMV(Some USB Host Drivers)。
重要提醒:未开启该选项,CanMV/MPY环境中将无法正常使用USB Host外设。

编译烧录固件
全部配置完成后,保存并退出配置界面,执行编译命令,将新固件烧录至开发板即可。

OTG的模式切换逻辑,本质由板级USB_ID引脚控制。K230D提供两种成熟硬件设计方案,适配不同开发板与应用场景,大家可根据项目需求选择:

设计逻辑:Type‑C接口的CC引脚直接对接USB_ID引脚。
工作机制:
a.未接入OTG线:USB_ID默认上拉为高电平,设备运行在 Device 模式;
b.插入OTG转接线:USB_ID被拉低,系统自动切换为 Host 模式。
优缺点:支持插拔线材动态切换模式,使用便捷;但Type‑C接口无法再作为供电口使用。
原理图:


设计逻辑:通过板载GPIO引脚,主动控制USB_ID的电平状态。
工作机制:
a.软件控制GPIO输出高电平 → 设备为 Device 模式;
b.软件控制GPIO输出低电平 → 设备切换为 Host 模式。
优缺点:不依赖线材插拔,纯软件控制角色切换;同时保留Type‑C接口供电能力;缺点是无法自动切换,需要代码配合控制。
原理图:


追求即插即用、频繁切换主从模式 → 选择CC脚联动方案;
项目需要Type‑C持续供电、通过程序管控USB角色 → 选择GPIO控制方案。

配置完整性:仅开启Enable CherryUSB OTG还不够,若未同时打开 Enable descriptor DMA mode,Host 模式下的性能会受影响。
外设驱动补充:如需挂载U盘、USB摄像头(UVC)、键鼠(HID)、USB网卡、串口等外设,还需额外开启对应的 USB Host Class Driver。
软硬协同:软件仅负责识别USB_ID状态并完成模式切换,最终能否切换成功,取决于硬件USB_ID电路设计。
设备区分:再次强调,该功能仅适配 K230D,标准K230无OTG硬件支持,请勿重复配置测试。

USB OTG功能的落地,让K230D的拓展性再上一个台阶,适配超多嵌入式开发场景:
✅ 数据交互:直连U盘,本地离线存储、读取日志与多媒体文件;
✅ 外设拓展:外接USB键鼠、触摸屏,打造交互式终端设备;
✅ 视觉开发:挂载第三方USB摄像头,多路图像采集方案灵活搭建;
✅ 设备互联:多设备USB串口通信,实现组网、数据透传;
✅ 调试运维:现场无电脑时,通过外接外设直接操作设备,简化运维流程。

https://www.kendryte.com/k230_rtos/zh/main/advanced_development_guide/how_to_use_usb_otg.html


USB OTG是嵌入式设备实用性极强的拓展功能,本次K230D RTOS完成适配,进一步丰富了芯片的外设生态,无论是个人创客做趣味项目、学生学习嵌入式USB开发,还是企业打造量产终端产品,都能发挥巨大价值。
大家在配置、调试OTG功能的过程中,遇到任何问题,欢迎在评论区留言交流!后续我们也会持续分享K230系列更多功能教程,一起解锁芯片的无限潜能~



