bk7252.yaml•7.73 kB
# config/mcu_configs/bk7252n.yaml
mcu_family: "BK7252N"
core: "ARM Cortex-M4"
cpu_frequency: 160
flash_size: 512 # KB
ram_size: 544 # KB
sip_flash: 2048 # KB (2MB)
# 电源配置
power_supply:
vccbat_range: [2.7, 4.35] # V
vccusb_range: [4.3, 5.5] # V
operating_voltage: 3.3
battery_charger:
supported: true
max_current: 200 # mA
programmable: true
# 时钟配置
clocks:
external:
high_freq: 26 # MHz
low_freq: 32.768 # kHz (QFN40 only)
internal:
dco_range: [26, 160] # MHz
rosc: 32 # kHz
pll:
dpll: 480 # MHz
output_clocks:
- name: "CLK26M"
source: "XTALH"
frequency: 26
- name: "CLK13M"
source: "XTALH"
dividers: [1, 2, 4, 8]
- name: "LP0_CLK"
source: ["XTALH", "ROSC", "XTALL"]
frequency: 32
- name: "CIS_MCLK"
source: "internal"
description: "CMOS图像传感器参考时钟"
# 封装配置
packages:
QFN68:
gpio_count: 38
dimensions: [8, 8] # mm
features:
qspi: true
uart_count: 3
uart0_hw_flow_control: true
i2s: true
audio_adc: true
audio_dac: true
irda: true
aux_adc_channels: 7
pwm_channels: 6
QFN48:
gpio_count: 29
dimensions: [6, 6] # mm
features:
qspi: false
uart_count: 2
uart0_hw_flow_control: true
i2s: false
audio_adc: true
audio_dac: true
irda: false
aux_adc_channels: 6
pwm_channels: 1
QFN40:
gpio_count: 27
dimensions: [5, 5] # mm
features:
qspi: false
uart_count: 2
uart0_hw_flow_control: false
i2s: false
audio_adc: false
audio_dac: false
irda: false
aux_adc_channels: 4
pwm_channels: 2
xtall_support: true
# 外设配置
peripherals:
wifi:
standard: "802.11b/g/n"
modes: ["STA", "SoftAP", "STA+SoftAP"]
tx_power: 17.5 # dBm
rx_sensitivity: -98 # dBm
channels: [1, 13] # 支持的信道
bandwidth: 20 # MHz
bluetooth:
version: "5.2 LE"
modes: ["1Mbps", "2Mbps", "125kbps", "500kbps"]
features: ["2Mbps", "扩展广告", "长距离"]
tx_power: 6 # dBm
rx_sensitivity: -96 # dBm
spi:
- name: "SPI0"
modes: ["master", "slave"]
max_frequency: 60 # MHz
data_width: [8, 16]
fifo_depth: 64
- name: "SPI1"
modes: ["slave"]
max_frequency: 60 # MHz
data_width: [8]
fifo_depth: 64
qspi:
max_frequency: 120 # MHz
modes: ["indirect", "memory_mapped"]
data_lines: [1, 2, 4]
data_width: [8, 16, 32]
uart:
- name: "UART0"
features: ["flash_download", "hw_flow_control"]
max_baudrate: 4000000 # 4 Mbps
fifo_depth: 128
- name: "UART1"
max_baudrate: 4000000
fifo_depth: 128
- name: "UART2"
max_baudrate: 4000000
fifo_depth: 128
i2c:
- name: "I2C0"
modes: ["master", "slave"]
speeds: [100, 400] # kbps
addressing: [7, 10] # bit
- name: "I2C1"
modes: ["master", "slave"]
speeds: [100, 400]
addressing: [7, 10]
sdio:
modes: ["host", "slave"]
max_frequency: 60 # MHz
data_bus: [1, 4] # bit
host_speed: 30 # MB/s
slave_speed: 20 # MB/s
gpio:
total_count: 40
features:
drive_strength: true
pull_up: true
pull_down: true
interrupt_modes: ["level_high", "level_low", "edge_rising", "edge_falling"]
gdma:
channels: 8
data_width: [8, 16, 32] # bit
transfer_types: ["peripheral_to_memory", "memory_to_memory", "memory_to_peripheral"]
supported_peripherals: ["UART0", "UART1", "UART2", "SPI0", "SDIO", "SPI1", "JPEG", "I2S", "AUDIO", "AUX_ADC"]
jpeg:
encoder: true
quant_tables: 32
cis:
interface: "DVP"
data_bus: 8 # bit
sync_signals: ["MCLK", "PCLK", "HSYNC", "VSYNC"]
data_formats: ["YCbCr422", "RGB565"]
cropping: true
pwm:
pairs: 3
channels: 6
counter_bits: 32
prescaler_bits: 8
modes: ["pwm", "timer", "counter", "capture"]
base_frequency: "programmable"
i2s:
modes: ["master", "slave"]
communication: ["full_duplex", "half_duplex"]
sample_rates: [8000, 16000, 44100, 48000, 384000] # Hz
protocols: ["I2S_Philips", "MSB_aligned", "LSB_aligned", "PCM"]
data_width: [1, 32] # bit
fifo_depth: 32
audio:
equalizer:
bands: 4
hardware: true
adc:
resolution: 16 # bit
sample_rates: [8000, 16000, 44100, 48000]
dac:
resolution: 16 # bit
sample_rates: [8000, 16000, 44100, 48000]
output: "mono"
load_capability: [16, 30] # Ω, pF
microphone:
amplifier_gain: [0, 32] # dB, 2dB steps
bias_generator: true
line_in:
amplifier_gain: [0, 6] # dB, 2dB steps
aux_adc:
resolution: 10 # bit
channels:
external: 7
internal: 4
sample_rate: [5000, 1860000] # Hz
modes: ["single_step", "software_controlled", "continuous"]
internal_channels:
- name: "VBAT"
channel: 0
description: "电池电压监控 (VBAT/3)"
- name: "TSSIO"
channel: 8
- name: "TEMP"
channel: 9
description: "内部温度传感器"
- name: "DEBUG"
channel: 10
timers:
groups: 2
timers_per_group: 3
counter_bits: 32
prescaler_bits: 4
wdt:
clock_source: "LPO_CLK"
max_period: 65.536 # seconds
rtc:
counter_bits: 64
clock_source: "LPO_CLK"
low_power: true
irda:
modes: ["simplex"]
carrier_modulation: true
fifo_depth: 512 # bytes
temperature_sensor:
range: [-40, 125] # °C
accuracy: ±5 # °C
trng:
source: "thermal_noise"
cryptographic: true
# 功耗模式
power_modes:
active:
description: "MCU工作,所有外设可用"
sleep:
description: "MCU和数字逻辑时钟停止,电源降至保持电压"
deep_sleep:
description: "除常开逻辑外所有电路断电,GPIO/RTC中断可唤醒"
retention: ["registers"]
shutdown:
description: "所有电路关闭,CEN引脚高电平唤醒"
lowest_power: true
# 编译器配置
compiler_flags:
cpu: cortex-m4
fpu: fpv4-sp-d16
float-abi: hard
defines:
- BK7252N
- CFG_CPU_ARM
- CFG_FREERTOS
includes:
- "Drivers/BK7252N_HAL_Driver/Inc"
- "Drivers/CMSIS/Include"
- "Middlewares/FreeRTOS/include"
# 内存布局
memory_layout:
flash:
start: 0x08000000
size: 0x80000 # 512KB
ram:
start: 0x20000000
size: 0x88000 # 544KB
sip_flash:
start: 0x01000000
size: 0x200000 # 2MB
# 应用模板映射
template_mapping:
iot_gateway: "bk7252n_iot_gateway"
smart_device: "bk7252n_smart_device"
smart_home: "bk7252n_smart_home"
data_acquisition: "bk7252n_data_acq"
basic_demo: "bk7252n_basic_demo"
# 典型应用
typical_applications:
- "IP摄像头"
- "无人机"
- "内窥镜"
- "行车记录仪"
- "智能家居设备"
- "智能插头"
- "智能照明"
- "工业终端"
- "医疗设备"
# 开发工具支持
development_tools:
debug: ["JTAG"]
flash_download: ["UART", "SPI"]
programming_interfaces: ["UART0", "SPI"]
# 验证规则
validation_rules:
memory:
max_stack_usage: 60% # 最大堆栈使用率
min_task_stack: 128 # 最小任务堆栈大小
power:
max_current: 500 # mA
performance:
max_cpu_usage: 80% # 最大CPU使用率