开发板原理图如下

无源蜂鸣器部分

🔊 无源蜂鸣器驱动电路解析

这是一个由 STM32 PB3 引脚 控制的无源蜂鸣器驱动电路,通过三极管放大驱动,实现不同频率的蜂鸣效果。


🔌 各器件作用
  1. 无源蜂鸣器 (BUZZER1)

    • 这是一个额定频率为 2.7kHz 的无源蜂鸣器,它本身不具备振荡源,需要外部提供一定频率的脉冲信号才能发声。
    • 引脚 1 接 +5V 电源,引脚 2 接三极管集电极。
  2. NPN 三极管 (Q2, SS8050)

    • 作为开关 / 放大器件,用于放大来自 MCU 的控制信号,驱动蜂鸣器。
    • 基极 (B):接收来自 MCU 的控制信号。
    • 集电极 (C):连接蜂鸣器。
    • 发射极 (E):接地。
  3. 限流电阻 (R8, 1kΩ)

    • 串联在 MCU 引脚与三极管基极之间,限制基极电流,防止三极管因过流损坏。
  4. 下拉电阻 (R9, 10kΩ)

    • 连接在三极管基极与地之间,确保在 MCU 引脚未输出高电平时,三极管基极处于低电平,可靠关断,避免蜂鸣器误触发。
  5. 续流二极管 (D1, 1N4148W)

    • 与蜂鸣器反向并联。当三极管关断时,蜂鸣器作为感性元件会产生反向电动势,二极管为其提供泄放回路,保护三极管不被击穿。
  6. 去耦电容 (C6, 100nF)

    • 并联在 +5V 电源与地之间,用于滤除电源线上的高频噪声,保证电路工作稳定。
  7. 控制引脚 (PB3)

    • STM32 的 PB3 引脚通过排针 H11 连接到驱动电路,输出一定频率的 PWM 信号来控制蜂鸣器发声。

🔄 工作流程
  1. 待机状态:当 PB3 输出低电平时,三极管 Q2 基极无电流,处于关断状态,蜂鸣器两端无电压差,不发声。
  2. 驱动发声:当 PB3 输出高电平时,三极管 Q2 导通,蜂鸣器两端获得 +5V 电压。
  3. 产生音调:通过让 PB3 输出特定频率(如 2.7kHz)的高低电平脉冲(PWM 信号),使三极管不断导通和关断,蜂鸣器内部的压电片随之振动,从而发出对应频率的声音。
  4. 保护机制:当三极管由导通变为关断瞬间,蜂鸣器的感性特性会产生高压,二极管 D1 导通,将此高压泄放,保护电路安全。

💡 关键要点
  • 无源 vs 有源:有源蜂鸣器只要通直流电就会响,而无源蜂鸣器需要一定频率的交流信号驱动,因此可以通过改变 PWM 频率来播放不同音调的音乐。
  • 频率匹配:为了获得最佳发声效果,驱动频率应尽量接近蜂鸣器的额定频率 2.7kHz。
  • 驱动方式:通常使用定时器输出 PWM 来驱动,这样可以精确控制频率和占空比,实现丰富的音效。

M24C02部分

📀 M24C02 EEPROM 存储电路解析

该电路是基于 I2C 通信协议的 M24C02 非易失性存储电路,由 STM32 的 PB6 (SCL)PB7 (SDA) 引脚控制,用于掉电后仍能保存的小容量数据存储(如配置参数、运行计数等)。


🔌 各器件核心作用
  1. M24C02-WMN6TP (U7) 存储芯片

    • 核心功能:256 字节(2K bit)的 I2C 接口 EEPROM,非易失性存储,掉电后数据不丢失。
    • 引脚功能
      • E0/E1/E2 (1/2/3 脚):I2C 从机地址配置脚,图中均接地,确定芯片在 I2C 总线上的地址为 0xA0(二进制 1010000)。
      • VSS (4 脚):电源地,接系统地。
      • SDA (5 脚):I2C 数据引脚,双向传输数据。
      • SCL (6 脚):I2C 时钟引脚,接收主控端(STM32)的时钟信号。
      • VCC (8 脚):电源正极,接 3.3V 供电。
      • WC# (7 脚):写保护引脚,图中接 3.3V(高电平),此时芯片仅可读、不可写;若接地,可同时读写。
  2. 上拉电阻(R14、R15,4.7kΩ)

    • I2C 总线的 SDA、SCL 引脚为开漏输出特性,本身无法输出高电平。
    • 作用:将引脚拉至 3.3V,保证总线在空闲时为高电平,实现可靠的双向通信,避免信号失真。
  3. 去耦电容(C7,100nF)

    • 并联在 M24C02 的 VCC 与 GND 之间。
    • 作用:滤除电源中的高频噪声,稳定芯片供电电压,防止电压波动导致数据读写错误。
  4. I2C 接口排针(H14、H15)

    • H14 对应 PB6 (SCL),H15 对应 PB7 (SDA)。
    • 作用:一方面连接 STM32 引脚,另一方面可外接其他 I2C 设备(需注意地址冲突),或引出用于调试。
  5. 控制引脚(PB6、PB7)

    • STM32 的两个通用引脚,配置为 I2C 功能(或软件模拟 I2C),分别作为时钟线和数据线,与 M24C02 进行数据交互。

