创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

rt-thread 驱动篇(八)hwtimer 重载算法优化

出出 来源:出出 作者:出出 2022-06-23 10:10 次阅读

硬件定时器

区别于 rt-thread 内核实现的两种定时器,这种定时器依赖芯片内置的定时器外设,依靠稳定高速的晶振实现精确定时,可以实现 rt_timer 无法达到的定时精度。硬件定时器最重要的两个参数是定时器时钟和定时器重载值。

定时器时钟越高,定时器精度越高;重载值越大,实现的定时时间越长。

在定时器时钟一定的前提下,重载值就决定了定时器定时时间的准确性。

两种计算重载值算法

hwtimer.c 文件 `timeout_calc` 函数实现

   float overflow;
   float timeout;
   rt_uint32_t counter;
   int i, index = 0;
   float tv_sec;
   float devi_min = 1;
   float devi;
   /* changed to second */
   overflow = timer->maxcnt/(float)timer->freq;
   tv_sec = tv->sec + tv->usec/(float)1000000;

   if (tv_sec < (1/(float)timer->freq))
   {
       /* little timeout */
       i = 0;
       timeout = 1/(float)timer->freq;
   }
   else
   {
       for (i = 1; i > 0; i ++)
       {
           timeout = tv_sec/i;

           if (timeout <= overflow)
           {
               counter = timeout*timer->freq;
               devi = tv_sec - (counter/(float)timer->freq)*i;
               /* Minimum calculation error */
               if (devi > devi_min)
               {
                   i = index;
                   timeout = tv_sec/i;
                   break;
               }
               else if (devi == 0)
               {
                   break;
               }
               else if (devi < devi_min)
               {
                   devi_min = devi;
                   index = i;
               }
           }
       }
   }

   timer->cycles = i;
   timer->reload = i;
   timer->period_sec = timeout;
   counter = timeout*timer->freq;

   return counter;

第二种实现,

   rt_uint32_t counter, reload;
   rt_uint32_t timer_cnt;
   int i, index = 0, n0, n1;
   float tv_sec;
   rt_uint32_t dev, dev_min;
   /* changed to second */
   tv_sec = tv->sec + tv->usec/(float)1000000.0;
   timer_cnt = tv_sec * timer->freq;

   if (timer_cnt == 0) {
       timer_cnt = 1;
   }
   if (timer_cnt < timer->maxcnt) {
       timer->cycles = timer->reload = 1;
       timer->period_sec = tv_sec;
       counter = timer_cnt;
       return counter;
   }
   if (timer_cnt % timer->maxcnt == 0) {
       timer->cycles = timer->reload = timer_cnt / timer->maxcnt;
       timer->period_sec = tv_sec;
       counter = timer_cnt;
       return counter;
   }
   n0 = timer_cnt / timer->maxcnt + 1;
   n1 = timer_cnt / 2;
   dev_min = n0;
   for (i = n0; i < n1; i++) {
       reload = (rt_uint32_t)(timer_cnt / i);
       dev = timer_cnt - reload * i;
       if (dev == 0) {
           // end
           index = i;
           break;
       } else if (dev < dev_min) {
           dev_min = dev;
           index = i;
       }
   }
   timer->cycles = timer->reload = index;
   timer->period_sec = index / timer->freq;
   counter = timer_cnt / index;
   return counter;

测试环境

定时器频率设定 1M。定时器最大重载值 65535。

系统:win10

IDE:Qt Creator

最大定时范围

两种算法,最主要的差别在于前一种用 float 运算,因为 float 可以表达的值范围更大,定时时间可以更长。

而在 1M 定时器时钟前提下,用 32 位无符号整型 timer_cnt,最大可以处理时间仅有 4294.967295s。

精度 PK

image.png

这里不支持嵌入 html 表格,只好贴图了

分别选各个量级的时间,用两种算法计算,第二种算法可以把误差降低到0,但是也暴露出一些问题,在某些时间,例如 3.230970s、12.230970s、14.230970s... 误差是很小,定时器重载值也很小,这是我们不愿意看到的。

第一种算法,在计算大于 1000 的数时,误差也随之增大。比如 1000s 误差为 3.236ms;4293.0s 误差为 64.080ms。

运算速度 PK

测试方法:抽取某几个时间值,循环 1M 次运算,计量 1M 次运算总耗时时间。

time float uint32
3.317s 98.736ms 3000+s
7.537s 178.545ms 21.921ms
7.000537s 168.549ms 175.530ms
999.999s 17407.468ms 30866.978ms
999.000999s 17458.347ms 337.047ms

从抽取的几个值测试结果看,第一种算法耗时比较稳定,第二种算法对不同值的运算时间差异很大。特别的,3.317s 这个值用第二种算法,1M 次运算总耗时时间可能达到 3000s。

从上一小节的精度比对可以看出,第二种算法对精度要求太高了。下面降低第二种算法的精度,达到和第一种一样的精度再重复一次。修改代码如下

       if (dev == 0) {
           // end
           index = i;
           break;
       } else if (dev > dev_min) {
           break;
       } else if (dev < dev_min) {
           dev_min = dev;
           index = i;
       }

再次测试结果:

time float uint32
3.317s 104.720ms 20.945ms
3.000317s 91.728ms 21.941ms
7.537s 179.519ms 21.941ms
7.000537s 168.549ms 20.944ms
999.999s 17480.734ms 27.927ms
999.000999s 17366.539ms 20.944ms

我们可以看出来,在相同精度条件下,第二种算法的运算速度比第一种快很多,而且耗时反而变得更集中。

其实,对结束条件再次修正,将 `dev == 0` 的严苛误差条件换成 `dev <= 1` 也不会出现上面 3000+s 慢速。

       if (dev <= 1) {
           // end
           index = i;
           break;
       } else if (dev > dev_min) {
           break;
       } else if (dev < dev_min) {
           dev_min = dev;
           index = i;
       }

超过 4295s 的超长定时

需要修改 `rt_uint64_t timer_cnt` 的定义为 64 位无符号整型 `rt_uint64_t timer_cnt` 。

