SDC-ACQ&DAC 板卡工程设计思路
说明:本文整理的是可交付、可复核的工程设计思路和关键取舍,不记录逐步的内部思维链。依据当前目录中的网表、STM32F407VET6 引脚资料、引脚规划文档和 Altium 工程包整理。
1. 设计目标
这块板子的目标是围绕 STM32F407VET6 做一块集成采集、通信和 DAC 输出的控制板。核心需求可以归纳为:
- 使用 STM32F407VET6 作为主控,封装为 LQFP100。
- 提供 15 路 SDC 电平输入采集,方便一次性读取一组外部状态信号。
- 提供 4 路转速或脉冲输入捕获,用 MCU 定时器测频、测周期或读取 PWM。
- 提供 2 路 CAN 通信接口,面向车载或工业现场总线。
- 提供 2 路 DAC/模拟输出,网表中为
MC_L、MC_R。 - 提供 I2C 接口,并通过电平转换兼容 3.3 V MCU 侧和 5 V 外设侧。
- 提供 12 V 输入、5 V、3.3 V、模拟参考和必要的去耦滤波。
- 保留 SWD、复位、启动配置、串口调试、状态 LED 等调试和量产必需接口。
2. 总体架构
板卡按功能分为以下模块:
| 模块 | 主要器件/网络 | 设计意图 |
|---|---|---|
| 主控 | U23 STM32F407VET6 |
统一处理 SDC 输入、转速捕获、CAN、I2C、DAC 控制和调试接口 |
| 电源 | +12V、+5V、VCC、VCCA、VREF |
由外部 12 V 进入,生成数字 5 V、MCU 3.3 V 和模拟参考 |
| SDC 输入 | SDC_IN1SDC_IN15、SDC1SDC15 |
外部输入经电阻/三极管级进入 MCU,集中到 GPIOD |
| 转速输入 | ZQ_OUT、ZH_OUT、YQ_OUT、YH_OUT |
经限流/下拉后进入 TIM 输入捕获通道 |
| CAN | CAN1_H/L、CAN2_H/L、CAN1_TX/RX、CAN2_TX/RX |
MCU 侧接 CAN 收发器,外部侧接总线并配置终端电阻 |
| DAC | DAC1、DAC2、MC_L、MC_R |
通过 I2C 控制两路 DAC 输出 |
| I2C 电平转换 | I2C_SCL_33、I2C_SDA_33、SCL_5、SDA_5、U22 |
MCU 侧 3.3 V,DAC/外设侧 5 V |
| 调试 | SWDIO、SWCLK、NRST、USART1_TX/RX、STLED_1/2 |
下载、在线调试、日志输出和运行状态显示 |
3. MCU 引脚分配原则
引脚分配优先级不是单纯按外设功能堆叠,而是同时考虑 PCB 布线、调试保留、外设冲突和软件读取效率:
- 必需接口先保留:
PA13/SWDIO、PA14/SWCLK、NRST、BOOT0、PB2/BOOT1、HSE、VCAP_1/2、电源和模拟电源脚不参与普通功能分配。 - 同类信号尽量靠近:CAN1/CAN2 放在
PB5/PB6/PB8/PB9附近,便于两个 CAN 收发器并排布置。 - 大量状态输入尽量集中到同一端口:15 路 SDC 输入集中使用
PD0~PD14,软件可以直接读取GPIOD->IDR后按位解析。 - 转速/脉冲输入优先选定时器捕获脚:
PA0/TIM5_CH1、PA2/TIM9_CH1、PA6/TIM3_CH1、PB14/TIM12_CH1分别承担 4 路输入。 - I2C 使用相邻且 5 V 容忍的
PB10/PB11,便于布线并适配外部上拉和电平转换。 PB0/PB1保留给 ADC 相关功能,其中PB0/ADC1_IN8用于 24 V 分压检测,PB1/ADC1_IN9可作备用模拟量。- 调试 LED 放在
PE0/PE1,释放PB0/PB1给模拟输入。
4. 关键功能设计思路
4.1 SDC 输入采集
15 路输入从连接器进入后,经过电阻网络和三极管级再接入 MCU 的 PD0~PD14。这样设计的好处是:
- 外部输入和 MCU 管脚之间有基本限流与隔离。
- 所有 SDC 信号集中在 GPIOD,软件读取简单,适合周期扫描。
PD15可作为第 16 路备用,后续扩展时不需要大改软件结构。
设计时需要特别确认外部 SDC 输入电平、有效极性、三极管反相关系以及默认上下拉状态,避免上电阶段误判。
4.2 四路转速/脉冲捕获
四路转速输入对应网表中的:
| 外部信号 | MCU 网络 | MCU 引脚 |
|---|---|---|
ZQ_OUT |
TIM5_CH1 |
PA0 |
ZH_OUT |
TIM9_CH1 |
PA2 |
YQ_OUT |
TIM3_CH1 |
PA6 |
YH_OUT |
TIM12_CH1 |
PB14 |
这些脚都可配置为定时器输入捕获。若只测频率,可以在捕获中断或 DMA 中记录相邻边沿时间差;若要测 PWM 高低电平宽度,应结合定时器通道和输入极性配置进一步确认。
4.3 双 CAN 接口
CAN1 使用 PB8/PB9,CAN2 使用 PB5/PB6。MCU 只连接收发器逻辑侧,外部接口为 CAN1_H/L 和 CAN2_H/L。
关键取舍:
- 选择
PB5/PB6/PB8/PB9是为了让两路 CAN 的 MCU 侧信号集中,收发器靠近 MCU 和连接器都更容易。 - 网表中
R20、R21为 120 欧终端相关器件,需要根据总线拓扑决定是否常接、跳线选择或预留不焊。 - CANH/CANL 外侧应关注 ESD、共模干扰和走线差分/等长要求。
4.4 I2C 与 DAC 输出
MCU 侧 I2C 为 PB10/PB11,网络名为 I2C_SCL_33、I2C_SDA_33;5 V 侧为 SCL_5、SDA_5,经 U22 做电平转换后连接 DAC。
这样安排的目的:
- MCU 维持 3.3 V 逻辑,避免 5 V 直接进入非预期模式下的 MCU 引脚。
- DAC 和外设侧可以使用 5 V 供电或 5 V 上拉。
- 上拉电阻分布清楚,方便按总线速度和负载电容调整。
两路 DAC 输出网络为 MC_L 和 MC_R,需要在调试时确认 DAC 地址、I2C 上拉、电源纹波和输出负载范围。
4.5 电源与模拟参考
网表显示板上存在 +12V、+5V、VCC、VCCA、VREF、AGND 和 GND 等网络。设计意图是把输入电源、数字电源和模拟参考分层处理:
+12V作为外部输入或上级电源。+5V给 CAN 收发器、DAC 或其他 5 V 侧器件供电。VCC作为 MCU 数字 3.3 V 供电。VCCA、VREF和AGND用于 ADC/DAC 相关模拟部分,需减少数字噪声耦合。VCAP_1/2必须接低 ESR 电容到地,不可悬空或作外部电源使用。
4.6 24 V 电压检测
PB0/ADC1_IN8 对应网表中的 ADC 网络,通过分压电阻把最高 20 V 压到 MCU ADC 安全范围内。当前规划建议过 100 k 与 20 k 量级分压,并在采样点加小电容滤波。
这部分的关键不是只算分压比,还要确认:
- 最高输入电压、瞬态浪涌和误接风险。
- ADC 采样时间是否能适配较高源阻抗。
- 分压电阻精度、温漂对测量误差的影响。
- 是否需要 TVS、串联电阻或钳位保护。
4.7 调试与量产接口
板上保留了 SWD、串口、复位、启动配置和状态 LED:
SWDIO、SWCLK、NRST用于下载和在线调试。USART1_TX/RX可接 USB-TTL 作为日志口。BOOT0和BOOT1必须有确定上下拉,避免随机进入系统 Bootloader。STLED_1、STLED_2作为最小运行状态反馈,适合上电自检和故障定位。
5. PCB 布局布线重点
- MCU 放在板卡控制中心,SDC 输入、CAN、DAC/I2C、调试接口按功能分区引出。
- CAN 收发器靠近外部连接器,CANH/CANL 走线短、成对、少过孔,并在接口附近布置保护器件。
- HSE 晶振靠近
PH0/PH1,晶振回路短且远离高噪声开关电源和 CAN 总线。 - MCU 每个 VDD/VDDA 就近放 100 nF 去耦,电源入口和稳压输出放足够的储能电容。
- 模拟参考、ADC 分压和 DAC 输出尽量远离开关节点与高速边沿信号。
- I2C 上拉、电平转换器和 DAC 尽量靠近,SCL/SDA 避免长距离并行干扰源。
- SDC 输入通道重复结构保持一致,便于生产检查、维修和软件映射。
6. 软件配置映射
| 功能 | CubeMX/固件配置 |
|---|---|
| SDC 输入 | PD0~PD14 配置为 GPIO 输入,按实际硬件极性设置上下拉 |
| 转速 1 | PA0 配置为 TIM5_CH1 输入捕获 |
| 转速 2 | PA2 配置为 TIM9_CH1 输入捕获 |
| 转速 3 | PA6 配置为 TIM3_CH1 输入捕获 |
| 转速 4 | PB14 配置为 TIM12_CH1 输入捕获 |
| CAN1 | PB8/PB9 配置为 CAN1_RX/TX |
| CAN2 | PB5/PB6 配置为 CAN2_RX/TX,固件中同时注意 CAN1 时钟依赖 |
| I2C | PB10/PB11 配置为 I2C2_SCL/SDA,开漏,外部上拉 |
| ADC | PB0 配置为 ADC1_IN8,按分压比换算真实电压 |
| 串口 | PA9/PA10 配置为 USART1_TX/RX |
| LED | PE0/PE1 配置为 GPIO 输出 |
7. 原理图复核清单
- STM32 所有
VDD/VSS/VDDA/VSSA/VREF+/VCAP是否按数据手册完整连接。 BOOT0、BOOT1、NRST是否有明确默认状态。- SWD 下载口是否包含
SWDIO、SWCLK、GND、VCC,必要时包含NRST。 - HSE 晶振负载电容和器件封装是否匹配。
- CAN 收发器供电、TX/RX 方向、终端电阻和接口定义是否正确。
- I2C 电平转换方向、上拉电阻、电源域连接是否正确。
- DAC 地址冲突、输出范围、负载能力和滤波是否满足需求。
- 24 V 分压到 ADC 的最高电压是否低于
VREF+,并留足异常保护。 - 15 路 SDC 输入的硬件反相、上下拉和软件逻辑是否一致。
- 连接器针序是否和外部线束定义一致,特别是 CAN、12 V、电源地和 DAC 输出。