使用 CH340N 将 MCU 的串口(UART)转换为 USB 输出是一种常见的方案,适用于需要将嵌入式设备连接到电脑的场景。以下是详细的连接方法和步骤:
1. CH340N 简介
- 功能:CH340N 是一款 USB 转串口芯片,支持 USB 2.0 协议,可将 UART 信号转换为 USB 信号。
- 特点:
- 内置晶振,无需外部晶振。
- 支持 5V 和 3.3V 电源电压。
- 封装为 SOP-8,体积小,适合紧凑设计。
2. 硬件连接
以下是 CH340N 与 MCU(如 STM32F103C8T6)的典型连接方式:
2.1 电源部分
- VCC:连接到 USB 的 5V 电源(或通过 LDO 降压到 3.3V)。
- V3:连接到 3.3V 电源(如果 MCU 使用 3.3V 逻辑电平)。
- GND:连接到 USB 的 GND 和 MCU 的 GND。
2.2 信号部分
- TXD:连接到 MCU 的 RX 引脚(UART 接收端)。
- RXD:连接到 MCU 的 TX 引脚(UART 发送端)。
- DTR 和 RTS:可选,用于自动复位或流控制(如 Bootloader 下载)。
2.3 去耦电容
- 在 VCC 和 GND 之间添加 0.1µF 的去耦电容,以稳定电源。
3. 电路设计
以下是 CH340N 的典型电路连接图:
USB Connector|+-- VBUS ----+---- VCC (CH340N)| |+-- D- -----+---- D- (CH340N)| |+-- D+ -----+---- D+ (CH340N)| |+-- GND -----+---- GND (CH340N)|+---- GND (MCU)CH340N|+-- TXD -----+---- RX (MCU)|+-- RXD -----+---- TX (MCU)|+-- V3 -----+---- 3.3V (MCU)|+-- GND -----+---- GND (MCU)
4. 软件配置
4.1 MCU 的 UART 配置
在 MCU 中配置 UART,确保波特率、数据位、停止位等参数与 CH340N 一致。以下是一个 STM32 的 UART 初始化示例:
#include "stm32f10x.h"void UART_Init(void) {// 启用 GPIO 和 USART 时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);// 配置 TX (PA9) 为复用推挽输出GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);// 配置 RX (PA10) 为浮空输入GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStructure);// 配置 USARTUSART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 115200;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);// 启用 USARTUSART_Cmd(USART1, ENABLE);
}
4.2 数据收发
-
发送数据:
void UART_SendByte(uint8_t data) {while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);USART_SendData(USART1, data); }
-
接收数据:
uint8_t UART_ReceiveByte(void) {while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);return USART_ReceiveData(USART1); }
5. 驱动程序
- Windows:需要安装 CH340N 的驱动程序(可从官网或第三方下载)。
- Linux:通常内核已内置 CH340 驱动,无需额外安装。
- macOS:需要安装 CH340 驱动程序。
6. 测试
- 将 CH340N 连接到电脑的 USB 端口。
- 打开串口调试工具(如 PuTTY、SecureCRT 或 Arduino IDE 的串口监视器)。
- 设置正确的串口参数(如波特率 115200)。
- 发送数据并检查 MCU 的响应。
7. 注意事项
-
电源电压:
- 如果 MCU 使用 3.3V 逻辑电平,确保 CH340N 的 V3 引脚连接到 3.3V。
- 如果 MCU 使用 5V 逻辑电平,CH340N 的 V3 引脚可以悬空。
-
信号电平:
- CH340N 的 TXD 和 RXD 引脚是 3.3V 逻辑电平,直接与 3.3V MCU 连接即可。
- 如果 MCU 使用 5V 逻辑电平,需要在信号线上添加电平转换电路。
-
PCB 设计:
- 尽量缩短 USB 信号线(D+ 和 D-)的长度。
- 在 USB 信号线上添加 22Ω 的串联电阻,以提高信号完整性。
通过以上步骤,可以成功使用 CH340N 将 MCU 的 UART 信号转换为 USB 信号,并与电脑通信。如果需要进一步的帮助,请私信我!