CH32X035 的displayport alt mode如何设置?
你好,请问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?


Screenshot 2024-12-27 204828.png

根据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部分。

image.png


只有登录才能回复,可以选择微信账号登录