stm32h743采用40nm芯片制造工艺。根据查询相关公开信息显示,此工艺结合产品架构创新,使新系列产品运算性能大幅提升,将处理器内核性能发挥得淋漓尽致,在系统内部超高速传输数据,运行模式功耗低于280uA/MHz,待机功耗低于7uA。
技术前沿,原料珍贵。
集成板技术复杂,原料珍贵,价格自然昂贵。
集成电路(integratedcircuit)是电路(主要包括半导体设备,也包括被动组件等)小型化的方式,采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗、智能化和高可靠性方面迈进了一大步。
openmv的硬件电路由OpenMV-H7和 STM32H743两个硬件电路组成。我来具体介绍这两个硬件电路。
OpenMV-H7
OpenMV-H7是低功耗的Python3可编程机器视觉硬件,结合摄像头可以支持一系列广泛的图像处理功能和神经网络。OpenMV-H7使用跨平台 IDE 进行编程,该 IDE 允许查看摄像机的帧缓冲器、访问传感器控件、通过 USB 串行(或 WiFi/BLE(如果可用)将脚本上传到摄像机。OpenMV-H7 基板基于在 400MHz 下运行的STM32H743 MCU,具有 1MB SRAM、2MB 闪存、FPU、DSP 和硬件 JPEG 编码器。基板采用模块化传感器设计,将传感器与摄像机分离。模块化传感器设计使摄像机能够支持多个传感器,包括 OV7725、MT9V03x 全球快门传感器和 FLIR Lepton 1、2 和 3 热传感器。OpenMV-H7可以应用在多个领域比如:智能家居,机器人导航,物体检测与追踪等工业应用。
STM32H743
STM32H743是OpenMV-H7基板的MCU,其是一款32位的,Cortex-M7内核的芯片,该内核具有双精度浮点处理单元FPU,最高频率达到400MHz,并且内置1M RAM, 2M Flash。图2所示是STM32H743芯片的架构。
STM32H743 将中断分为 5 个组,组 0~4。
该分组的设置是由 SCB->AIRCR 寄存器的 bit10~8 来定义的。具体的分配关系下表所示:
组 AIRCR[10:8] bit[7:4]分配情况 分配结果。
0 111 0:4 0 位抢占优先级,4 位响应优先级。
1 110 1:3 1 位抢占优先级,3 位响应优先级。
2 101 2:2 2 位抢占优先级,2 位响应优先级。
3 100 3:1 3 位抢占优先级,1 位响应优先级。
4 011 4:0 4 位抢占优先级,0 位响应优先级。
通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系。
例如组设置为 3,那么此时所有的 108 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个中断,你可以设置抢占优先级为 0~7,响应优先级为 1 或 0。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。
这里需要注意两点:
1> 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
2> 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。
结合实例说明:
假定设置——中断优先级组为 2。
中断 3(RTC_WKUP 中断)的抢占优先级为 2,响应优先级为 1。
中断 6(外部中断 0)的抢占优先级为 3,响应优先级为 0。
中断 7(外部中断 1)的抢占优先级为 2,响应优先级为 0。
那么这 3 个中断的优先级顺序为:中断 7>中断 3>中断 6。
上面例子中的中断 3 和中断 7 都可以打断中断 6 的中断。而中断 7 和中断 3 却不可以相互打断!
接下来我们介绍如何使用 HAL库实现以上中断分组设置以及中断优先级管理,使中断配置简单化。NVIC 中断管理相关函数主要在 HAL 库关键文件 stm32h7xx_hal_cortex.c 中定义。
stm32h743能用晶振是25MHz。单片机为STM32H743,晶振大小为25MHz。程序利用LTDC驱动RGB888接口的4.3寸高分辨率屏。