esp32开发与应用(如何解决SoC冷启动的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

实际生产中,或者是交付前,对板子做冷启动测试还是非常有必要的。所谓的冷启动测试,其实就是对系统做一个反复上电的测试,它和热启动是对应的。热启动,则是反复对reset信号进行置位,这一点和压力测试不同。

1、冷启动就是反复上下电

反复上电可以帮忙暴露很多的问题,比如硬件的问题,比如软件启动的问题,还比如数据保存的问题。因为冷启动是突然断电、重新上电的过程,在这过程中,数据有没有好好保存,系统启动会不会出现异常,都容易在这个阶段出现。

2、利用继电器来处理

既然是反复上电,那么比较合适的方法,就是用继电器来处理。继电器的一侧是控制电压,这部分可以通过esp32,或者是其他mcu来解决。而继电器的另外一侧,通常就是开关通断。吸合的时候,通电,反之就是断电。

选择继电器的时候,看下是5v、12v还是24v。说到5v,其实3.3v也可以触发。

3、常开和常闭

两者其实是一回事。就是说,用户自己希望启动的时候,是normal open的状态,还是normal close的状态。实际生产中,一般是normal open为主,也就是no状态。

4、继电器接在适配器的正极

所谓的继电器控制,其实就是把继电器放在电源适配器的正极一侧。如果是no,那么默认是不通电的,反之就是上电操作。当然,这个继电器是dc接口,还是type c接口,这个就不重要了。实验的时候,我们一般不自己做适配器,外采第三方的电源适配器,割开来,接上继电器就可以了。这样原来的板子不需要做任何修改就可以测试。

5、测试mcu的选择

原则上,尽量选择简单的mcu,比如stm32之类。如果对成本不是那么care,可以直接选择esp32也行,这部分问题不大。选择完之后,就可以用ai直接编写代码,这部分和之前一篇文章内容类似,

复制代码
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

// Modify the GPIO pin according to your hardware connection
#define BLINK_GPIO GPIO_NUM_27

void app_main(void)
{
    // Configure the GPIO as output mode
    gpio_reset_pin(BLINK_GPIO);
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);

    // Initial level
    uint32_t level = 0;

    while (1) {
        gpio_set_level(BLINK_GPIO, level);
        vTaskDelay(3000 / portTICK_PERIOD_MS);   // Delay 3000ms
        level = !level;                          // Toggle level

        gpio_set_level(BLINK_GPIO, level);
        vTaskDelay(30000 / portTICK_PERIOD_MS);   // Delay 30000ms
        level = !level;
    }
}

6、后续上位机的改进

如果只是简单的电源开关,用esp32是可以的,问题不大。但是测试要想做的好,还有一部分,就是上位机的check要做好。比如说,esp32控制继电器之后,是不是soc真的起来了,linux真的跑起来了,里面的app也正常运行了。既然正常运行的话,上位机是不是可以读到soc的图像,发出来的图像是不是对的,这些检测最好有一个上位机跟踪检测一下,这就最好了。

相关推荐
充哥单片机设计2 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
EatFan3 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-2293 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx4 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
Doraemomo4 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull
老当益壮梁奶奶5 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件
西城微科方案开发6 小时前
基于SIC8F0535芯片的红外额温枪开发方案
单片机·嵌入式硬件
LCG元6 小时前
STM32F103 NTC 热敏电阻测温实战:分压网络设计、Steinhart-Hart 标定与 ADC 采样优化实测
stm32·单片机·嵌入式硬件
M78佐菲6 小时前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习