警报灯定时设计

本周工作

  • Verilog Ethernet 参考原有例程给出的NexysVideo板卡原理图,主要是以太网部分,其采用的是小螃蟹的RTL8211E-VB,而手头的XC7A35T板卡采用的是RTL8211FD,两者区别在于前者兼容多种工作接口如MII、RGMII等,后者只能以RGMII接口工作。

    Verilog Ethernet给出的例程中采用的接口为RGMII接口,但是使用的部分信号线在手头的XC7A35T板卡上没有使用,后面需看一下该信号的具体作用。另外两个板卡使用的时钟也不一样,移植前需要先修改时钟设置。

  • 高速警报灯定时设计

    1. 最开始采用的是自行设计的定时电路,如下。运放和参考源均选择静态工作电流在几个μA级别的器件,主要控制R1-C1的取值。实际测试后发现,C1100nFR1100MΩ时,主开关Q1大概有约20多秒的关断时间。减小R1方便示波器测试,R110KQ1关闭约14ms162K时关闭约30ms,与理论设计差距较大。
      Circuit
      另外还对该电路进行电流测试,输入电压5V,电路在Q1关闭时消耗电流约399.6μA,在Q1开启时消耗电流约706.5μA,较接近1mA

    2. 对于拟作为主控的STM32芯片,其具有多种工作模式,除了正常运行模式外,还具有睡眠(sleep)低功耗运行(low power run)低功耗睡眠(low power sleep)停止(stop)待机(standby)关机(shutdown)等多种模式,其消耗电流依次降低。以STM32G031为例,各个模式下的运行状态如下。

      • 睡眠(sleep)模式:在睡眠模式下,只有CPU停止。所有外围设备继续运行,并在发生中断/事件时唤醒CPU。

      • 低功耗运行(low power run)模式:CPU核心供电由低功率电压调节器供电,限制CPU频率到2MHZ。

      • 低功耗睡眠(low power sleep)模式:在低功耗运行模式下进一步关闭CPU进入该模式。当事件或中断触发唤醒时,系统将恢复到低功率运行模式。

      • 停止(stop)模式:该模式下仅保留SRAM和寄存器中的内容,停止所有时钟,而且PLL、内部高速时钟、外部高速时钟被禁用,RTC、内外部低速时钟(32.768KHz)仍然保持工作。

      • 待机(standby)模式:寄存器内容丢失,RTC域和待机电路中的寄存器内容保留,SRAM内容可以通过寄存器设置选择保留。当外部重置事件(NRST引脚)、IWDG重置事件、唤醒事件(WKUP引脚,可配置上升或下降沿)或RTC事件(警报、周期性唤醒、时间戳、篡改)或LSE上检测到故障(LSE上的CSS)时,设备退出待机模式。

      • 关机(shutdown)模式:可实现最低功耗。除了外部低速时钟(32.768KHz)可以工作外,其他时钟如PLL,HSI,HSE等全部断电,RTC可以保持在活动状态。SRAM和寄存器内容全部丢失,RTC域中的寄存器除外。设备在外部重置事件(NRST引脚)、IWDG重置事件、唤醒事件(WKUP引脚、可配置上升或下降沿)或RTC事件(警报、周期性唤醒、时间戳、篡改)时退出关机模式。

      要实现在不工作状态下的最低功耗,最好设置不工作时STM32G0工作在待机或者关机模式,需要唤醒时通过仍在运行的RTC生成闹钟(alarm)事件唤醒。

      • 待机模式下,开启RTC并对SRAM供电以保持SRAM内容不丢失,最大工作电流约为4μA。该模式下可以在初始化时将程序导入到SRAM中运行,不用在被唤醒后重新从flash中读取程序进行一系列初始化,但是使用的相关外设如PLL,定时器,UART等还需要重新配置寄存器以设定其工作状态。

      • 关机模式下,开启RTC并由外部32.768kHz晶振驱动,最大工作电流约0.835μA。由于所有内容已丢失,需要重新执行启动过程,类似于单片机复位后重新运行程序。

  • 高速警报灯电源设计 按功率以及运行时间可分为两个部分,高功率-短时间运行区域和低功率-长时间运行区域。高功率短时间运行区域主要包括射频以及LED驱动部分,前者需要稳定的电源电压;低功率长时间运行区域主要是主控芯片,该部分允许变化的电源轨。

    整板供电主要用锂电池供电,以松下的2250mAh的18650型号电池为例,其基本的放电曲线如下。以整个电池的90%容量即放电2025mAh为放电上限,此时电池电压为2.5V。主控STM32芯片的供电电压最低可以到2.0V,此时仍然可以用电池供电。 discharge

    但是对于射频和LED驱动,如果以3.3V为驱动电压,仍然采用松下 2250mAh 18650供电。假定该部分需要电流200mA,对于该电池来说放电速率约为0.1C1C表示电池一小时完全放电时电流强度,以0.2C放电曲线为参考,放出90%容量后电池仍然具有约3.4V电压,不存在电压跌落到3.3V一下的情况。

    综合以上分析,两部分供电可以采用以下方式:

    • 主控部分采用低甚至超低工作电流的LDO,LDO的压降一般在几百mV以内,输出电流越低则压降越低。LDO直接连接到电池两端,使电池全程对主控供电。

    • 射频和LED驱动部分采用一路开关电源输出,开关电源输入通过一个MOS管接到电池两端。不工作时将MOS管关闭,需要工作时则开启MOS管。开关电源可以采用Buck拓扑,只需进行降压。如果出现了电池电压低于该部分要求的工作电压的情况,则该开关电源就需要加入Boost升压,或采用Buck-Boost以维持输出电压在全电池电压变化范围内的稳定。

  • PicoDAQ警报
    已经在佛祖岭那边将PicoDAQ警报安装完成,本次仅安装一个,保留原有警报的同时在另一侧入口安装了一个警报,中控上点击加热后警报亮起,运行状态如下。
    Alarm


本文章使用limfx的vscode插件快速发布