你好,请问CH32X035系列的dp alt mode 要如何配置, 我想把usb type-c配个2 lane的display port +usb3.0
请问有相关的软件示例吗?我的邮件:个人信息保护,已隐藏
热门产品 :
CH182: 以太网PHY收发器芯片
你好,请问CH32X035系列的dp alt mode 要如何配置, 我想把usb type-c配个2 lane的display port +usb3.0
请问有相关的软件示例吗?我的邮件:个人信息保护,已隐藏
你好,这个走PD VDM协商,目前没相应软件示例。
那请问在ch32x035要怎样才能发送/接收到VDM呢?
case DEF_TYPE_VENDOR_DEFINED: /* VDM message handling */ if( ( PD_Rx_Buf[ 2 ] & 0xC0 ) == 0 ) { /* REQ */ Delay_Ms( 1 ); /* Data to be sent is cached to PD_Tx_Buf */ PD_Load_Header( 0x00, DEF_TYPE_VENDOR_DEFINED ); /* Return to NAK */ if( ( PD_Rx_Buf[ 3 ] & 0x60 ) == 0 ) { PD_Ctl.Flag.Bit.VDM_Version = 0; } else { PD_Ctl.Flag.Bit.VDM_Version = 1; } PD_Rx_Buf[ 2 ] |= 0x80; PD_Send_Handle( &PD_Rx_Buf[ 2 ], 4 ); } break;
这是 EVT 中的 VDM 部分, 我想问一下现在RX的Buffer到底存储了什么data?
根据STM的手册
看起来沁恒的PD例程很多都是底层的直接读写包数据,你可以对照一下RxBuffer中的数据判断,大概率就是VDM消息。
我感觉还是有点模糊...就这部份的代码分别使用了PD_RX_Buf[2]和[3]进行比较逻辑,那VDM现在是以每8个bit的形式存进buffer了吧?但实际上VDM的bit 0是从哪里开始呢?还有PD_RX_Buf[1],[0]里面存的又是什么的信息呢?是SOP吗?还是前面PD协商的信息?
可以看一下USB IF PD协议规范,前面[0][1]字节是Message Header部分。