请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
线下培训(深圳) | 基于STM32N6的边缘人工智能应用开发实训
《STM32N6视频课程》学习笔记+STM32N6 系统资源隔离: RIF对外设的配置和管理
《STM32N6视频课程》学习笔记+STM32N6系统资源隔离— RIF访问规则与非法访问控制
《STM32N6视频课程》学习笔记+STM32N6 系统资源隔离 Cortex M55 TrustZone
《STM32N6视频课程》学习笔记+STM32N6 资源隔离RIF简介(一)
《STM32N6视频课程》学习笔记+STM32N6 密码学硬件以及安全存储
《STM32N6视频课程》学习笔记+STM32N6 安全启动与安全升级动手实验
《STM32N6视频课程》学习笔记+STM32N6 安全启动与安全升级
微信公众号
手机版
STM32N6课程学习心得
1、STM32N6硬件系统设计及注意事项
STM32N6 是一款基于 Arm® Cortex®-M55的MCU(Up to 800MHZ),
集成:
ST Neural-ART Accelerator (Up to 1GHZ),
H264 编码器,
Neo-Chrom 2.5D GPU,
4.2Mbyte-连续 SRAM,
内部无内嵌FLASH.
电源架构
1.VDD –数字IO电源域; 2. VDDA18AON -OPT/CLOCK
上电顺序
供电方案
注意:
1.VDD & VDDA18AON 必须先上电 2. VDD&VDDA18VON 稳定后MCU会产 生PWR_ON信号 3. PWR_ON 是后继其他电源域的使能信 号
External SMPS driving capability >2A.
两种模式: 内部或者外部SMPS
VDDcore 电压值可动态调整: 普通模式: 0.81v/ M55-600MHZ/N-ART 800MHZ 高性能模式: 0.89v/ M55-800MHZ/N-ART 1GHZ
VRMVDDCORE-纹波 <=30mVpp
启动配置
1、Boot mode is determined by BOOT pins or OPT
2、BOOT1 is a nondedicated boot pin
3、One byte of OTP11 for the release of the HW STRAPING
时钟系统
不同的子系统有不同的时钟源: 内部时钟: HSI - 64 MHz MSI - 4 MHz 外部时钟: HSE -48 MHz 两个辅助时钟: LSI: 32 kHz LSE: 32.768 kHz 四个PLL时钟: PLL1: clock to the CPU, buses, and AXI storage areas PLL2: clock to NPU and NPU storage areas PLL3: clock to CACHEAXI RAM and Ethernet PLL4: clock to display, camera module, FDCAN, and other peripherals 每路时钟可以独立开关,有助于功耗优化
硬件设计通用规则
2、STM32N6启动与调试
BootROM & 启动
• 首先检查Boot1 pin. BOOT1 默认PA6, 可通过OTP(BOOTROM_CONFIG_10, 确定端口和PIN) • BOOT1 = 1, 进入Dev 模式 • BOOT1 = 0, 未设置, 启动流程将检查Boot0 管脚, • Boot0 = 0, 选择Flash 启动. 则通过OTP 保险丝选择Flash 设备接口 • Boot0 = 1, 选择串行启动. 可通过OTP 保险丝禁用串行接口 • 注意:Boot1 引脚检查优先于Boot0 引脚检查。如果未设置Boot1 引脚,则检查Boot0。如果选择了Boot1 引脚但在当前生命周期中不允许,则检查Boot0 引脚
外部 Flash Programming(STLINK)
1、在主板断电状态下,将两个启动开关均向右拨至“开发模式”
2、连接 USB-C to USB-C 线
3、打开 STM32CubeProgrammer
4、在“External loaders” 选项卡中选择
5、在“Erasing & programming”选项卡中,浏览至binary files 并点击“Start Programming”. 外部闪存编程可能需要数分钟。
OTP Programming
FSBL + XiP 工程开发
• 目标 (with STM32CubeIDE): • 编译 Template_FSBL_XIP工程 • 添加Header (Sign the FSBL & App),烧录到板(DK with MX66UW1G45G flash) • XIP mode 启动,检查功能 • Debug XIP 应用 (断点设置,执行等)
FSBL + XiP 工程调试技巧
FSBL + Load&Run工程开发
3、STM32N6功耗测量
• Core domain • Retention domain • Backup domain • Analog domain
神经网络运行各阶段功耗分析
4、使用STM32CubeMX生成STM32N6的 ExtMemLoader, FSBL, Appli的一个LED点灯工程
5、STM32N6 ISP 调试
DCMIPP ISP 简介
DCMIPP 管线后处理
• 应用管道 (Pipe1&2-后处理) 11. 帧控制(Frame Control) 帧控制,单帧(snapshoot) 或连续模式等 12. 裁剪(Crop) 裁剪(能够用来增加图像的稳定性) 13. 缩减(Downsize) 盒式-滤波器,外带抽取(8x)功能 14. 关注区域(ROI) 支持绘制8个带颜色的正方形 15. Gamma转换 非线性转换, 参数固定 (用来匹配标准的屏幕) 16. YUV 转换 矩阵运算(乘、加、门限), 从RGB 转YUV 17. YUV444 转 422/420 色度通道降采样, 用于后续的 视频/JPG 编码 18. 像素映射(Pixel Mapping) 可转RGB8888, 888p, 565等, 并可共面/半面/全面(coplanar/semiplanar/fullplanar)
ISP: 嵌入式软件
• 2A 算法 • AEC ,自动曝光控制(Auto Exposure Control ) • 曝光是在图像传感器侧调节 • 用来调节图像传感器接收的光量 • AWB,自动白平衡 (Automatic White Balance) • 保持中性/灰色(白色像素显示为白色) • 识别场景的光源(评估场景的色温和亮度) • 设置正确的颜色校正矩阵,将帧从传感器RGB空间转换为sRGB空间 • 其它算法: • 坏点校正 • 检测并校正传感器阵列上坏像素产生的伪影 • 黑电平校正 • 根据传感器的增益(gain) 进行黑电平调整。
ISP: PC IQTune 工具
6、STM32N6 ST EdgeAI tool工具介绍
部署和测试模型
1、根据模型文件,生成模型权重文件和模型代码文件。
2、使用python脚本,编译工程和下载。
3、使用数据集进行模型验证,并通过串口上传结果,python脚本分析生成报告。
编译和下载
评估基本性能
评估准确率
7、STM32N6 AI相关 github仓库和软件包介绍
Model Zoo
Model Zoo Service
音频应用
• FFT • 窗函数 • 列处理: • Mel滤波 • Log • DCT • 移窗 • Mel频谱
视觉应用
8、STM32N6信息安全特性概览
• STM32N6 security新特性 • 信息安全能力与认证目标
9、STM32N6 BSEC
STM32N6 BSEC(Boot & Security Control)
• OTP fuse 管理 • 12Kbits OTP • 4096 OTP 低区,以bit为单位 (1-bit) 编程 • 4096 OTP 中区,以word为单位 (32-bit) 编程 • 4096 OTP 高区,以word为单位 (32-bit) 编程,只有当BSEC处于BSEC-closed状态时可以访问 • OTP fuses的读取和编程 • 支持Shadow寄存器,部分OTP fuse words值在 BSEC cold和warm复位时自动加载到对应shadow寄存器 • Device lifecycle 设备生命周期管理 • 当BSEC处于BSEC-open状态时(即STMicroelectronics engineering modes),读取OTP高区的fuse(包括RHUK)将返 回全0值(RAZ) • 支持通过128位的密码进入BSEC open状态(最多4次尝试机会) • 非易失性密钥存储吊销计数器 (Epoch) • 两个寄存器BSEC_EPOCHR0 和 BSEC_EPOCHR1 (只允许Boot ROM 写) • BSEC_EPOCHSELCR 寄存器用于选择传递给SAES的epoch信号,该信号影响从RHUK到DHUK的密钥派生 • 安全代码可以通过对OTP fuse编程增加EPOCH值,word 24-31对应 S EPOCH,word 32-39对应 NS EPOCH
• Temporal Isolation时域隔离 • HDPL(hide protection level)单向计数器,用于对密钥和调试功能的访问控制 • OTP fuse的编程锁定功能,锁定后在下次复位前无法进行编程 • OTP fuse words的读锁定功能 • 开启读锁定的shadowed words的影子寄存器将保持固定值,无法从fuse阵列重新加载数据 • 开启读锁定的非shadowed words,读取时将返回0 • Debug & Trace control • RHUK(Root Hardware Unique Key) • 芯片出厂时自带的随机产生的256-bit硬件唯一根密钥,直接连接到SAES硬件单元,软件无法读取 • JTAG 寄存器 • 提供BSEC_JTAGINR/JTAGOUTR 寄存器,用来协助软件代码(比如ROM code)通过JTAG与调试器之间进行通信 • 硬件特性控制 • 只读的shadowed fuse word 9用于控制硬件特性 (Device part number (RPN))
• 支持TrustZone® 和STM32 RIF 架构(resource isolation framework) • BSEC 自身访问控制 • BSEC寄存器只允许 secure + privileged 的访问,其他模式的访问都会被禁止,效果是读为零/写忽略(RAZ/WI) • BSEC Scratch 寄存器 • 四个BSEC_SCRATCHRx 寄存器,其数据只有在cold boot时被复位 • 可以用于存放需要在warm reset 时保持内容的数据 • 只允许secure + privileged 的读写,否则效果是读为零/写忽略(RAZ/WI) • 八个BSEC_WOSCRx 寄存器,其内容在cold boot或warm boot时被复位 • ROM code可以使用这些寄存器存储那些需要在hot resets之间保持内容的数据 • 只允许secure + privileged 的读写,否则效果是读为零/写忽略(RAZ/WI) • 只能写一次,内容在cold或warm reset时被复位
• BSEC有三种复位模式: • cold POR (power-on reset) 直接驱动 bsec_srst 信号 • 当pwr_por_rstn 信号生效时生效 • ➔ BSEC scratch (cold) 复位 • warm 系统复位 (bsec_rst) • 除了POR信号外,其他系统复位源(比 如app复位)包括 PAD 复位也会使其生 效 • ➔ BSEC warm 复位 • hot 复位(bsec_hrst) 直接由 bsec_done 信号驱动 • 当fuse_ok 信号为低时生效 • ➔ BSEC hot reset
OTPFuse管理
启动模式管理
生命周期管理
时域隔离
调试访问控制
10、STM32N6安全启动与安全升级
11、STM32N6密码学硬件与外部存储器加密
• MCE(Memory cipher engine)可以在给定的地址范围内定义多个加密区域 • MCE自动管理对加密区域的所有system bus的访问 • 对于读操作MCE会自动解密数据 • 对于写操作,如果该区域可写,则MCE会自动加密数据 • 支持多种加密模式配置,支持对性能与安全性的不同需求
• 主要特性 • 支持系统总线数据读写访问的自动加解密 • 支持两种块加密算法:AES128/256 或 Noekeon (12 轮版本) • 支持两种chaining模式:block (ECB) 和 stream (CTR) • 每个块加密算(normal/fast)法对应一组只写属性且可以被锁定的256-bit master key主密钥寄存器 • 支持两组可以被锁定的 cipher contexts (128-bit key, IV),可用于stream 和 block ciphers • 针对 XSPI 数据预取指机制进行优化(仅针对stream cipher) • 读写仲裁方案,以获得更好的读性能 • 通过AHB总线进行配置,支持 RIF保护框架 • AXI系统总线master/slave接口 (64-bit) • 支持任何 AXI-64bit 读操作 • 当地址区域使能加密时,支持 AXI-64bit INCRx (x=1到8) 和 WRAPx (x=4) 写操作
12、STM32N6安全存储
OTP fuse:特定区域存储安全启动相关密钥,预留给用户使用的fuse,可根据应用需要存储一次性写入数据OTP fuse高区数据受到保护进入RMA状态时内容无法访问
Secure RAM和寄存器:SRAM2,BKPSRAMBKP寄存器,MCE密钥寄存器检测到确认的Tamper入侵事件时自动清除
MCE:外部Flash实时加解密可以使用DHUK派生密钥,实现一机一密和防克隆效果
HUK & SAES:支持硬件唯一密钥支持AES密钥封装,存储密文密钥,使用密钥加解密时不暴露密钥明文配合TZ和RIF系统隔离架构实现非对称密钥的安全存储与使用
13、STM32N6资源隔离RIF
通过STM32CubeMX配置RIF