又因为定时时间很长很长,对误差要求可以降低一些,对第二种算法做的第二处修改:

       if (dev <= 500) {
           // end
           index = i;
           break;
       } else if (dev < dev_min) {
           dev_min = dev;
           index = i;
       }
image.png

超长时间,第二种算法的表现也很优秀。第三组数据第一种方法竟然出错了,没算出结果。

下面是 10k 次(没有进行 1W 次是因为有些时间太长了)运算时间统计

time float uint32
9999.537s 1741.341ms 5.010ms
19999.999s 3481.173ms 27.926ms
1999999.999s - 2616.001ms

返璞归真

以上是对两种算法从不同角度进行的比对测验。看似用 float 可以计算更大的定时数,但是,测试结果并不那么理想。使用 64位整型数计算,可能得到比用 float 更精确的结果。

使用 32 位无符号整型数运算虽然最大定时时间只有 4294.9s 。但是我们也看到了,第一种方法有可能出现计算误差的,当误差超过 1ms 我们用 rt_thread_mdelay 或者 rt-thread 的软/硬定时器,可能结果比硬件定时器更精确了,反而失去了精确定时器的意义。在这个前提下,使用 32 位无符号整型数已经足够了。


算法及测试源码见: https://gitee.com/thewon/rt_thread_repo/tree/master/user

审核编辑:汤梓红

  • 算法
    +关注

    关注

    22

    文章

    3467

    浏览量

    83609
  • 定时器
    +关注

    关注

    22

    文章

    2038

    浏览量

    104007
  • RT-Thread
    +关注

    关注

    27

    文章

    413

    浏览量

    33889