🔄 工作流程(以 “读数据” 为例,写流程逻辑一致)
  1. 总线初始化:STM32 配置 PB6、PB7 为 I2C 模式(或推挽输出模拟 I2C),上拉电阻使 SDA、SCL 空闲时保持高电平。
  2. 启动通信:STM32 发送 I2C 启动信号(SCL 高电平时,SDA 由高变低),宣告总线占用。
  3. 发送地址:STM32 发送 M24C02 的从机地址 + 读位(0xA1),M24C02 匹配地址后,向 STM32 发送 “应答信号”(SDA 拉低)。
  4. 数据传输:M24C02 按时钟节拍,将指定存储地址的字节数据通过 SDA 引脚发送给 STM32,STM32 接收后发送 “应答”(连续读)或 “非应答”(单次读结束)。
  5. 停止通信:STM32 发送 I2C 停止信号(SCL 高电平时,SDA 由低变高),释放总线,通信结束。

💡 关键注意事项
  1. 写保护状态:图中 WC# 接 3.3V,此时芯片处于写保护状态,调试时若需写入数据,需将 WC# 引脚接地,或通过跳线切换电平。
  2. 通信方式:STM32 可通过硬件 I2C(效率高)或软件模拟 I2C(引脚灵活)驱动,两种方式均兼容该电路。
  3. 地址冲突:若总线上外接其他 I2C 设备,需确保其从机地址与 M24C02(0xA0)不重复,或通过修改 E0/E1/E2 引脚电平调整 M24C02 地址。

USART转RS485部分

USART 转 RS485 电路解析

这是一个由 STM32 的 USART2 外设控制的 RS485 半双工通信电路,通过 MAX3485 芯片实现 TTL 电平与 RS485 差分信号的转换,用于工业级远距离、抗干扰通信。


🔌 各器件核心作用
  1. MAX3485ESA-TD (U9) 收发器芯片

    • 核心功能:实现 TTL 电平(STM32)与 RS485 差分信号(总线)之间的转换,支持半双工通信。
    • 引脚功能:
      • DI (Pin4):数据输入,连接 STM32 的 USART2_TX (PA2),接收 MCU 发送的数据。
      • RO (Pin1):数据输出,连接 STM32 的 USART2_RX (PA3),向 MCU 发送从总线接收的数据。
      • DE (Pin3):发送使能,高电平有效,控制芯片进入发送模式。
      • RE# (Pin2):接收使能,低电平有效,控制芯片进入接收模式。
      • A (Pin6):RS485 总线正端。
      • B (Pin7):RS485 总线负端。
      • VCC (Pin8):3.3V 电源输入。
      • GND (Pin5):电源地。
  2. 上拉 / 下拉电阻(R17、R18、R19、R20,4.7kΩ)

    • R17:RO 上拉电阻,确保空闲时 RX 为高电平。
    • R18:DI 上拉电阻,确保空闲时 TX 为高电平。
    • R19:B 端上拉电阻,配合 R20 稳定总线空闲电平。
    • R20:A 端下拉电阻,配合 R19 稳定总线空闲电平,防止干扰。
  3. 终端匹配电阻(R21,120Ω)

    • 并联在 RS485 总线 A、B 两端,用于匹配传输线特性阻抗,减少信号反射,保证远距离通信的信号完整性。
  4. 去耦电容(C12,100nF)

    • 并联在 MAX3485 的 VCC 与 GND 之间,滤除电源噪声,稳定芯片供电。
  5. 控制与通信引脚

    • PA2 (USART2_TX):STM32 发送数据引脚,连接 MAX3485 的 DI。
    • PA3 (USART2_RX):STM32 接收数据引脚,连接 MAX3485 的 RO。
    • PA4 (USART2_EN):STM32 控制引脚,连接 MAX3485 的 DE 和 RE#,用于切换收发模式。
  6. 接口排针(H18、H19、H20、CN1)

    • H18/H19/H20:连接 STM32 引脚,方便调试或扩展。
    • CN1:RS485 总线接口,用于连接外部 RS485 设备。

🔄 工作流程
  1. 模式切换

    • 发送模式:PA4 输出高电平 → DE=1, RE#=1 → 芯片使能发送,禁止接收。STM32 通过 USART2_TX 发送数据,经 MAX3485 转换为 RS485 差分信号(A、B)输出到总线。
    • 接收模式:PA4 输出低电平 → DE=0, RE#=0 → 芯片使能接收,禁止发送。MAX3485 将总线上的差分信号转换为 TTL 电平,通过 RO 引脚发送给 STM32 的 USART2_RX。
  2. 数据传输

    • 发送:STM32 配置 USART2 波特率等参数,将数据写入发送寄存器,芯片自动发送至 MAX3485,再转换为 RS485 信号。
    • 接收:RS485 总线上的信号经 MAX3485 转换后,通过 USART2_RX 进入 STM32,触发接收中断或 DMA 传输。
  3. 总线稳定

    • 空闲时,上拉 / 下拉电阻使 A 端电平高于 B 端,总线保持稳定,避免噪声干扰导致误码。

💡 关键注意事项
  • 半双工限制:同一时刻只能进行发送或接收,不能双向同时通信,需严格控制 DE/RE# 引脚的电平切换时机。
  • 终端电阻:在长距离通信(>10 米)或高速通信时,必须在总线两端各接一个 120Ω 终端电阻,否则信号反射会导致通信失败。
  • 电平兼容:MAX3485 支持 3.3V 供电,与 STM32 的 3.3V 电平直接兼容,无需额外电平转换。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