Cs75胎压监测复位开关在哪里:如何在小型嵌入式设备中编程出厂复位开关

关于Cs75胎压监测复位开关在哪里的问题,在how to factory reset switch中经常遇到, 我正在构建一个小型嵌入式设备。我正在使用一个复位开关,当按下该开关超过 5 秒钟时,整个设备应重置并清除所有数据,并进入出厂重置状态。我知道发生此事件时要清除什么。我想知道的是如何引发此事件?我的意思是,当按下开关时,如何设计系统以帮助知道已经过去了 5 秒钟,现在必须进行重置。我需要高级设计吗?

我正在构建一个小型嵌入式设备。我正在使用一个复位开关,当按下该开关超过 5 秒钟时,整个设备应重置并清除所有数据,并进入出厂重置状态。我知道发生此事件时要清除什么。我想知道的是如何引发此事件?我的意思是,当按下开关时,如何设计系统以帮助知道已经过去了 5 秒钟,现在必须进行重置。我需要高级设计吗?

0

取决于设备。但很少有粗略的想法:

设备手册可能会说“按住开关”(switch down)每秒产生的中断次数。如果你有这个值,你可以很容易地计算出 5 秒。

如果没有,你也需要使用计时器。当你得到“switch down”的第一个中断并计数到 5 秒时,启动计时器。

请注意,您还应该监视“switch up”,即“release of switch”。我希望也会有一个中断。(可能有不同的状态值)。所以当你看到这个中断时,你应该打破上面的循环 (你不应该做复位)。

希望这有帮助。

0

Interrupt-driven means low level,close to the hardware.An interrupt-driven solution,with for example a bare metal microcontroller,would look like this:

与读取任何其他开关时一样,对开关n进行采样次数,并滤除信号反弹(和潜在的 EMI)。

启动硬件计时器。通常片上计时器太快,无法计数整个 5 秒,即使您将其设置为尽可能慢。因此,您需要使用预缩放值设置计时器,选择该值以使整个计时器周期等于已知的时间单位(例如 10 毫秒)。

定时器溢出时,触发一个中断。在中断内部,检查开关是否仍然被按下,然后增加一个计数器。当计数器达到给定值时,执行重置代码。例如,如果你每 10 毫秒就有一个定时器溢出,你的计数器应该计数到 5000ms / 10ms = 500。

如果在时间过去之前释放开关,则重置计数器并停止计时器中断。

如何重置系统是高度特定于系统的。您应该将系统置于安全的系统中,然后通过使用存储在 NVM 中其他位置的一些默认出厂设置覆盖存储设置的 NVM 来覆盖当前设置。完成此操作后,您应该强制处理器自行重置并使用新设置重新启动。

这意味着您必须有一个带有电子可擦除 NVM 的系统。根据数据的大小,该 NVM 可以是微控制器中的片上数据闪存,也可以是一些外部存储器电路。

0

检测 5S 或 30S 超时可以使用中断上的 GPIO 来完成。

如果使用 rtos,.interrupt 将从睡眠中唤醒一个线程并禁用它自己,

线程所做的就是计算开关被按下的时间(你定期扫描开关)。

如果按下开关所需的时间在 eeprom 中设置全局变量 / 设置,这将触发出厂重置功能

否则再次启用中断并使线程进入睡眠状态

此外,使用去反弹电路以避免出现问题。

还定义你的工厂重置是什么意思?

一般有两种,两种情况下我都会帮助使用 eeprom

恢复所有配置(低成本,更容易)

在这种情况下,您对 eeprom 进行分区,具有工作配置和工厂配置。您将工厂配置复制到工作分区并执行软件重置

恢复完整的固件(昂贵,需要更多的测试)这是更棘手的,但可以在引导加载程序的帮助下完成,允许从 eeprom / 或 sd 卡闪烁。

在这种情况下,二进制固件 blob 也将与工厂配置一起存储在安全分区中,并将用于闪存控制器闪存和配置。

所有这些都取决于大小 / 内存和成本。可以以更多方式设计,我只是列出最简单的例子。

0

I created some products with a combined switch to. I did so by using a capacitator to initiate a reset pulse on the reset pin of the device (current and levels limit by some resistors and/or diodes). At start-up I monitor the state of the input pin connected to the switch. I simply wait until this pin goes height with a time-out of 5 seconds. In case of a time-out I reset my configuration to default. enter image description here

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(610)
Cma在哪里报名:会议在哪里 (thesessions)
上一篇
C语言int转string:string+int在C中执行什么
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(2条)