收藏 人收藏

    评论

    相关推荐

    RT-Thread是如何从内部Flash读取WAV音频播放呢

    开始实验前,开发板 SDK 请选择 1.0.7 之后的版本 最终的工程可以在这里下载 wav_player_rom.zip 使能相关组件 需要使用到...
    发表于 07-01 11:53 56次 阅读

    RT-Thread Studio IDE使用的基础介绍

    rt-thread studio 安装 首先需要确保已经安装 rt-thread studio 在工具栏找到 SDK 管理器,点击后在弹出窗口,Board_Supp...
    发表于 07-01 11:41 72次 阅读

    RT-Thread记录(十一、UART设备—源码解析)

    一文带你深入理解 RT-Thread I/O 设备模型 — UART 设备源码分析。
    的头像 矜辰所致 发表于 07-01 11:24 93次 阅读
    RT-Thread记录(十一、UART设备—源码解析)

    基于Art-Pi的NTP同步时钟+DHT11获取温度的设计实现

    开发环境:RT-Thread Studio 开发板:Art-Pi OS版本:4.0.3 硬件 显示屏:金逸晨GMG12864-03A 温湿度:DHT1...
    发表于 07-01 11:24 116次 阅读

    网络TCP通信程序卡在while死循环中怎么去修复呢

    问题发生位置:drv_eth.c文件rt_stm32_eth_tx函数中(254行) 修复方法:stm32f4xx_hal_eth.h头文件631行Lock成员变量定义为...
    发表于 07-01 11:12 144次 阅读

    浅析在Windows系统中将RT-Thread移植到Zynq的步骤

    一、功能简介 在window系统中将rtthread移植到zynq 在sdk中实现无bsp的zynq工程调试 在zynq中演示rtthread的shell功能 二、配...
    发表于 07-01 10:48 282次 阅读

    世界模型在实体机器人上能发挥多大的作用?

    Dreamer 世界模型是谷歌、多伦多大学等机构在 2021 年提出的一种。如下图 2 所示,Dre....
    的头像 新机器视觉 发表于 07-01 10:48 25次 阅读

    RT Smart上RIL通信组件及应用的移植和开发工作简述

    1、Linux RIL的概述与驱动 在移动网络通信中,尤其是智能手机,平板等智能设备中,RIL是一个非常重要的组件,RIL使各...
    发表于 07-01 10:29 600次 阅读

    Linux Ril中使用共享内存交互相关资料分享

    1、移植RIL到ART-Smart之共享内存简析 本次移植的linux ril中,rild作为一个client与modem通过AT命令交互,同时也作为...
    发表于 07-01 10:17 638次 阅读

    是否可以使用simulator来测一下STM32L496的功能呢

    事情还是得从RTTHREAD 官方的文档Keil 模拟器 STM32F103 上手指南 说起,用了很久的KEIL,相信大家很少有人用...
    发表于 06-30 17:12 3254次 阅读

    大佬带你理解RT-Thread内核并上手实践

    内核是操作系统最重要的部分,学习RT-Thread也是从最基本的内核开始。   RT-Thread内....
    发表于 06-30 17:10 88次 阅读

    如何对Numaker-IoT-M487开发板上的CRYPTO模块功能进行测试呢

    硬件介绍 NuMaker-IoT-M487 开发板以 NuMicro M487 系列微控制器为主控核心,主频 192MHz,512KB FLASH,160K...
    发表于 06-30 17:01 3175次 阅读

    关于Rt-Thread系统自带的Stack问题?

    MCU启动文件(startup.s)里定义的 Stack 是 1KB Stack_Size EQU 0x00000400 Rt-Thread 也定义了一个 Stack 请...
    发表于 06-30 16:52 5724次 阅读

    如何整定卡尔曼滤波的Q、R这两个参数

    Kalman滤波算法常常被用来计算直立车模倾角和转动角速度。算法利用陀螺仪给出的转速度量和加速度传感....
    的头像 硬件攻城狮 发表于 06-30 14:25 135次 阅读

    通过Uboot TFTP启动rt-smart内核

    介绍Windows下通过 Uboot  TFTP 方式下载和启动rt-smart 内核
    的头像 RT-thread 发表于 06-30 12:34 1057次 阅读
    通过Uboot TFTP启动rt-smart内核

    RT-Thread记录(十、全面认识 I/O 设备模型)

    学完 RT-Thread 内核,从本文开始熟悉了解 RT-Thread I/O 设备管理相关知识。
    的头像 矜辰所致 发表于 06-30 10:38 1187次 阅读
    RT-Thread记录(十、全面认识 I/O 设备模型)

    基于RT-Thread的麻雀一号无人值守门禁系统

    采用麻雀一号为主控设备来实现,摄像头数据,人体红外感应或门开关来判断是否有人闯入机房。通过Node-....
    的头像 极速紫韵 发表于 06-30 06:45 1297次 阅读
    基于RT-Thread的麻雀一号无人值守门禁系统

    基于RT-Thread设备运行数据分析预警系统

    本项目采用到硬件方案是:通过ART-Pi STM32H750主板上的I2C引脚和UART以及一个普通....
    的头像 极速紫韵 发表于 06-30 06:22 1266次 阅读
    基于RT-Thread设备运行数据分析预警系统

    基于RT-Thread和AB32VG1开发板实现家庭安全检测功能

    基于RT-Thread和中蓝讯科开发板,实现按键触发语音报警和NodeRed收集报警信息并上报腾讯云....
    的头像 极速紫韵 发表于 06-30 00:36 1129次 阅读
    基于RT-Thread和AB32VG1开发板实现家庭安全检测功能

    Free自由协议质押挖矿系统技术概述 AES和DES算法的主要区别

    DES是对称性加密里常见的一种,是一种使用密钥加密的块算法。那么AES和DES算法的区别在哪里,这两....
    的头像 sp520110 发表于 06-29 14:04 204次 阅读

    Kinoma Create的特定应用操作系统

      中断服务程序在中断发生时执行,就像在典型的嵌入式系统中一样。系统中的 ISR 或者是用于 PWM....
    的头像 星星科技指导员 发表于 06-29 11:29 80次 阅读
    Kinoma Create的特定应用操作系统

    STM32L051上使用RT-Thread (五、完结篇)

    应用篇-在STM32L051上使用RT-Thread 第五篇,也是本次应用的完结篇。
    的头像 矜辰所致 发表于 06-29 10:34 1464次 阅读
    STM32L051上使用RT-Thread (五、完结篇)

    选择嵌入式设计软件时要考虑的前五个特性

      选择正确的嵌入式软件开发工具和正确的工具供应商可能是一项挑战。确保您选择的软件支持您将使用的设备....
    的头像 星星科技指导员 发表于 06-29 10:12 85次 阅读

    one-sm PHP国密算法库

    ./oschina_soft/sm.zip
    发表于 06-29 10:03 3次 阅读
    one-sm PHP国密算法库

    滴答处理程序不是调度程序

      从技术上讲,可以编写一个没有超时和延迟函数(如 OSTimeDly())的多任务应用程序。然而,....
    的头像 星星科技指导员 发表于 06-29 09:19 190次 阅读
    滴答处理程序不是调度程序

    EasyTask PHP常驻内存定时任务框架

    ./oschina_soft/gitee-EasyTask.zip
    发表于 06-29 09:19 12次 阅读
    EasyTask PHP常驻内存定时任务框架

    建立系统滴答率所涉及的基本权衡

      为了在开销和分辨率之间取得适当的平衡,您需要考虑硬件平台的功能和应用程序的时序需求。以 µC/O....
    的头像 星星科技指导员 发表于 06-29 09:15 194次 阅读

    嵌入式设备电源管理的操作系统策略

      设备集成商必须采取全面的节能方法,从能够缩减功耗的硬件和基础设施开始,并采用能够控制设备整体功耗....
    的头像 星星科技指导员 发表于 06-28 14:22 223次 阅读

    STM32L051上使用RT-Thread (四、串口通讯)

    应用篇-在STM32L051上使用RT-Thread 第四篇,巧妙的使用信号量处理串口通讯。
    的头像 矜辰所致 发表于 06-28 10:59 1499次 阅读
    STM32L051上使用RT-Thread (四、串口通讯)

    STM32L051上使用RT-Threa (三、I2C通讯)

    应用篇-在STM32L051上使用RT-Thread 第三篇,学习RT-Thread Studio如....
    的头像 矜辰所致 发表于 06-27 10:32 1431次 阅读
    STM32L051上使用RT-Threa (三、I2C通讯)

    2022鸿蒙开发者大赛正式开启

    2022年6月24日,鸿蒙开发者大赛正式开启报名,其下设Apps UP应用创新赛道自2020年以来已....
    的头像 话说科技 发表于 06-27 09:14 466次 阅读
    2022鸿蒙开发者大赛正式开启

    STM32L051上使用RT-Th (二、CubeMX配置)

    应用篇-在STM32L051上使用RT-Thread 第二篇,使用STM32CubeMX 进行对应外....
    的头像 矜辰所致 发表于 06-26 14:02 2175次 阅读
    STM32L051上使用RT-Th (二、CubeMX配置)

    RT-Thread自动初始化详解

    我们知道,在写裸机程序时,当我们完成硬件初始化后,就需要在主函数中进行调用。当我们使用RT-Thre....
    的头像 嵌入式大杂烩 发表于 06-25 21:38 3252次 阅读
    RT-Thread自动初始化详解

    STM32L051上使用RT-Thread (一、新建项目)

    学完了 RT-Thread 内核基础,来使用 RT-Thread 实现一个小应用。 硬件平台:ST....
    的头像 矜辰所致 发表于 06-25 20:45 3440次 阅读
    STM32L051上使用RT-Thread (一、新建项目)

    面对AI人才培养产学研鸿沟,昇腾AI如何做厚产业人才黑土地?

    在“新基建”全面推进,5G与AI技术掀起新一轮技术革命浪潮的今天,爆发的数据、算法、算力加速了许多产....
    的头像 脑极体 发表于 06-25 20:36 877次 阅读

    基于ESP32C3运行RT-THREAD

    在ESP32上面运行 RT-THREAD.
    的头像 Thomas的小火车 发表于 06-25 07:58 3113次 阅读
    基于ESP32C3运行RT-THREAD

    动力电池HPPC功率性能测试

    刘莎等对自制17Ah高功率锂离子动力电池的脉冲功率特性进行了研究[1],采用国内某城市简化工况和HP....
    的头像 锂电联盟会长 发表于 06-24 14:26 154次 阅读

    什么是PWM PWM控制小车速度方法

    第一种方法用单片机的定时器模拟出PWM。假如你用定时器延时100ms,在50ms之前某一个引脚为低电....
    的头像 要长高 发表于 06-24 11:53 586次 阅读
    什么是PWM PWM控制小车速度方法

    RT-Thread记录(九、RTT中断处理与阶段小结)

    RT-Thread 内核部分最后一个点 中断管理,顺带着对前面所学知识做个小结。
    的头像 矜辰所致 发表于 06-24 10:25 3392次 阅读
    RT-Thread记录(九、RTT中断处理与阶段小结)

    Linux系统下的安装与使用

    然而,开源并不意味着能用、好用。其实,AlphaFold2 软件系统的部署难度极大,并且对硬件的要求....
    的头像 OpenCV学堂 发表于 06-24 10:03 559次 阅读

    BLE MESH蓝牙组网蓝牙定时器方案的介绍

    蓝牙定时器是在按键式定时器的基础上升级而来的,增加了蓝牙连接功能,15米范围内可以通过微信小程序对开....
    的头像 潘霞 发表于 06-23 16:27 217次 阅读

    开源软件-LZ4无损压缩算法

    ./oschina_soft/lz4.zip
    发表于 06-23 15:21 12次 阅读
    开源软件-LZ4无损压缩算法

    NUC980开发板应用 基于NK-980IoT的国学唐诗学习机

    基于NK-980IoT的国学唐诗学习机 1 项目背景 最近一直在陪小孩学习国学精髓,比如唐诗、宋词这....
    的头像 RTThread物联网操作系统 发表于 06-23 14:55 1256次 阅读

    基于RT-Thread+RA6M4的智能安防系统详解

      无论是在家里还是在公司,安防都尤为的重要,与其亡羊补牢,更重要的是防患于未然。安全是目的,防范是....
    的头像 物联网技术分享 发表于 06-23 14:34 161次 阅读
    基于RT-Thread+RA6M4的智能安防系统详解

    rt-thread 优化系列(五)lwip 裁剪

    很久之前就开始整理下面的优化项列表了,但是有很多问题研究不深,一时不敢冒失推出。
    的头像 出出 发表于 06-23 10:21 2401次 阅读

    RT-Thread记录(八、理解RT-Thread内存管理)

    记得最初学习 RT-Thread ,对于内存管理我也是简单看看然后一笔带过,当时觉得用不上,在我做的....
    的头像 矜辰所致 发表于 06-23 10:11 268次 阅读
    RT-Thread记录(八、理解RT-Thread内存管理)

    rt-thread 优化系列(四)信号对 ipc 的影响

    信号 signal,并不是线程间同步的信号量 semaphore。后者是线程间同步机制的一种,而前者....
    的头像 出出 发表于 06-23 09:51 1478次 阅读

    rt-thread优化系列(三)软定时器的定时漂移问题分析

    所谓软定时器,是由一个线程运行维护的定时器列表。由线程调用定时器回调函数。
    的头像 出出 发表于 06-23 09:35 1487次 阅读

    GD32 RISC-V系列 BSP框架制作与移植

      手把手教你使用RT-Thread制作GD32 RISC-V系列BSP 熟悉RT-Thread的朋....
    的头像 嵌入式大杂烩 发表于 06-22 19:44 2081次 阅读
    GD32 RISC-V系列 BSP框架制作与移植

    RT-Thread记录(七、IPC机制之邮箱、消息队列)

    讲完了线程同步的机制,我们要开始线程通讯的学习,
    的头像 矜辰所致 发表于 06-22 10:06 251次 阅读
    RT-Thread记录(七、IPC机制之邮箱、消息队列)

    rt-thread 驱动篇(三) serialX 压力测试

    本周笔者花了好多天的时间,计划从多个方面对串口驱动做个比较。下面就从以下几个角度做个对比测试。
    的头像 出出 发表于 06-22 09:22 1363次 阅读

    rt-thread 驱动篇(二) serialX 理论实现

    在前一篇文章里,大致提出了我的串口驱动框架理论。里面做了一些对串口驱动特性的幻想。也在 NUC970....
    的头像 出出 发表于 06-22 09:03 1471次 阅读
    rt-thread 驱动篇(二) serialX 理论实现

    GD32407V-START开发板的BSP框架制作与移植

    熟悉RT-Thread的朋友都知道,RT-Thread提供了许多BSP,但不是所有的板子都能找到相应....
    的头像 嵌入式大杂烩 发表于 06-22 08:54 1484次 阅读
    GD32407V-START开发板的BSP框架制作与移植

    SCL-添加接通延迟定时器

    对于指令地址,请选择“Run” 变量。在“指令”(Instruction) 任务卡中,展开“定时器....
    的头像 机器人及PLC自动化应用 发表于 06-21 10:46 192次 阅读

    RT-Thread记录(六、IPC机制之信号量互斥量事件集)

    上文说到 RT-Thread 对临界区的处理方式有多种,其中已经分析了关闭调度器和屏蔽中断的方式, ....
    的头像 矜辰所致 发表于 06-21 10:40 2733次 阅读
    RT-Thread记录(六、IPC机制之信号量互斥量事件集)

    rt-thread 驱动篇(一) serialX 框架理论

    串口驱动三种工作模式:轮询、中断、DMA。
    的头像 出出 发表于 06-21 10:37 2197次 阅读
    rt-thread 驱动篇(一) serialX 框架理论

    rt-thread 优化系列(二) 之 同步和消息关中断分析

    书接前文,上篇优化聊的是关中断操作,在很多地方过保护,导致关中断时间太久,可能引起其它中断不能及时响....
    的头像 出出 发表于 06-21 09:47 1931次 阅读

    开源算法体系构建高效繁荣的AI生态

    上海市经济和信息化委员会人工智能发展处副处长孙跃,ICPA智算联盟理事长、商汤科技联合创始人、集团副....
    的头像 商汤科技SenseTime 发表于 06-21 09:17 128次 阅读

    RE46C163 RE46C163是CMOS电离烟雾探测器I.C. w /互连,定时器模式,报警记忆

    信息 RE46C163器件是一种低功耗,CMOS电离型烟雾探测器IC。由于外部元件很少,该电路将为电离型烟雾探测器提供所有必需的功能。内部振荡器每隔1.67秒为烟雾探测电路提供10.5 ms的电源,以使待机电流保持在最低水平。在待机状态下,每40秒检查一次电池电量不足的情况。外部引脚可以选择连续音或NFPA时间喇叭模式。互连引脚允许连接多个探测器,因此当一个单元发出警报时,所有单元都会发出声音。电荷转储功能将在退出本地时快速释放互连线报警。互连输入也经过数字滤波。内部1分钟定时器允许单个按钮,按下测试用于降低灵敏度模式。报警记忆功能允许用户确定设备是否先前已进入本地报警条件。利用低功耗CMOS技术,RE46C163器件设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 针可选喇叭图案 报警记忆 灵敏度控制定时器:1分钟 >所有引脚上的> 1500V ESD保护(HBM) 离子检测器输入的保护输出 ±0.75 pA检测输入电流 内部反向电池保护 低静态电流消耗( I / O滤波器和充电转储 内部电池低电量检测 电源电池低电量测试 最多可互连66个探测器 符合RoHS标准,无铅封装 电路图、引脚图和封装图...
    发表于 04-18 23:15 122次 阅读

    RE46C180 RE46C180是CMOS可编程离子烟雾探测器ASIC,具有互连,定时器模式,报警存储器

    信息 RE46C180是下一代低功耗可编程CMOS电离型烟雾探测器IC。该电路具有极少的外部元件,可为电离式烟雾探测器提供所有必需的功能。片上振荡器每10秒钟为烟雾探测电路提供5ms的电源,以使待机电流保持在最低水平。检查电池是否过低条件每80秒进行一次,待机时每320秒进行一次电离室测试。时间喇叭模式支持NFPA 72紧急疏散信号。互连引脚允许连接多个探测器,这样当一个单元发出警报时,所有单元都会响起。当退出本地警报时,电荷转储功能将快速释放互连线。互连输入也经过数字滤波。内部9分钟或80秒定时器可用于降低灵敏度模式。本地报警记忆功能允许用户确定设备是否先前已进入本地报警状态。利用低功耗CMOS技术RE46C180设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 6-12V操作 低静态电流消耗< / p> +/- 0.75pA检测​​输入电流 离子检测器输入的保护输出 可编程待机灵敏度< / p> 可编程嘘声灵敏度 可编程滞后 可编程电压表用于按键测试 电池设置点不足 本地闹钟内存 自动闹钟定位 喇叭同步 9分钟或80秒Hush Ti mer 时间或连续号角模式 最多可互连40个探测器 IO Filter and Charge Dump < / p> 10年...
    发表于 04-18 23:15 109次 阅读

    RE46C162 RE46C162是一种CMOS电离烟雾探测器。 w /互连,定时器模式,报警记忆

    信息 RE46C162器件是一种低功耗CMOS电离型烟雾探测器IC。由于外部元件很少,该电路将为电离型烟雾探测器提供所有必需的功能。内部振荡器每隔1.67秒为烟雾探测电路提供10.5 ms的电源,以使待机电流保持在最低水平。在待机状态下,每40秒检查一次电池电量不足的情况。外部引脚可以选择连续音或NFPA时间喇叭模式。互连引脚允许连接多个探测器,因此当一个单元发出警报时,所有单元都会发出声音。电荷转储功能将在退出本地时快速释放互连线报警。互连输入也经过数字滤波。内部8分钟定时器允许单个按钮,按下测试用于降低灵敏度模式。报警记忆功能允许用户确定设备是否先前已输入本地报警条件。利用低功耗CMOS技术,RE46C162器件设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 针可选喇叭图案 报警记忆 灵敏度控制定时器:8分钟 >所有引脚上的> 1500V ESD保护(HBM) 离子检测器输入的保护输出 ±0.75 pA检测输入电流 内部反向电池保护 低静态电流消耗( I / O滤波器和充电转储 内部电池低电量检测 电源电池低电量测试 最多可互连66个探测器 符合RoHS标准,无铅封装 电路图、引脚图和封装图...
    发表于 04-18 23:15 150次 阅读

    RE46C152 RE46C152是一款电离式烟雾探测器IC,具有时间或连续音,互连,定时器,低电池

    信息 RE46C152是一款低功耗CMOS电离型烟雾探测器IC。由于外部元件很少,该电路将为电离型烟雾探测器提供所有必需的功能。内部振荡器每1.66秒向烟雾探测电路供电10.5mS,以使待机电流保持最小。在待机状态下,每40秒检查一次电池电量不足的情况。音调输入允许选择时间模式或2/3占空比连续音调。时间喇叭模式支持NFPA 72紧急疏散信号。互连引脚允许连接多个探测器,这样当一个单元发出警报时,所有单元都会响起。内部8分钟计时器允许使用单独的按钮来降低灵敏度模式。用于测试和定时器模式的单按钮操作也是可能的。尽管该设备设计用于利用电离室的烟雾检测,但它可以用于各种安全应用。 RE46C152设计用于烟雾探测器,符合美国保险商实验室规范UL217和UL268 >所有引脚上的> 1500V ESD保护(HBM) 离子检测器输入的保护输出 +/- 0.75pA检测​​输入电流 内部反向电池保护 低静态电流消耗( 16L PDIP 内部电池低电量检测 电源低电量测试< / p> 最多可互连40个探测器 引入可选喇叭模式 8分钟定时器进行灵敏度控制 符合RoHS标准的无铅包装。 电路图、引脚图和封装图...
    发表于 04-18 23:15 86次 阅读

    RE46C144 RE46C144是一款带连续音,定时器的光电烟雾探测器IC

    信息 RE46C144是低功耗CMOS光电式烟雾探测器IC。该电路具有最少的外部元件,可为光电式烟雾探测器提供所有必需的功能。 RE46C144设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 内部电源重置 低静态电流消耗 提供16L PDIP或16L N SOIC 所有引脚上的ESD保护 最多可连接40个探测器 10分钟灵敏度控制定时器 连续音喇叭模式 内部电池低电量和室内测试 与Allegro A5358兼容 提供标准包装或符合RoHS标准的无铅包装。 电路图、引脚图和封装图...
    发表于 04-18 23:15 212次 阅读

    RE46C127 RE46C127是一款带有连续,互连,定时器的电离烟雾探测器IC

    信息 RE46C127是低功耗CMOS电离型烟雾探测器IC。由于外部元件很少,该电路将为电离型烟雾探测器提供所有必需的功能。内部振荡器每1.66秒向烟雾探测电路供电10.5mS,以使待机电流保持最小。在待机状态下,每40秒检查一次电池电量不足的情况。 2/3占空比连续喇叭模式用于报警条件。互连引脚允许连接多个探测器,这样当一个单元发出警报时,所有单元都会响起。内部8分钟计时器允许使用单独的按钮来降低灵敏度模式。尽管该装置设计用于利用电离室进行烟雾检测,但它可用于各种安全应用。 RE46C127设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 离子检测器输入的保护输出 +/- 0.75pA检测​​输入电流 内部反向电池保护 低静态电流消耗( 提供16L PDIP或16L N SOIC 所有引脚上的ESD保护 ;内部电池低电量检测 最多可互连40个探测器 8分钟灵敏度控制定时器 兼容使用Allegro A5348 提供标准包装或符合RoHS标准的无铅包装。 电路图、引脚图和封装图...
    发表于 04-18 23:15 153次 阅读

    RE46C140 RE46C140是一款具有时间,定时器的光电烟雾探测器IC

    信息 RE46C140是低功耗CMOS光电式烟雾探测器IC。该电路具有最少的外部元件,可为光电式烟雾探测器提供所有必需的功能。 RE46C140设计用于符合美国保险商实验室规范UL217和UL268的烟雾探测器。 内部电源重置 低静态电流消耗 提供16L PDIP或16L N SOIC 所有引脚上的ESD保护 最多可连接40个探测器 10分钟灵敏度控制定时器 时间号角模式 内部电池低电量和室内测试 与Allegro A5366兼容 提供标准包装或符合RoHS标准的无铅包装。 电路图、引脚图和封装图...
    发表于 04-18 23:14 139次 阅读

    RE46C122 RE46C122是一款带时间,互连,定时器,低电池的电离烟雾探测器IC

    信息 RE46C122是低功耗CMOS电离型烟雾探测器IC。由于外部元件很少,该电路将为电离型烟雾探测器提供所有必需的功能。内部振荡器每1.66秒向烟雾探测电路供电10.5mS,以使待机电流保持最小。在待机状态下,每40秒检查一次电池电量不足的情况。颞角图案支持NFPA 72紧急疏散信号。互连引脚允许连接多个探测器,这样当一个单元发出警报时,所有单元都会响起。内部10分钟计时器允许使用单独的按钮来降低灵敏度模式。尽管该装置设计用于利用电离室进行烟雾检测,但它可用于各种安全应用。 RE46C122设计用于符合Und的烟雾探测器 >所有引脚上的> 1500V ESD保护(HBM) 离子检测器输入的保护输出 +/- 0.75pA检测​​输入电流 内部反向电池保护 低静态电流消耗( 16L PDIP或16L N SOIC 内部电池低电量检测 加电低电量测试 最多可互连40个探测器 10分钟定时器进行灵敏度控制 兼容使用Allegro A5367 提供标准包装或符合RoHS标准的无铅包装。 电路图、引脚图和封装图...
    发表于 04-18 23:13 242次 阅读

    CAT1832 电压监控器,看门狗定时器,手动复位,3.3 V,具有高电平有效和低电平复位

    信息 CAT1832电压监控器可以暂停并重新启动“挂起”或“停顿”的微处理器,在电源故障后重启微处理器,并去除手动/推送 - 按钮微处理器复位开关该器件是Maxim / Dallas Semiconductor DS1832监控器的替代品。精密基准电压源和比较器电路监控3.3 V系统电源电压V 。在上电期间或当电源超出可选容差限制时,RESET和都将变为活动状态。在电源电压升至RESET阈值电压以上后,复位信号保持有效至少250 ms,从而使电源和系统处理器稳定。跳闸点容差输入TOL选择CAT1832 3.3 V电源的跳闸电平容差为10%或20%。每个器件都具有推挽式高电平有效复位输出。 CAT1832还具有推挽式低电平有效复位输出。去抖动手动复位输入激活复位输出,并在释放后保持有效状态至少250 ms。还包括看门狗定时器重置因软件或硬件故障而停止的微处理器。可选择三个看门狗超时周期:150 ms,600 ms和1.2 sec。如果在看门狗超时周期结束前,输入未被选通为低电平,则复位信号将至少激活250 ms。 可选复位电压容差 - CAT1232LP for 5.0 V电源 - 用于3.3 V电源的CAT1832 可选看门狗周期:150 ms,600 ms或1.2 sec 两个复位输出 - 高电平有效推挽式复位输出 - 低电...
    发表于 04-18 22:19 238次 阅读

    MC1455B 定时器电路

    信息 MC1455单片定时器电路是一种高度稳定的控制器,能够产生精确的时间延迟或振荡。如果需要,提供附加端子用于触发或重置。在延时模式下,时间由一个外部电阻和电容精确控制。为了稳定地作为振荡器工作,可以通过两个外部电阻和一个电容精确控制自由运行频率和占空比。该电路可以在下降波形上触发和复位,输出结构可以提供或吸收高达200 mA的电流或驱动TTL电路。 直接替换NE555定时器 从微秒到时间的定时小时 在稳定模式和单稳态模式下运行 可调节占空比 高电流输出可以输出或吸收200 mA 输出可以驱动TTL 温度稳定性为0.005%/°C 常开或常关输出 无铅封装可用 电路图、引脚图和封装图...
    发表于 04-18 21:57 1625次 阅读

    NCV1455 定时器电路

    单片定时器电路是一种高度稳定的控制器,能够产生精确的时间延迟或振荡。如果需要,提供附加端子用于触发或重置。在延时模式下,时间由一个外部电阻和电容精确控制。为了稳定地作为振荡器工作,可以通过两个外部电阻和一个电容精确控制自由运行频率和占空比。电路可以在下降波形上触发和复位,输出结构可以提供或吸收高达200 mA的电流或驱动TTL电路。 特性 NE555的直接替换计时器 从微秒到小时的时间 在Astable和Monostable模式下操作 可调节占空比 高电流输出可以输出或吸收200 mA 输出可以驱动TTL 温度稳定性0.005%/°C 正常开启或正常关闭输出 无铅封装可用 电路图、引脚图和封装图...
    发表于 04-18 21:28 253次 阅读
    NCV1455 定时器电路

    LMC555 用于生成准确延时和振荡的低功耗 555 定时器

    信息描述 The LMC555 device is a CMOS version of the industry standard 555 series general-purpose timers. In addition to the standard package (SOIC, VSSSOP, and PDIP) the LMC555 is also available in a chip-sized package (8-bump DSBGA) using TI’s DSBGA package technology. The LMC555 offers the same capability of generating accurate time delays and frequencies as the LM555 but with much lower power dissipation and supply current spikes. When operated as a one-shot, the time delay is precisely controlled by a single external resistor and capacitor. In the astable mode the oscillation frequency and duty cycle are accurately set by two external resistors and one capacitor. The use of TI’s LMCMOS process extends both the frequency range and the low supply capability.特性Industry’s Fastest Astable Frequency of 3 MHz Available in Industry's Smallest 8-Bump DSBGA Package (1.43mm × 1.41mm) Less Than 1 mW Typical P...
    发表于 04-18 20:33 1249次 阅读

    TLC555-DIE DIE LinCMOS 定时器

    信息描述 TLC555 是一个使用 TI LinCMOS 工艺制造的单片定时电路。 定时器与 CMOS,TTL,和 MOS 逻辑电路完全兼容并且运行在高达 2MHz 的频率上。 由于它的高阻抗特性,这个器件使用的定时电容器比那些 NE555 所使用的电容器要小。 因此,可实现更加准确的时间延迟和振荡。 在整个电源电压范围内功耗较低。与 NE555 类似,TLC555 有一个约等于电源电压三分之一的触发电平以及一个约等于电源电压三分之二的阀值电平。 可使用控制电压端子 (CONT) 来改变这些电平。 当触发输入 (TRIG) 下降至低于触发电平的时候,触发器被设定并且输出变为高电平。 如果 TRIG 高于触发电平并且阀值输入 (THRES) 在阀值电平之上的话,触发器被复位并且输出为低电平。 复位输入 (RESET) 的优先级高于所有其它输入并且可被用来启动一个新的定时周期。 如果 RESET 为低电平,触发器被复位并且输出为低电平。 只要当输出为低电平,在放电端子 (DISCH) 和接地 (GND) 之间提供一个低阻抗路径。 所有未使用的输入应该被接至一个适当的逻辑电平来防止错误触发。当 CMOS 输出能够吸收超过 100mA 的电流并提供超过 10mA 电流时,...
    发表于 04-18 20:08 1048次 阅读

    LM555 单定时器

    信息LM555是一个高度稳定的控制器,能够产生精确定时脉冲。 如果是单稳态运行,延时将由一个外部电阻和一个电容进行控制。 如果是稳态运行,频率和占空比将由两个外部电阻和一个电容进行精确控制。 高电流驱动能力(200mA) 可调占空比 0.005%/°C的温度稳定性 计时范围从微秒到小时 关闭时间少于2微秒 精密计时 脉冲发生 延时发生 连续定时
    发表于 04-18 19:03 1231次 阅读

    MC1455 定时器电路

    信息 MC1455单片定时器电路是一种高度稳定的控制器,能够产生精确的时间延迟或振荡。如果需要,提供附加端子用于触发或重置。在延时模式下,时间由一个外部电阻和电容精确控制。为了稳定地作为振荡器工作,可以通过两个外部电阻和一个电容精确控制自由运行频率和占空比。该电路可以在下降波形上触发和复位,输出结构可以提供或吸收高达200 mA的电流或驱动TTL电路。 直接替换NE555定时器 从微秒到时间的定时小时 在稳定模式和单稳态模式下运行 可调节占空比 高电流输出可以输出或吸收200 mA 输出可以驱动TTL 温度稳定性为0.005%/°C 常开或常关输出 无铅封装可用 电路图、引脚图和封装图...
    发表于 04-18 18:54 806次 阅读

    MC14541B 可编程定时器振荡器

    1B可编程定时器由一个16级二进制计数器,一个用于外部电容和两个电阻的集成振荡器,一个自动上电复位电路和输出控制逻辑组成。 通过接通电源初始化定时,然后启用上电复位并在指定的V DD 范围内初始化计数器。电源已打开时,可以施加外部复位脉冲。在释放初始复位命令时,振荡器将以外部RC网络确定的频率振荡。 16级计数器将振荡器频率(f ocs 除以n th 级频率为f osc / 2 n 。 特性 可用输出2 8 ,2 10 ,2 13 或2 16 正边沿时钟转换的增量 内置低功耗RC振荡器(在整个温度范围内精度为+/- 2%,+ / - 20%电源和+ / - 在...
    发表于 04-18 18:54 657次 阅读
    MC14541B 可编程定时器振荡器

    MC14536B 可编程定时器

    6B可编程定时器是一个24级二进制纹波计数器,可通过二进制代码选择16级。提供了片内RC振荡器或外部时钟的规定。包括一个包含脉冲型输出的片上单稳态电路。通过选择适当的计数器级和适当的输入时钟频率,可以实现各种定时。 特性 24个触发器阶段 - 将从2 0 计数到2 24 最后16个阶段可通过四位选择代码选择 8-Bypass输入允许绕过前8个阶段 设置和重置输入 时钟抑制和振荡器抑制输入 片上RC振荡器规定 片上单稳态输出规定 时钟调理电路允许长时间上升和下降时间操作 测试模式允许快速测试序列 电源电压范围= 3.0 Vdc至18 Vdc 能够驱动两个低电平-power TTL Loads或One Low - 额定温度范围内的功率肖特基TTL负载 无铅封装可用 电路图、引脚图和封装图...
    发表于 04-18 18:54 391次 阅读
    MC14536B 可编程定时器

    LTC3246 具看门狗定时器的宽 VIN范围、降压-升压型充电泵

    和特点 2.7V 至 38V 工作范围 (42V 绝对最大值) IQ = 20μA (工作模式);1.5μA (停机模式) 具自动模式切换功能的多模式降压-升压型充电泵 (2:1、1:1、1:2) 12V 至 5V 转换效率 = 81% IOUT 高达 500mA VOUT:固定的 3.3V、5V 或可调 (2.5V 至 5V) 超低 EMI 辐射 专为符合 ISO 26262 诊断覆盖要求的系统而设计 过热、过压和短路保护 工作结温:150°C (最大值) 具外部定时控制功能的 POR / 看门狗控制器 耐热性能增强型 16 引脚 MSOP 封装 产品详情 LTC®3246 是一款具集成化看门狗定时器的开关电容器降压-升压型 DC/DC 转换器。该器件可采用 2.7V 至 38V 输入产生一个稳定的输出 (3.3V、5V 或可调)。开关电容器分数转换用于在很宽的输入电压范围内保持调节作用。内部电路可自动选择转换比,从而在输入电压和负载条件变化的情况下实现效率的优化。不需要使用电感器。LTC3246 的复位时间和看门狗超时无需外部组件即可设定,或采用外部电容器进行调节。一种窗口模式看门狗功能用于高可靠性应用。复位输入可用于提供额外的电源监视或配置为一个按钮复位。低工作电流 (无负载时为 20μA,在停机模式中为 1.5μA) 和低外部...
    发表于 02-22 13:49 220次 阅读
    LTC3246 具看门狗定时器的宽 VIN范围、降压-升压型充电泵

    LTC3256 具看门狗定时器的宽 VIN 范围、双输出、350mA 降压型充电泵

    和特点 输入电压范围:5.5V 至 38V 单独使能的 5V 和 3.3V 固定输出 5V 输出:100mA (最大值) 3.3V LDO 输出:250mA (最大值) 具自动模式切换功能的多模式降压型充电泵 (2:1、1:1) 低静态电流 当两个输出均在调节时为 20μA (无负载) 在停机模式为 0.5μA 专为符合 ISO26262 标准的系统进行设计 1.1V 基准输出用于系统诊断 具可调定时的上电复位和看门狗控制器 在每个输出上提供过流故障保护 过热保护 150°C 最大工作结温 耐热性能增强型 16 引脚 MSOP 封装 产品详情 LTC®3256 是一款宽输入范围开关电容器降压型 DC/DC 转换器,其可产生两个稳定的输出:通过直接连接至充电泵输出产生 5V 输出,和通过一个低压差 (LDO) 线性后置稳压器产生 3.3V 输出。该器件可提供高达 350mA 的总输出电流。在 12V VIN 和两个输出端上均承受最大负载的情况下,功率耗散比双路输出 LDO 稳压器解决方案减少了 2W 以上。LTC3256 通过在尽可能宽的工作范围内使充电泵运行于 2:1 模式以最大限度地提高效率,并由于 VIN 和负载情况而自动地按需切换至 1:1 模式。受控的输入电流和开关转换速率尽量地降低了传导和辐射 EMI。一个集成的...
    发表于 02-22 13:48 316次 阅读
    LTC3256 具看门狗定时器的宽 VIN 范围、双输出、350mA 降压型充电泵

    LTC6995-1 TimerBlox:长时间定时器、低频振荡器

    和特点 周期范围:1ms 至 9.5 小时利用上电或复位输入实现定时复位利用 1~3 个电阻器进行配置最大频率误差 <1.5%可编程输出极性2.25V 至 5.5V 单电源操作55μA 至 80μA 电源电流 (2ms 至 9.5 小时时钟周期)500μs 启动时间CMOS 输出驱动器可供应 / 吸收 20mA 电流-55°C 至 125°C 工作温度范围可提供扁平 (高度仅 1mm) SOT-23 (ThinSOTTM) 封装和 2mm x 3mm DFN 封装 产品详情 LTC®6995 是一款硅振荡器,具有一个 1.024ms 至 9.54 小时 (29.1μHz 至 977Hz) 的可编程周期范围,专供长持续时间定时过程之用。LTC6995 隶属于 TimerBlox® 通用型硅定时器件系列。单个电阻器 RSET 负责设置 LTC6995 的内部主振荡器频率。输出时钟周期由该主振荡器和一个内部分频器 NDIV 来决定 (可编程至从 1 至 221 范围内的 8 个设定值)。当振荡时,LTC6995 产生一个 50% 占空比的方波输出。该器件提供了一种复位功能,用以停止主振荡器并清零内部分频器。取消复位将启动一个完整的输出时钟周期,这适用于可编程上电复位和看门狗定时器应用。LTC6995 具有两种复位功能版本。对于 LTC6995-1 复位输入为高电平有效,而对于 LTC...
    发表于 02-22 12:23 317次 阅读
    LTC6995-1 TimerBlox:长时间定时器、低频振荡器