智能垃圾桶系统接线说明

开源地址见往期文章,是同一个仓库,在final文件夹下

注意事项参考这里

本文由deepseek v4辅助完成,总结接线这种任务甚至用不到1M上下文哈哈

值得一提的是,NUCLEO-F411这个开发板如使用USART2,需在背面短接两个焊点,请自行搜索

系统整体通信架构

[Android 上位机] <--USART2 115200--> [STM32F411RETx] <--USART1 115200--> [FPGA Artix-7]
                                           |
                                        USART6 115200
                                           |
                                       [L610 4G Cat1] --> 华为 IoT 云平台
                                           |
                              I2C1 ── TCS34725 颜色传感器
                              I2C3 ── VL6180 ToF 测距传感器

一、MCU (STM32F411RETx) 引脚接线表

1.1 与上位机通信 — USART2

MCU 引脚方向连接对象说明
PA2 (USART2_TX)输出Android 主板 UART RX115200 8N1,无流控
PA3 (USART2_RX)输入Android 主板 UART TX同上
GNDAndroid 主板 GND共地

Android 端默认串口设备为 /dev/ttyAMA3,协议为文本行命令,以 \r\n 结尾。

1.2 与 FPGA 通信 — USART1

MCU 引脚方向连接对象 (FPGA 引脚)说明
PA9 (USART1_TX)输出FPGA uart_rx (J16)115200 8N1,MCU 发 → FPGA 收
PA10 (USART1_RX)输入FPGA uart_tx (J15)115200 8N1,FPGA 发 → MCU 收
GNDFPGA GND共地

协议为单字母命令 + 参数:Q 查询距离,Axxx 舵机1角度,Bxxx 舵机2角度,FPGA=<raw> 透传。FPGA 响应格式:R=?(距离状态),S1=???(舵机1),S2=???(舵机2),E=??(错误),ERR(命令错误),RDY(就绪)。

1.3 与 L610 物联网模块通信 — USART6

MCU 引脚方向连接对象说明
PC6 (USART6_TX)输出L610 UART RX115200 8N1
PC7 (USART6_RX)输入L610 UART TX同上
GNDL610 GND共地

L610 需单独供电(3.8V~4.2V,推荐 4V/2A)。MCU 通过 AT 指令控制 L610 拨号 (AT+MIPCALL=1) 并连接华为 IoT 云 MQTT。

1.4 TCS34725 颜色传感器 — I2C1

MCU 引脚连接对象说明
PB6 (I2C1_SCL)TCS34725 SCL100kHz,需 4.7kΩ 上拉到 3.3V
PB7 (I2C1_SDA)TCS34725 SDA同上
3.3VTCS34725 VCC传感器供电
GNDTCS34725 GND共地

I2C 从机地址:0x29(7-bit)。传感器 LED 引脚接 3.3V 通过限流电阻(或不接)。

1.5 VL6180 ToF 测距传感器 — I2C3

MCU 引脚连接对象说明
PA8 (I2C3_SCL)VL6180 SCL100kHz,需 4.7kΩ 上拉到 3.3V
PC9 (I2C3_SDA)VL6180 SDA同上
3.3VVL6180 VCC传感器供电
GNDVL6180 GND共地

I2C 从机地址:0x29(7-bit)。SHUTDOWN 引脚接 3.3V(不关断),GPIO1 可不接。

1.6 板载外设

MCU 引脚外设说明
PA5LD2 (LED)板载 LED,收到命令时翻转
PC13B1 (按键)板载按键,下降沿触发

二、FPGA (Artix-7 XC7A35T-FTG256-2) 引脚接线表

约束文件位置fpga/fpga.srcs/constrs_1/new/1.xdc(实际使用的约束文件,已通过综合+实现+生成比特流验证)

注意fpga/constraints/fpga_io_template.xdc 是模板文件,里面大部分引脚为 <PIN> 占位符,不能直接使用。实际引脚以 1.xdc 为准。

全局约束参数:所有端口 IOSTANDARD = LVCMOS33,输出端口 DRIVE = 12,SLEW = SLOW。

全引脚速查表

FPGA 引脚端口名方向连接外部设备功能
D4clk输入50MHz 晶振系统时钟
T9rst_n输入复位按键 + 上拉复位(低有效)
J16uart_rx输入STM32 PA9MCU→FPGA UART
J15uart_tx输出STM32 PA10FPGA→MCU UART
B10hcsr04_trig输出HC-SR04 Trig超声波触发脉冲
B9hcsr04_echo输入HC-SR04 Echo超声波回波
C4servo1_pwm输出舵机1 信号线50Hz PWM
C6servo2_pwm输出舵机2 信号线50Hz PWM
P9busy输出LED (限流→GND)测量忙指示

2.1 系统时钟与复位

FPGA 端口方向FPGA 引脚连接对象说明
clk输入D450MHz 有源晶振输出系统主时钟,周期 20ns
rst_n输入T9复位按键 + 上拉电阻到 3.3V低电平有效,按键按下时接地

2.2 UART 通信(与 STM32 MCU)

FPGA 端口方向FPGA 引脚连接对象说明
uart_rx输入J16STM32 PA9 (USART1_TX)115200 8N1,FPGA 收 ← MCU 发
uart_tx输出J15STM32 PA10 (USART1_RX)115200 8N1,FPGA 发 → MCU 收
GNDSTM32 GND共地

2.3 HC-SR04 超声波传感器

FPGA 端口方向FPGA 引脚连接对象说明
hcsr04_trig输出B10HC-SR04 Trig 引脚FPGA 发出 10μs 触发脉冲
hcsr04_echo输入B9HC-SR04 Echo 引脚
HC-SR04 VCC → 5V 电源传感器供电
HC-SR04 GND → FPGA GND共地

2.4 舵机 ×2

FPGA 端口方向FPGA 引脚连接对象说明
servo1_pwm输出C4舵机 1 信号线(白/黄)50Hz PWM,500~2500μs 脉宽 → 0~180°
servo2_pwm输出C6舵机 2 信号线(白/黄)同上
舵机 VCC(红)→ 外部 5V~6V 独立电源不可从 FPGA 板取电,每个舵机堵转电流可达 1A
舵机 GND(棕/黑)→ FPGA GND共地

2.5 状态指示

FPGA 端口方向FPGA 引脚连接对象说明
busy输出P9LED → 220Ω → GND超声波测量忙指示,高电平时亮

三、L610 物联网模块接线

需要把供电开关拨到B5V

L610 引脚连接对象说明
UART TXSTM32 PC7 (USART6_RX)115200 8N1
UART RXSTM32 PC6 (USART6_TX)同上
GNDMCU GND共地
VCC5V电源

四、Android 上位机接线

Android 主板引脚连接对象说明
UART TX (ttyAMA3)STM32 PA3 (USART2_RX)115200 8N1
UART RX (ttyAMA3)STM32 PA2 (USART2_TX)同上
GNDMCU GND共地

默认串口路径:/dev/ttyAMA3。上位机通过文本命令控制 MCU,再由 MCU 中转控制 FPGA、传感器和 IoT 模块。


Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