Type-C 电路设计

  本文是作者选用Type-C接口来设计集成串口通信、供电于一体的电路时遇到问题集锦。

一、Type-C介绍

  Type-C的插座使用起来极其方便,大有替代其他接口的趋势,但是它也有弊端:看起来一样的插口却具有不同的功能。
  要想设计合理的电路,首先就要知道Type-C完整的引脚定义以及不同引脚数目之间的区别

Type-C各个引脚定义

  完整的全功能Type-C插座有24个引脚,如下图所示:

在这里插入图片描述

  各个引脚的定义详情参见下表:

Pin名称功能描述Pin名称功能描述
A1GND接地B12GND接地
A2SSTXp1SuperSpeed差分信号#1,TX,正B11SSRXp1SuperSpeed差分信号#1,RX,正
A3SSTXn1SuperSpeed差分信号#1,TX,负B10SSRXn1SuperSpeed差分信号#1,RX,负
A4VBUS总线电源B9VBUS总线电源
A5CC1Configuration channelB8SBU2Sideband use (SBU)
A6Dp1USB 2.0差分信号,position 1,正B7Dn2USB 2.0差分信号,position 2,负
A7Dn1USB 2.0差分信号,position 1,负B6Dp2USB 2.0差分信号,position 2,正
A8SBU1Sideband use (SBU)B5CC2Configuration channel
A9VBUS总线电源B4VBUS总线电源
A10SSRXn2SuperSpeed差分信号#2,RX,负B3SSTXn2SuperSpeed差分信号#2,TX,负
A11SSRXp2SuperSpeed差分信号#2,RX,正B2SSTXp2SuperSpeed差分信号#2,TX,正
A12GND接地B1GND接地

6P、16P、24P的电路区别

  全功能Type-C接口是有24个引脚的,但在使用中24个引脚不是必须的,因此衍生出2P、6P、16P等引脚数目不同电路。
  Type-C常用的引脚数有6P、16P、24P,它们的区别见下表:

Pin数功能
6P供电
16P供电、USB2.0
24P供电、USB2.0、USB3.0

嘉立创EDA建议选用:

在这里插入图片描述
对应实物图:

在这里插入图片描述

二、电路设计

6P电路设计

由于6Pin的Type-C仅仅有充电功能,所以这里设计是为3.3V单片机供电电路:
在这里插入图片描述

16P电路设计(Type-C & CH340N串口转换 & 降压电路)

在这里插入图片描述


参考文章

Type-C接口详解

16P电路设计
16Pin接线教程
16P-CH340K串口转换电路
Type-C & CH340N串口转换 & 降压电路
CH340C转接芯片的使用–接线教程
6P电路设计

### STM32与TYPE-C接口以及CH340C芯片的应用 #### 1. CH340C简介 CH340C是一款USB转串口的桥接控制器,支持全速USB通信标准。该器件提供了SOP-28和SSOP20无铅封装形式,并且兼容RoHS标准[^3]。为了便于开发测试,还特别设计了从SOP28到DIP28的转换板,使得焊接更加方便。 #### 2. TYPE-C 接口概述 Type-C是一种新型的USB连接器规格,具有更小尺寸、可逆插拔特性等特点,在现代设备中广泛应用。对于嵌入式系统而言,采用Type-C接口可以提升用户体验并简化硬件布局。 #### 3. STM32与CH340C结合使用的方法 当需要通过USB接口实现STM32单片机与其他计算机之间的数据交换时,可以选择利用CH340C作为中间桥梁来完成这一功能。具体来说: - **硬件连接** - 将CH340C模块上的VCC引脚接到电源正极; - GND接地; - TXD/RXD分别对应STM32相应USART外设的数据发送/接收端子; - USB_D+/USB_D-接入Type-C母座对应的差分信号线; ```c // 初始化USART配置函数示例 (假设使用USART1) void USART_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; // 启用GPIOA, AFIO, APB2ENR寄存器中的USART1时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE); // 设置PA9为复用推挽输出模式(USART_TX), PA10为浮空输入模式(USART_RX) GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); // 配置USART参数 USART_InitStruct.USART_BaudRate = 115200; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No ; USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1,&USART_InitStruct); // 开启中断使能位及NVIC设置... } ``` 上述代码片段展示了如何初始化STM32上用于UART通讯的相关资源,以便能够与外部基于CH340C构建起来的USB-to-UART电路正常工作[^1]。 #### 4. 应用实例分析 考虑到实际应用场景的需求差异较大,这里给出一个简单的例子——多按键控制程序移植至配备有Type-C接口并通过CH340C进行USB转串行传输的STM32平台上。此项目原本是在野火F1系列开发板上运行良好,现在要迁移到其他型号的支持相同协议栈的新主板上去[^2]。 在这个过程中需要注意调整部分底层驱动文件以适应目标MCU的具体情况,比如修改时钟树结构定义或是重新映射I/O管脚等功能。同时也要确保新的固件版本仍然可以通过原有的工具链顺利完成编译链接过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stanford_sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值