NXP LPC 状态可配置的定时器(SCT)
状态可配置的定时器(SCT)
前言
正在申请专利的状态可配置的定时器(SCT),是一个复杂的,但易于配置的定时器,它提供前所未有的灵活性,使工程师们在未来证明他们的设计,并减少进入市场的时间。
在其最简单的配置中,它为设计师提供了更多的定时器或多个高分辨率的脉冲宽度调制器(PWMs),其分辨率<1ns。它也允许设计师配置先进的定时操作,包括那些需要复杂的电机控制功能的操作,同时满足严格的开发时间表。
SCT是一个定时器捕获单元,拥有高度灵活的、事件驱动的状态机。它给计时领域带来了两个熟悉的概念——事件和状态,从而使多种定时、计数、输出调制、输入捕捉的操作成为可能。它是一个拥有8个输入,16个输出的定时器系统,拥有16个匹配/捕获寄存器,16个事件和32个状态。它可以配置为两个16位定时器或一个32位定时器。
通过将定时器阵列同状态机相结合,SCT可以实现复杂的功能,包括生成事件控制的PWM波形,ADC同步和无需CPU干预的死区时间控制。它在广泛的应用中简化了用户定义的波形和控制信号的设计,包括电源转换,照明,电机控制和音频应用。
SCT在恩智浦Cortex-M4的LPC4300,以及Cortex-M3的LPC1800系列上可用。
概述
SCT 提供更多的定时器,高分辨率的PWM,并能够产生复杂波形
SCT 是一个复杂的,但易于配置的定时器
SCT 是一个可编程的和灵活的外设
SCT 使工程师在未来证明他们的设计
SCT 通过消除设计的复杂性,从而降低进入市场时间
SCT 关闭负载的CPU带宽;一旦编程完毕,SCT 可以独立于CPU核心运行
核心特色
状态可配置的定时器(SCT)是一个定时器/捕捉单元,再加上一个高度灵活的,事件驱动状态机模块。它包含:
8个输入
16个输出
16个匹配/捕获寄存器
16个事件
32个状态
操作
例子
下面的应用实例是很简单的,仅用于解释SCT的功能。更加复杂的情况,如应用于电机控制,数字电源,太阳能,照明市场等仍适用于SCT。请参阅题为“交流感应电机控制,对称PWM信号发生器”的应用笔记。
易于使用
1. 设计状态机
2. 设置寄存器/定时器
LPC_SCT->CTRL |= (1UL << 7);
LPC_SCT->TIM = 0x4534;
LPC_SCT->ENB &= 0x8001;
3. 让SCT开始工作!
有一个例子库可用。
恩智浦的优势
SCT - 抖动功能
50MHz的系统频率意味着总能得到20ns的PWM分辨率
较高的频率可以得到更高的分辨率
或经过平均周期数→抖动
在16个周期的时间内抖动
在此期间内,有可能滞后或提前的匹配事件:1,2,3,4,5,6,7,8提前的或推迟的匹配条件
定义的匹配条件 X 可以调整为:X±n/16→非整数!
假设分辨率为20ns,平均PWM分辨率变为20*1/16=1.25ns
例如:10KHZ的PWM→相当于16位精度
产品
SCT在恩智浦Cortex-M4的LPC4300,以及Cortex-M3的LPC1800系列上可用。
LPC1800系列
LPC4300系列
工具
SCT 的工具
恩智浦的SCT 工具支持LPC1800“ - ”版本(首次修订)。发布后,同一工具将可用于LPC1800 A 版本和LPC4300 A 版本。
SCT 工具(用于LPC18xx的状态可配置的定时器)使用Windows V2.0(2011年07月8日)
LPCXpresso
Red State 的 SCT 状态机发生器包含在LPCXpresso V4.1中,于2011年9月28日发布。
LPCXpresso下载
NXP LPC 状态可配置的定时器(SCT)的更多相关文章
- Windows 10 如何使用「系统还原」功能备份系统状态和配置
https://www.sysgeek.cn/windows-10-system-restore/ 在 Windows 10 系统中,「系统还原」功能旨在创建配置快照,并在检测到系统更改时将其工作状态 ...
- SpringCloud系列三:SpringSecurity 安全访问(配置安全验证、服务消费端处理、无状态 Session 配置、定义公共安全配置程序类)
1.概念:SpringSecurity 安全访问 2.具体内容 所有的 Rest 服务最终都是暴露在公网上的,也就是说如果你的 Rest 服务属于一些你自己公司的私人业务,这样的结果会直接 导致你信息 ...
- DHCPv6,IPv6的有状态自动配置
DHCPv6,IPv6的有状态自动配置 DHCPv6的工作原理与DHCPv4极其相似,但有一个明显的差别,那就是支持IPV6新增的编址方案.DHCP提供了一些自动配置没有的选项.在自动配置中,根本没有 ...
- Nginx 高级配置-状态页配置
Nginx 高级配置-状态页配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 建议将nginx的监控状态的值通过zabbix或者Open-Falcon之类的监控工具来监控状态,并 ...
- 使用spring配置quartz定时器
quartz是石英钟的意思,所以用这个名字来做定时器的框架名称再适合不过.一年前做项目的时候有用过这个框架,当时没有整理,今天刚好新的商城系统也需要定时器.想要达到的效果是:每天的固定时间,比如凌晨3 ...
- ADC配置成定时器触发的启发
百度文库:https://wenku.baidu.com/view/99d39413f78a6529647d5344.html STM32关于使用定时器触发ADC转换的解决办法和详细说明 本人在使用S ...
- Haproxy状态监控配置教程
https://www.cnblogs.com/tianciliangen/p/7985881.html 方法一:在defaults段增加如下配置: stats refresh 30s #统计页面自动 ...
- WEB缓存系统之varnish代理以及健康状态检测配置
前文我们聊了下varnish的缓存项修剪配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12666406.html:今天我来说一下varnish作为代理服务 ...
- Cortex-M3(NXP LPC 1788) 启动代码
startup_LPC177x_8x.s启动代码分析. 参考资料: Cortex-M3 (NXP LPC1788)之启动代码分析 ARM启动过程(Cortex-M3 NXP LPC1768为例) ;/ ...
随机推荐
- mormot THttpApiServer使用例子
mormot THttpApiServer使用例子 THttpApiServer封装了WINDOWS的HTTPS.SYS. unit Unit1; interface uses Winapi.Wind ...
- [linux] 线程和wait命令,sleep命令
在linux脚本编程中使用多线程编程,其中wait命令可以实现shell的多线程同步控制. 1. 启动后台子任务 在执行命令后加&操作符,表示将命令放在子shell中异步执行.可以达到多线程效 ...
- 安装数据库出现错误vc_red.msi找不到
用虚拟光驱安装数据的时候可能会出现,找不到vc_red.msi的问题,通过加载的虚拟光驱目录设置,可能 仍然后问题,比如程序停止运行. 解决方法是:解压iso文件,用解压后的文件安装.然后在解压文件夹 ...
- angualrjs
$rootScope是angularJS中最接近全局作用域的对象.在$rootScope上附加太多业务逻辑并不是好主意,这与污染JavaScript的全局作用域是一样的. $scope对象就是一个普通 ...
- Ubuntu设置squid代理
1.安装squid sudo apt-get install squid 2,修改配置,增加需要使用代理的ip vi命令修改: vi /etc/squid/squid.conf 图形界面编辑 sudo ...
- linux sudo命令
Sudo”是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务,比如:运行一些像mount,ha ...
- Setting SVN Repository Using TortoiseSVN + Dropbox in 5 Minutes
SVN is a very common version control system in software development. However configuring SVN server ...
- 响应式Web设计(Responsive Web design)的理念
页面的设计与开发应当根据用户行为以及设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相应的响应和调整.具体的实践方式由多方面组成,包括弹性网格和布局.图片.CSS media query的使用等.无论用 ...
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆一样 ...
- ubuntu下使用nginx部署Laravel
问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htacce ...