嘉楠科技
直播中

石正厚

8年用户 1214经验值
私信 关注
[问答]

请问k230可否和树莓派通过USB-typeC线来通信?

能否让一根线接树莓派的USB接口同时接到k230的tpyeC接口,同时供电和通信,将k230视觉获取的信息传给树莓派。这个能实现吗有没有什么学习的例程?求各位大佬教教
        你好,可以让树莓派做usb主机,230做从机,通过cdc串口来进行通信。

回帖(1)

地瓜

2025-5-7 17:57:02

要通过USB Type-C线实现树莓派与K230的通信及供电,可按以下步骤操作:


1. 确认硬件兼容性



  • K230配置:确保K230的Type-C接口支持USB OTG从机模式(Device Mode)。查阅K230文档,确认其能否配置为CDC串口设备。

  • 树莓派接口:使用树莓派的USB-A端口作为主机(供电+数据),需搭配USB-A转Type-C线连接K230。


2. 配置K230为USB CDC从机



  • 启用Linux Gadget驱动:在K230的Linux系统中,加载g_serialg_cdc模块:
     sudo modprobe g_serial

    或通过设备树(DTS)配置,确保启动时自动加载驱动。


  • 验证设备节点:配置成功后,K230的USB插入主机后,主机端会出现/dev/ttyACM0或类似设备。


3. 连接与供电



  • 线缆选择:使用支持数据传输的USB-A转Type-C线(非仅充电线)。

  • 供电检查:树莓派USB-A端口通常提供5V/500mA,若K230功耗较高,需外接电源或通过Type-C接口额外供电。


4. 树莓派端设置



  • 识别串口:连接后,在树莓派执行ls /dev/tty*,检查是否出现/dev/ttyACM0

  • 安装工具
     sudo apt install screen minicom # 串口调试工具


5. 通信测试



  • 树莓派接收数据
     screen /dev/ttyACM0 115200

    或使用Python脚本:


     import serial
    ser = serial.Serial('/dev/ttyACM0', 115200, timeout=1)
    while True:
         data = ser.readline().decode().strip()
         if data: print(f"Received: {data}")

  • K230发送数据:在K230上,向/dev/ttyGS0写入数据:
     echo "Hello from K230" > /dev/ttyGS0


6. 优化数据传输



  • 波特率调整:根据数据量调整波特率(如921600),需双方一致。

  • 协议设计:自定义简单协议(如添加帧头尾),避免数据粘包。


7. 学习资源



8. 故障排查



  • 驱动问题:确认K230内核包含CONFIG_USB_G_SERIAL=m配置。

  • 权限问题:树莓派用户加入dialout组:
     sudo usermod -aG dialout pi

  • 供电不足:若K230频繁重启,需外接5V电源。


通过上述步骤,即可实现单线供电与通信,传输视觉数据。若需更高带宽,可考虑改用USB网络共享(RNDIS)或大容量存储模式,但复杂度更高。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分