当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]发送器:该模块发送锁定状态至接收端,等待响应,以使用新状态更新闪存。在整个系统未使用时,它会保持在“关断”状态。当用户按下发送器上的开关时,整个系统的电源就会打

发送器:

该模块发送锁定状态至接收端,等待响应,以使用新状态更新闪存。

在整个系统未使用时,它会保持在“关断”状态。当用户按下发送器上的开关时,整个系统的电源就会打开。系统初始化后,PSoC 4会读取自己的闪存行,获得当前的锁定状态,然后用该锁定状态更新该段LCD。接下来2秒钟后,CPU会配置看门狗定时器,唤醒系统,然后再进入深度睡眠低功耗模式。

2秒钟的深度睡眠时间可用来为最终用户提供两种特性:

1. 滤除用户误按按钮操作。

如果用户在系统唤醒前释放开关(2秒钟),系统会在不改变当前状态的情况下返回低功耗模式。这种延迟可用作一种特性,允许用户在不触发状态的情况下检查当前状态。为此,用户可以短暂地按下开关,在屏幕上出现之前状态后将其释放。

赛普拉斯提供经预先测试、生产就绪的易用型应用编程接口(API)来简化对PSoC的编程。但在调用API时,需要多个时钟周期在协议栈中存储当前状态,随后执行API,最后再退出API。如果要降低功耗,每一个时钟转换都得考虑。要减少时钟转换数量,需要直接写入寄存器,而不是调用API来完成。此外,赛普拉斯还可为您提供简单易使的宏命令,以完成寄存器写入。

SPI_TX_FIFO_WR_REG = WRITE | RX_ADDR_P0;

SPI_TX_FIFO_WR_REG = 0x12;

SPI_TX_FIFO_WR_REG = 0x34;

SPI_TX_FIFO_WR_REG = 0x56;

SPI_TX_FIFO_WR_REG = 0x78;

SPI_TX_FIFO_WR_REG = 0x9A;

WFI;

SPI_TX_FIFO_WR_REG = ACTIVATE;

SPI_TX_FIFO_WR_REG = 0x73;

WFI;

在该代码中,没有使用随PSoC创建器提供的“SPI_SpiUartWriteTxData”,直接更新SCB FIFO发送数据。在加载具有所需值的FIFO后,调用“WFI”装配函数使PSoC 4进入睡眠模式。当SPI发送完FIFO中存储的全部数据后,它可生成一个中断来唤醒PSoC 4,并重复这个过程。

与LCD显示屏相似,PSoC创建器提供用于简化编程的API。要优化系统实现低功耗,这些API可采用所需的寄存器写入代替。使用这些寄存器写入可减少系统周期数,从而可降低功耗:

CY_SET_REG32(CYREG_LCD_DATA02, 0x10000000);

CY_SET_REG32(CYREG_LCD_DATA03, 0x10000011);

电池使用寿命:

因为我们知道Q = CV…(i)

这里C = 2200 x 10-6 F x 4 = 8800 x 10-6,V = 3 V

Q = 8800 x 10-6 x 3 = 26.4 mC

发送器可从全部充满电的大容量电容器发送回显信息50次。系统在电压达到1.65V时开始工作。因此系统使用的电荷量为:

Qused = 8800 x 10-6 x (3 – 1.65) = 11.88 mC…(ii)

Qper ping = Qused/发送回显信息的次数= 11.88 mC / 50 = 236 μC …(iii)

标准钮扣电池的额定容量为200mAHr。

由于我们知道Q = I x t

因此Qbatt = 200 x 10-3 x 1Hr = 200 x 10-3 x 3600s = 720 C

由于存在各种物理限制,因此我们永远也无法完全使用电池的能量。假如我们能够使用电池所存储总能量的50%。

那么Qbatt-available = 720 x 0.5 = 360 C

电池能够支持的发送回显信息次数为 = Qbatt-available / Qper ping = 360 / (236 x 10-6) = 1.525 x 106

假如每天发送20次回显信息,电池使用寿命就为= 1.525 x 106 / 20

= 76.2 x 103天

= 76.2 x 103 / 365年

= 208年(不可能)

整个系统的实际有效电池使用时间由电池的存储寿命决定,而非系统本身的功耗。


0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在工业物联网设备部署中,Modbus通信故障是导致系统停机的首要原因之一。据统计,超过60%的现场问题源于通信配置错误或数据解析异常。本文从嵌入式系统开发视角,系统阐述Modbus通信调试的方法论,结合实际案例解析如何高...

关键字: 嵌入式系统 Modbus通信

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

人工智能(AI)和机器学习(ML)是使系统能够从数据中学习、进行推理并随着时间的推移提高性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但在微控制器(MCU)等资源受限的器件上部署这些技术的需求也在不断增...

关键字: 嵌入式系统 人工智能 机器学习

Zephyr开源项目由Linux基金会维护,是一个针对资源受限的嵌入式设备优化的小型、可缩放、多体系结构实时操作系统(RTOS)。近年来,Zephyr RTOS在嵌入式开发中的采用度逐步增加,支持的开发板和传感器不断增加...

关键字: 嵌入式系统 软件开发 实时操作系统 Zephyr项目

在资源受限的嵌入式系统中,代码执行效率和内存占用始终是开发者需要权衡的核心问题。内联函数(inline functions)和宏(macros)作为两种常见的代码展开技术,在性能、可维护性和安全性方面表现出显著差异。本文...

关键字: 内联函数 嵌入式系统

在电子电路中,电解电容的纹波电流承受能力直接影响其使用寿命和电路稳定性。准确测试纹波电流不仅能验证电容性能是否达标,也是电路设计可靠性验证的关键环节。以下从测试原理、设备准备、操作步骤到数据解读,全面介绍电解电容纹波电流...

关键字: 电解电容 纹波电流 电路设计

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在嵌入式系统与驱动开发中,内存映射I/O(Memory-Mapped I/O, MMIO)是一种将硬件寄存器映射到处理器地址空间的技术,允许开发者通过指针直接读写寄存器,实现高效、低延迟的硬件控制。本文通过C语言实战案例...

关键字: 内存映射 I/O操作 嵌入式系统
关闭