如果用stm32f103rtc6作为主控,配合mpm54304和mpm82504这2个电源芯片为cyclone iv 的fpga提供上电时序,从而完成一个adc信号采集过程的示波器功能。
首先看看:mpm82504这个芯片的引脚太多了,大概也要200左右,上次在论坛上面问到,如何绘制为多部件的器件原理图,目前还没有解答。
不过根据原理框图和相关寄存器,了解如何通过stm32进行控制和如何通过I2C进行通信。STM32F103 (Microcontroller Unit) - “系统勤杂管家” (Housekeeping Controller)
-
-
角色: 它是服务者,是整个系统的**“后勤部长”**。
-
任务: 负责低速的、顺序的、管理性的任务。它的核心职责就是为FPGA准备好生存环境。这包括:
-
电源管理: 通过I2C/PMBus配置和监控MPM82504/MPM54304,确保FPGA的所有电源轨都按照正确的电压、正确的时序上电和掉电。
-
时钟管理: 配置时钟合成器(如ADF4350),为FPGA和ADC提供稳定的时钟。
-
系统监控: 监控温度、风扇转速等。
-
启动加载: 在某些设计中,MCU甚至可以负责将FPGA的配置文件从外部存储器(如SD卡)加载到FPGA中。
-
低速通信: 处理一些慢速的外设,如按键、LED指示、串口调试等
-
-
2、这里也提到了mpm54304,先看看电路原理图:
配合这个:
看看他的工作流程 (基于文档描述):
-
启动与通信:
-
如图所示,VIN=12V上电后,MPM54304内部的LDO会启动,VCC变为有效。
-
一旦VCC > 2V,芯片的I²C模块就会被激活,此时它已经可以和你的主控(SoC/STM32)进行通信了。
-
芯片会进入一个“安全启动模式”,只开启MTP中预设的一两路电源(如图中的VOUT1=1V, VOUT4=3.3V),目的是先为主控SoC提供最基本的生存电源。
-
-
SoC接管控制:
-
SoC(你的STM32)上电并启动后,它就可以通过I²C总线与MPM54304对话了。
-
此时,STM32可以发送命令,覆盖I²C寄存器的值,开启所有需要的电源轨,并设置成最终产品需要的电压。
-
-
执行MTP烧录 (由STM32或专用工具执行):
-
Step 1: 请求编程 & 加锁: STM32向某个特殊寄存器写入一个位(MTP_Program bit = 1)。这相当于告诉芯片:“我要开始编程了,请锁定所有I²C寄存器,不要再接受其他的配置更改。”
-
Step 2: 检查烧录电压: STM32读取一个状态位,确认芯片内部用于MTP烧录的高压(>5.1V)已经准备就绪。这是安全检查。
-
Step 3: 触发烧录: STM32发送一个特殊的命令(例如 STORE_USER_ALL)。芯片内部会自动计算当前所有相关I²C寄存器内容的一个校验和 (Checksum),然后将所有数据连同这个校验和一起烧录进MTP。
-
等待与确认: 烧录过程需要时间(文档提到约100ms)。在此期间,STM32可以轮询 MTP_Program 那个位。当芯片烧录完成并自检通过后,会自动将该位清零。STM32读到该位为0,就知道烧录完成了。
-
数据回读验证: 作为最终验证,STM32可以再次读取MTP的内容,与自己想要烧录的值进行比对,确保烧录完全正确。
-
3、当然还有这个MIE1W0505BGLVH-3R-Z,不过他没有I2C接口,所以只作为独立的隔离模块进行使用。
目前的工作进展到,这些新片段 原理图都已经更新,但是还没有进行逻辑互联,pcb的绘制还没有进行。
所以还要继续,总体感觉还是要看很多文档才可以熟练起来。因为现在还有些地方没有弄明白,所以这个项目的所有文件现象还不能上传,就先截个图看看,希望我的问题可以得到论坛热心网友的解答。
后面的主要实现就是替换和更新,并连线



