Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
全志_RISCV_D1_D1S
Allwinner D1H USB host
发布于 2024-10-22 12:15:05 浏览:26
订阅该版
Hi all, I’m really stuck with the make working USB host in Allwinner D1H BSP and RT-Thread. Now USB host can detect device connections, but communication has not started. Executed at hardware such as [ClockworkPi DevTerm R-01](https://www.clockworkpi.com/home-devterm) and [Sipeed Lichee RV + Dock](https://wiki.sipeed.com/hardware/en/lichee/RV/Dock.html). The intention is to make a workable USB keyboard in DevTerm device. This is my GitHub repo: https://github.com/ylyamin/RT-Thread-on-Allwinner-D1H An explanation in more detail: https://github.com/ylyamin/RT-Thread-on-Allwinner-D1H/blob/master/documentation/D1_6_usb_keyboard.md 1. Firstly I used existing sunxi-hal: rt-thread/bsp/allwinner/libraries/sunxi-hal/hal/source/usb/host Created driver rt-thread/bsp/allwinner/libraries/drivers/drv_usbh.c: ```c int drv_usb(void) { hal_usb_core_init(); hal_usb_hcd_init(1); } INIT_DEVICE_EXPORT(drv_usb); ``` RTT console output: ```shell phy_vbase : 0x4100400, usbc_no : 0, efuse : 0x1e9200f [ehci-usb0] insmod host driver! [sunxi-ehci0]: sunxi_set_vbus cnt. [usbh core]: adding sub dev (config #1, interface 0) [ohci-usb0] insmod host driver! [sunxi-ohci0]: sunxi_set_vbus cnt. [usbh core]: adding sub dev (config #1, interface 0) [ehci-usb1] insmod host driver! [sunxi-ehci1]: sunxi_set_vbus cnt. [usbh core]: adding sub dev (config #1, interface 0) [ohci-usb1] insmod host driver! [sunxi-ohci1]: sunxi_set_vbus cnt. [usbh core]: adding sub dev (config #1, interface 0) ``` Seems is not detect any USB device and enumeration did not happen. 2. Then I try to use HAL from [D1s Melis OS](https://github.com/Tina-Linux/d1s-melis/tree/master/ekernel/drivers) I moved this usb HAL folder to RTT rt-thread/bsp/allwinner/libraries/sunxi-hal/hal/source/usb_melis. Is can be compiled and run but also nothing really happen, when device attached is failed in ehci_irq_handler() line &ehci->regs->status. 3. Then I try just using only clock and phy initialization from HAL: ```c hci_clock_init(sunxi_ehci,ehci_table); open_clock(sunxi_ehci); usb_passby(sunxi_ehci, 1); hci_clock_init(sunxi_ohci, ohci_table); open_clock(sunxi_ohci); usb_passby(sunxi_ohci, 1); ``` And for EHCI/OHCI stack try to use [TinyUSB package](https://github.com/RT-Thread-packages/tinyusb) ```c int drv_usb_tiny(void) { init_tinyusb(); } INIT_DEVICE_EXPORT(drv_usb_tiny); ``` Re-route interrupts to TinyUSB. ```c irq_no = 49; request_irq(irq_no, ehci_handler, 0, "ehci", NULL); irq_no = 50; request_irq(irq_no, ohci_handler, 0, "ohci", NULL); ``` In this case, TinyUSB EHCI stack can detect USB line connection but can't start communication. RTT Console output: ```shell msh />usb_tiny phy write: 4200810<-0 phy write: 4200800<-701 phy write: 4200810<-0 phy write: 4200800<-701 USBH init on controller 0 sizeof(usbh_device_t) = 312 sizeof(hcd_event_t) = 24 sizeof(_ctrl_xfer) = 40 sizeof(tuh_xfer_t) = 48 sizeof(tu_fifo_t) = 32 sizeof(tu_edpt_stream_t) = 144 osal: rt_mq_init result: 0 HID init HUB init tiny ehci_init EHCI HCIVERSION:0x0100 EHCI HCSPARAMS:0x001101 EHCI HCCPARAMS:0xa026 EHCI HCI_interface: 1793 EHCI HCI_Control_3: 0 EHCI PHY_Control (810): 0 EHCI PHY_Status (824): 0 EHCI HCI_SIE_Port: 3 plic_irq_toggle irq:49,enable:0 plic_irq_toggle irq:49,enable:1 ehci hcd_int_handler: 4 regs->portsc = 1803 Current Connect Status: 1 Connect Status Change : 1 Port Enabled : 0 Port Enabled Change : 0 Port Reset : 0 Port Power : 1 Port Owner : 0 Over current active : 0 Over current change : 0 Port suspend : 0 Port line_status : 2 Wake on connect enable: 0 hcd_event_device_attach osal: rt_mq_send result: 0 tuh_task_ext: tusb_inited osal: rt_mq_recv result: 24 tuh_task_ext: event.event_id 0 tuh_task_ext: USBH DEVICE ATTACH [0:] USBH DEVICE ATTACH ehci hcd_int_handler: 3 ``` Maybe someone expert in Allwinner D1H USB stack can help with it, please ?
查看更多
0
个回答
默认排序
按发布时间排序
暂无答案,快来添加答案吧
撰写答案
登录
注册新账号
关注者
0
被浏览
26
关于作者
ylyamin
这家伙很懒,什么也没写!
提问
2
回答
1
被采纳
0
关注TA
发私信
相关问题
1
求助全志D1S&amp;RDC纪念版资料以及RTSMART移植教程
2
D1S scons编译
3
D1s M7工具链求寻
4
全志D1运行RT-Thread在烧录程序时异常
5
rtthread d1s编译报错
6
目前最新版的userapps如何安装D1s环境
7
[SOLVED] Not compiled for Allwinner D1H
8
导入bsp\allwinner\d1sb出错
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【10月24-深圳】边缘AI研讨会
2
跟着RT-Thread学嵌入式?我们开班了!
3
基于 RT-Thread 和 F407 的profinet 从站实现
4
## RT-Thread on Allwinner D1H. LCD work, USB in progress.
5
多socket并发下,W5500突然网络异常,无法收发
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
keil_MDK
SFUD
rt_mq_消息队列_msg_queue
C++_cpp
ulog
at_device
本月问答贡献
用户名由3_15位
16
个答案
2
次被采纳
rv666
8
个答案
2
次被采纳
张世争
3
个答案
2
次被采纳
加缪
15
个答案
1
次被采纳
踩姑娘的小蘑菇
6
个答案
1
次被采纳
本月文章贡献
AJS琥珀清年
2
篇文章
5
次点赞
Cfly
1
篇文章
9
次点赞
Ghost_Girls
1
篇文章
8
次点赞
alight
1
篇文章
6
次点赞
ylyamin
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部