001-13583_PWMDB8.pdf

8-Bit 带死区发生器 PWM 数据表
PWMDB8 V 2.5
001-66404 Rev. **
8-Bit PWM Dead Band Generator
Copyright © 2002-2011 Cypress Semiconductor Corporation. All Rights Reserved.
PSoC® 模块
资源
数字
API 内存 (字节)
模拟 CT
模拟 SC
闪存
RAM
引脚 (每个外
部 I/O)
CY8C29/27/24/22/21xxx、CY8C23x33、CYWUSB6953、CY8CLED02/04/08/16、CY8CLED0xD、CY8CLED0xG、CY8CNP102、
CY8CTST110、CY8CTMG110、CY8CTST120、CY8CTMG120、CY8CTMA120、CY8C28x45、CY8CTMA30xx、CY8C28x45、
CY8CPLC20、CY8CLED16P01、 CY8C28xxx
8-bit
2
0
0
35
0
1
16-bit
3
0
0
44
0
1
8-bit
3
0
0
74
0
1
16-bit
3
0
0
97
0
1
CY8C26/25xxx
如需一个或多个使用此用户模块的完全配置的功能性示例工程,请转到
www.cypress.com/psocexampleprojects.
特性与概述
„
„
„
„
„
„
„
带一个 8-bit 死区发生器的 8-bit 通用脉冲宽度调制器 (PWM) 使用两个 PSoC 模块
相位 1 和相位 2 负遮盖输出跟踪 PWM 生成信号的频率
可编程占空比
可编程死时间
死区非同步停止输入将相位 1 和相位 2 输出置为低电平
计数器时钟频率高达 48 MHz
在 PWM 生成信号的上升沿触发或者基于计数器终端计数的中断选项
8-bit PWMDB 用户模块是组合了一个 8-bit 死区发生器的脉冲宽度调制器。 脉冲宽度调制器给死区发生器
提供一个可编程周期和脉冲宽度输入信号。 死区发生器用和输入信号相同频率的可编程停滞时间输出两个
负覆盖信号。 置位死区非同步停止输入后,它会将相位 1 和相位 2 输出信号置为低电平。 可以从多个源
中选择时钟以及使能信号。 可以将相位 1 和相位 2 输出信号路由至外部引脚端口或者全局输出总线,以
供其他用户内部使用。 可以对中断进行编程,使其在脉冲宽度调制器输出的上升沿和下降沿上有效触发。
Cypress Semiconductor Corporation
Document Number: 001-66404 Rev. **
•
198 Champion Court
•
San Jose, CA 95134-1709
•
408-943-2600
Revised January 5, 2011
[+] Feedback
8-Bit PWM Dead Band Generator
Figure 1. PWMDB 框图,数据路径宽度 n = 8
功能说明
PWMDB 用户模块采用两个数字 PSoC 模块。 第一个模块 PWM8 实现可对周期和脉冲宽度编程的脉冲宽度调
制器。 脉冲宽度调制输出信号载入到第二个 PSoC 模块 DB8。 DB8 实现带有可编程死时间的死区发生器。
相位 1 和相位 2 这两个输出信号提供 PWMDB8 输出。
控制寄存器启动并停止 PWMDB 的 PWM 和 DB8 组件。 停止时写入周期寄存器会导致将新的周期寄存器值复
制到计数器寄存器中。 停止时写入死时间寄存器会导致将新的死时间寄存器值载入到死时间计数器寄存器
中。 PWMDB 停止时,PWM 输出和 DB8 的相位 1 和相位 2 输出均置于低电平。
高电平有效使能信号关断 PWMDB。 置于低电平时,PWM 和 DB8 PSoC 模块实际上被禁用,因而不可操作。
PWM 输出保持为当前状态,因而阻止 DB8 修改其输出。 不修改当前寄存器的内容,通过置位使能信号可以
继续进行操作。
PWMDB 的 8-bit PWM 和 DB8 组件使用相同的输入时钟。
脉冲宽度调制器
启动并启用时,PWM 在时钟的每个上升沿递减计数器寄存器。 在计数器寄存器终端计数之后的时钟沿上,
从周期寄存器中重新加载计数器寄存器。 随时可以将周期寄存器修改为新的周期值。 周期寄存器值为参
数,可以通过器件编辑器或在运行时使用 API 设置。
PWM 的输出周期实际为编入周期寄存器中的周期值加一。
Equation 1
生成波形的占空比取决于周期以及脉冲宽度值的关系。 脉冲宽度寄存器中的值可以确定在周期中的哪些时
候,输出会被设置为高电平。 在每个时钟上,PWM 将计数器和脉冲宽度寄存器中的值进行比较。 当计数值
“ 等于或小于 ” 周期值时,在下一个时钟中,输出将会被设置为高电平。 当出现自动重新载入周期时,
意味着计数器寄存器和脉冲宽度寄存器比较失败,在下一时钟中,输出将会被设置成低电平。
Document Number: 001-66404 Rev. **
Page 2 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
可以通过下列方式计算占空比。
Equation 2
如果周期与脉冲宽度数值相等,则输出将永远保持高电平。 脉冲宽度值的范围是:零至周期寄存器中载入
的周期值。 脉冲宽度寄存器值为参数,可以通过器件编辑器或在运行时使用 API 设置。
可以对中断进行编程,使其在 PWM 输出的上升沿或者计数器寄存器的终端计数条件下出现。 终端计数条
件位于输出信号下降沿之前的半个时钟周期。 可使用器件编辑器设置中断选项。 启用或禁用中断使用 API
在运行时完成。
死区发生器 (Dead Band Generator)
在输入信号 (PWM8 输出)的每个沿中,将重复下列操作:
上升沿
„ 在下一个时钟周期的上升沿中,将相位 2 信号复位成低电平。
„ 使用死时间寄存器值加载死时间计数器寄存器。
„ 在输入时钟的每个上升沿中,递减死时间计数器寄存器,直至其达到终端计数。 相位 1 会随后在时钟
的下一个下降沿中被设置成高电平。
下降沿
„ 在下一时钟周期的上升沿中,将相位 1 信号复位成低电平。
„ 使用死时间寄存器值加载死时间计数器寄存器。
„ 在输入时钟的每个上升沿中,递减死时间计数器寄存器,直至其达到终端计数。 相位 2 会随后在时钟
的下一个下降沿中被设置成高电平。
相位 1 和相位 2 跟踪从 PWM 中接收到的输入信号的频率。 相位 1 跟踪输入信号的占空比,再减去死时
间。 相位 2 跟踪输入信号的反相周期,再减去死时间。
输入信号的每个相位的实际死时间如下。
Equation 3
死时间寄存器必须加载为一个 8-bit 值。 此值的范围必须从零到 PWM 周期寄存器值减去二、PWM 脉冲宽
度寄存器值减去二,或 255 三者中的最小值。
死时间寄存器值为参数,可以通过器件编辑器或在运行时使用 API 设置。
使用 CY8C26/25xxx 系列时,置位异步死区非同步停止输入将相位 1 和相位 2 输出置为低电平。 此信号
只影响相位 1 和相位 2 信号的输出关断。
置为高电平时,死区非同步停止输入将相位 1 和相位 2 输出置为低电平。 此信号只影响相位 1 和相位 2
信号的输出关断,而并不影响死时间计数器寄存器。 当把死区非同步停止输入释放 (即设成低电平)时,
第一个适用的相位输出会产生小于死时间时钟计数而大于等于一的时序抖动。 此时,死区发生器会与脉冲
带宽调制输入同步。 即第一个输出脉冲会加长。
如果 PWMDB 输出必须与应用中生成的 PWM 输入同步,则当死区非同步停止输入解除激活时请采取以下步
骤 (当您发现死区非同步停止输入被置于高电平时,可采用同样的操作):
1.
2.
通过调用 Stop() API 函数停止 PWMDB。
调用 WriteDeadTime() API 函数重写死时间周期。
Document Number: 001-66404 Rev. **
Page 3 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
3.
检测到死区解除激活时,再启动 PWMDB 。
CY8C29/27/24/22/21xxx, CY8C23x33, CYWUSB6953, CY8CLED02/04/08/16, CY8CLED03D/04D, CY8CTST110,
CY8CTMG110, CY8CTST120, CY8CTMG120, CY8CTMA120, CY8C28x45, CY8CTMG300, CY8CTST300,
CY8CTMA300, CY8CTMA301, CY8CTMA301D, CY8C28x45, CY8CPLC20, CY8CLED16P01, CY8C28xxx 系列支持三
种非同步停止输入模式。 在所有模式中,非同步停止输入信号总是会以异步方式把输出变为逻辑值
“0”。 各种模式的区别在于死区处理如何重启。
同步重启模式: 当非同步停止输入被置为高电平时,内部状态为复位状态并且原始死区周期会重新
载入至计数器。 当非同步停止输入保持在高电平时,输入的 PWM 参照沿将被忽略。 当非同步停止输入
降为低电平时,下一个输入的 PWM 参照沿会重启死区处理。 使用占空比为 100% 的 PWM 时,则没有输
入的参照沿,并且当非同步停止输入降为低电平时不会重启死区处理。 请参阅第 5 页的同步重启非同
步停止输入模式示例图。
2. 异步重启模式: 当非同步停止输入被置为高电平时,内部状态不会受影响。 当非同步停止输入降为
低电平时,输出就会被还原,但最少禁用时间会在 0.5 至 1.5 时钟周期之间。 请参阅第 5 页的异步
重启非同步停止输入模式示例图。
1.
Document Number: 001-66404 Rev. **
Page 4 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
3.
禁用模式: 禁用模式无特定时序。 模块已被禁用,用户必须在固件中重新启用此功能,以继续处理。
Figure 2. 同步重启非同步停止输入模式
Figure 3. 异步重启非同步停止输入模式
Document Number: 001-66404 Rev. **
Page 5 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
时序
PWMDB 操作可以打开或关断,或由路由至 PWMDB 的外部引脚来计时,路由通过器件全局总线特性来完成。
全局总线频率限制为最大 12 MHz。
Figure 4. PWMDB 时序图
直流和交流电气特性
Table 1.
PWMDB 直流和交流电气特性
参数
FOutputmax
条件和注释
典型值
限值
单位
5.0V 和 48 MHz 输入时钟
--
241
MHz
3.3V 和 24 MHz 输入时钟
--
122
MHz
电气特性注释
1.
2.
若通过全局总线路由输出,则频率会限制在最大 12 MHz 以内。
工作电压为 3.3V 时 PSoC 模块的最快时钟为 24 MHz。
Document Number: 001-66404 Rev. **
Page 6 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
放置
8-bit PWMDB 使用两个数字 PSoC 模块。 每个模块都具有符号名称,在放置期间和放置后由器件编辑器显
示该名称。 API 使用用户分配的实例名称和模块名称来限定所有寄存器的名称,以便于通过 API 包含文件
直接访问 PWMDB 寄存器。 下表给出了各种宽度使用的模块名称。
Table 2.
映射 PSoC 模块的符号名称
PSoC 模块编码
8-bit PWMDB
1
PWM8
2
DB8
参数和资源
时钟
可以从多个源中选得 “ 时钟 ”(Clock) 参数。 这些源包括 48 MHz 振荡器 (工作电压只能为 5.0
V)、从 24 MHz 系统时钟向下分频的较低频率 (24V1 和 24V2)、其他 PSoC 模块以及通过全局输入
和输出路由的外部输入。 脉冲宽度调制器和死区发生器使用同一时钟源。 在模块中使用外部数字时
钟时,为达到最高精度并使用睡眠操作应关闭行输入同步。
使能
可以从多个源中选得 “ 使能 ”(Enable) 参数。 来自全局输入和输出的外部输入会自动同步到器件
的内部 24 MHz 振荡器。
周期
此参数可以设置 PWM 计数器的周期。 8-bit PWM 允许的数值范围为 0 至 255,16 位 PWM 允许的数
值范围为 0 至 216-1。 周期将载入周期寄存器。 PWM 的有效输出波形周期为周期计数加 1。 可使用
API 修改该值。
PulseWidth
此参数设置 PWM 输出的脉冲宽度。 允许值范围为零至周期值。 可使用 API 修改该值。
InterruptType
此参数设置中断触发类型。 可以设置中断,使其在 PWM 信号的上升沿或在 PWM 计数器寄存器的终端
计数上触发。 单独的寄存器可以独自启用中断。
PWMOutput
可以把此输出参数路由至四个全局输出总线之一。 如非必须,则建议避免路由此信号 (为其他输出
节省全局资源)。
DeadTime
此参数设置 DB8 输出的死时间计数。 8-bit 数值,范围为零至以下值中的最小值: “PWM 周期
”(PWM Period) 参数减 2、“PWM 脉冲宽度 ”(PWM Pulse Width) 参数值减 2 或 255。
相位 1
可以把此输出参数路由至四个全局输出总线之一。
相位 2
可以把此输出参数路由至四个全局输出总线之一。
Document Number: 001-66404 Rev. **
Page 7 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
死区非同步停止输入
可以从多个源中选得此参数。 当该参数被置为高电平时,相位 1 和相位 2 输出则被控制在低电平。
ClockSync
在 PSoC 器件中,数字模块可以在系统时钟以外提供时钟源。 数字时钟源甚至可以用连锁方式串联起
来。 这样就会引起与系统时钟相关的时滞。 这些时滞对于 CY8C29/27/24/22/21xxx 和
CY8CLED04/08/16 PSoC 器件系列具有更为关键的意义,因为其中存在各种数据路径优化,特别是那
些应用于系统总线的部分。 此参数可用于控制时钟时滞,确保读取和写入 PSoC 模块寄存器值时进行
正确操作。 此参数的正确数值应当由下表确定。
时钟同步值
使用说明
同步到 SysClk
此设置值用于任何由 24 MHz (SysClk) 经过 2 分频或更多分频所洐生出来的时钟源。 这样的
时钟源包括 VC1、VC2、VC3 (在 VC3 由 SysClk 驱动时)、32KHz 和以 SysClk 作为时钟源
的数字 PSoC 模块。 外部生成的时钟源也应使用此值来确保执行正确的同步操作。
Sync 到 SysClk*2
此设置可以适用于任何基于 48 MHz (SysClk*2) 的时钟,除非产生的频率为 48 MHz (换句
话说,所有分频器的乘积为 1 时)。
使用 SysClk Direct 需要 24 MHz (SysClk/1) 的时钟时使用。 此项选择并不真正执行同步,但提供了对系统时钟
本身的低时滞访问方式。 如果选择此项,则此选项将覆盖上述 “ 时钟 ”(Clock) 参数的设
置。 在所有分频器组合起来最终生成了 24 MHz 的输出时,一定要使用此项,而不使用 VC1、
VC2、VC3 或数字模块。
Unsynchronized
选中 48 MHz (SysClk*2) 输入时使用。
在需要未同步输入时使用。 一般来说,只有在中断生成是计数器的唯一应用时才推荐使用此
选项。 在睡眠期间依然保持活动状态的模块需要进行此设置。
死区非同步停止输入模式
此参数来自三个非同步停止输入模式之一,这三个非同步停止输入模式为同步重启非同步停止输入、
禁用非同步停止输入以及异步非同步停止输入。 有关详细信息,请参见 “ 死区发生器 ” 一节。
反转死区非同步停止输入
此参数可以让用户反转传输进来的死区非同步停止输入信号。
反转使能
此参数可以让用户反转传输进来的 “ 使能 ”(Enable) 信号。
中断产生控制 (Interrupt Generation Control)
当选中 PSoC Designer 中的 “ 启用中断产生控制 ” 复选框时,有两个附加参数将变为可用。 此复选框
位于 “ 项目 ” > “ 设置 ” > “ 芯片编辑器 ” 之下。 当拥有多个程序层而且多个用户模块在不同的程
序层共享中断时,中断生成控制是非常重要的:
„ 中断 API (Interrupt API)
„ IntDispatchMode
InterruptAPI
InterruptAPI 参数允许有条件地生成一个用户模块的中断处理程序和中断矢量表入口。 选择 “ 启用
”(Enable) 以生成中断处理程序和中断矢量表条目。 选择 “ 禁用 ”(Disable) 以取消生成中断处理
程序和中断矢量表条目。 在那些拥有多个程序层而且有多个程序层使用同一模块资源的项目中,特
Document Number: 001-66404 Rev. **
Page 8 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
别推荐要正确地选择是否要生成中断 API。 仅在必要时选择生成中断 API,这样可以避免生成中断调
度代码,从而减少开销。
IntDispatchMode
IntDispatchMode 参数用于指定如何处理中断请求 (当处于同一模块的多个用户模块在不同的程序层
共享该中断时)。 选择 “ActiveStatus” 会导致固件在为共享的中断请求提供服务之前测试哪一个
程序层正处于活动状态。 这项测试发生在每次请求共享中断的时候。 这样会导致延迟增加并且会产
生一个服务于共享中断请求的非确定性的程序,但并不要求任何 RAM 资源。 选择 “OffsetPreCalc”
参数会导致固件只在最初已经有一个程序层运行时计算共享中断请求的来源。 这项计算减少了中断
延迟会产生一个服务于共享中断请求的确定性程序,但其代价是 1 个字节的 RAM 资源。
应用程序编程接口
应用程序编程接口 (API) 子程序作为用户模块的一部分提供,使设计人员能够在较高的层级处理模块。
本部分具体说明了每个函数对应的接口以及 “include” 文件所提供的相关常量。
Note
在这里,如同所有用户模块 API 中的一样,A 和 X 寄存器的值可能因调用 API 函数而更改。 发
起调用 API 的函数有责任在调用之前保留 A 和 X 的值 (如果调用后需要再次用到它们)。 选择
这种 “ 寄存器易变 ” 策略是为了提高效率,并且自从 PsoC Designer 的 1.0 版本起使用。 C 编
译器自动遵循此要求。 汇编语言程序员也必须确保其代码遵守这一策略。 虽然一些用户模块 API
函数可以保留 A 和 X 不变,但是无法保证它们将来也会如此。
PWMDB8_PERIOD
说明:
代表在器件编辑器中为 PWMDB8 的 “ 周期 ”(Period) 字段选择的数值。 此数值的范围为 0 至 255。
PWMDB8_PULSE_WIDTH
说明:
代表在器件编辑器中为 PWMDB8 的 “PulseWidth” 字段选择的数值。 此数值的范围为 0 至 255。
PWMDB8_EnableInt
说明:
启用中断模式操作。
C 原型:
void PWMDB8_EnableInt(void);
汇编:
lcall
PWMDB8_EnableInt
参数:
无
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
Document Number: 001-66404 Rev. **
Page 9 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
PWMDB8_DisableInt
说明:
禁用中断模式操作。
C 原型:
void PWMDB8_DisableInt(void);
汇编:
lcall
PWMDB8_DisableInt
参数:
无
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
PWMDB8_Start
说明:
同时启动脉冲宽度调制器和死区发生器 PSoC 模块。 PWM 周期寄存器被加载到计数器寄存器,并启动
PWM8 时钟。 若输入使能处于高电平,则计数器会开始递减计数。
C 原型:
void PWMDB8_Start(void);
汇编:
lcall
PWMDB8_Start
参数:
无
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
PWMDB8_Stop
说明:
禁用 PWM8 和 DB8 PSoC 模块。
C 原型:
void PWMDB8_Stop(void);
汇编:
lcall
PWMDB8_Stop
Document Number: 001-66404 Rev. **
Page 10 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
参数:
无
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
PWMDB8_WritePeriod
说明:
把周期值写入 PWM 周期寄存器。
C 原型:
void PWMDB8_WritePeriod(BYTE bPeriod);
汇编:
mov
A, [bPeriod]
lcall PWMDB8_WritePeriod
参数:
周期值的范围是 0 至 255,在累加器内传递。
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
PWMDB8_WritePulseWidth
说明:
把脉冲宽度值写入 PWM 脉冲宽度寄存器。
C 原型:
void PWMDB8_WritePulseWidth(BYTE bPulseWidth);
汇编:
mov
A, [bPulseWidth]
lcall PWMDB8_WritePulseWidth
参数:
脉冲宽度值的范围是 0 至周期值,在累加器内传递。
返回值:
无
副作用:
计数器处于活动状态时写入脉冲宽度寄存器会改变输出的占空比。 这可能导致输出故障或者不慎更
改。 此函数可能更改 A 和 X 寄存器。
Document Number: 001-66404 Rev. **
Page 11 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
PWMDB8_WriteDeadTime
说明:
把死时间计数值写入 DB8 死时间寄存器。
C 原型:
void PWMDB8_WriteDeadTime(BYTE bDeadTime);
汇编:
mov
A, [bDeadTime]
lcall PWMDB8_WriteDeadTime
参数:
脉冲宽度值的范围是 0 至周期值,在累加器内传递。
返回值:
无
副作用:
此函数可能更改 A 和 X 寄存器。
PWMDB8_bReadPulseWidth
说明:
读取 PWM 脉冲宽度寄存器。
C 原型:
BYTE PWMDB8_bReadPulseWidth();
汇编:
lcall PWMDB8_bReadPulseWidth
mov
[bPulseWidth], A
参数:
无
返回值:
脉冲宽度值存储于脉冲宽度寄存器中,并返回到累加器中。
副作用:
此函数可能更改 A 和 X 寄存器。
Document Number: 001-66404 Rev. **
Page 12 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
固件源代码示例
在以下示例中,C 语言和汇编语言代码之间的对应关系简单且直接。 显示的周期值和比较值都与基本值相
差一,因为寄存器是从零开始的,即零是递减计数循环的终端计数。 在 A 寄存器中而非堆栈中传递单一
字节参数,这是汇编程序和 C 语言程序针对用户模块 API 使用的性能优化方式。 当在 PWMDB8.h 文件中
遇到 #pragma 快速调用声明时,C 语言编译器会对 “INT” 类型应用此机制,而不会将参数推至堆栈。
以下汇编语言源代码说明了 API 的使用。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Function: GenerateFetDrive
; Description:
;
This sample shows how to generate 20% under-lapped output signals.
;
The clock selected should be 30 times the required period.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
include "PWMDB8.inc"
; include the PWMDB8 API include file
GenerateFetDrive:
mov
A, 29
; set the period to be 30 counts of the clock
call PWMDB8_WritePeriod
mov
A, 14
; set the pulse width to create 50% duty cycle
call PWMDB8_WritePulseWidth
mov
A, 2
; set the dead time to 20% -> (15*0.2)-1
call PWMDB8_WriteDeadTime
call PWMDB8_DisableInt
; ensure that interrupts are disabled
call PWMDB8_Start
; start the PWMDB8 – counter will start to
ret
; count when the enable input is asserted high
同一代码用 C 语言表示为:
/* include the Counter8 API header file
#include "PWMDB8.h"
*/
/* function prototype */
void GenerateFetDrive(void);
/* Generate Fet drive function*/
void GenerateFetDrive(void)
{
/* set period to 30 clocks */
PWMDB8_WritePeriod(29);
/* set pulse width to generate a 50% duty cycle */
PWMDB8_WritePulseWidth(14);
/* set dead time to 20% -> (15*0.2)-1 */
PWMDB8_WriteDeadTime(2);
/* ensure interrupt is disabled */
PWMDB8_DisableInt();
/* start the PWM8! */
PWMDB8_Start();
}
Document Number: 001-66404 Rev. **
Page 13 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
配置寄存器
8-bit PWMDB 使用两个数字 PSoC 模块:PWM8 和 PWMDB8。 通过 7 个寄存器对每个模块进行了个性化和参
数化设置。 以下表格给出了作为常量和参数的 “ 特性 ” 值,命名为带有简要描述的位字段。 寄存器符号
名在用户模块实例的 C 语言和汇编语言接口文件 (后缀名为 “.h” 和 “.inc” 的文件)中定义。
PWM8 配置寄存器
Table 3.
模块 PWM8: 寄存器功能
位
值
7
0
6
0
5
1
4
0
3
中断类型
2
0
1
0
0
1
“ 中断类型 ”(Interrupt Type) 标志指示在输出信号的上升沿或在终端计数时触发中断。 此参数在器件
编辑器中设定。
Table 4.
模块 PWM8: 寄存器输入
位
值
7
6
5
4
使能
3
2
1
0
时钟
“ 使能 ”(Enable) 从多个源中选择数据输入。 “ 时钟 ”(Clock) 从多个源中选择输入时钟。 上述两个
参数均在器件编辑器中设定。
Table 5.
模块 PWM8: 寄存器输出
位
值
7
0
6
0
5
0
4
0
3
0
2
输出使能
(Out
Enable)
1
0
输出选择
“ 输出使能 ”(Output Enable) 标志用于表示输出已启用。 “ 输出选择 ”(Output Select) 标志用于表
示 PWM 输出路由到的位置。 上述两个参数均在器件编辑器中设定。
Table 6.
模块 PWM8: 计数器寄存器 DR0
位
值
7
6
5
4
3
2
1
0
1
0
计数
“ 计数 ”(Count) 是指 PWM8 递减计数器。 可以使用 PWM8 API 对其进行读取。
Table 7.
模块 PWM8: 周期寄存器 DR1
位
值
7
6
5
4
3
2
周期
“ 周期 ”(Period) 保留在启动时或终端计数条件下加载到计数器寄存器中的周期值。 可在器件编辑器中
或使用 PWM8 API 对其进行设置。
Table 8.
位
值
模块 PWM8: 脉冲宽度寄存器 DR2
7
6
5
4
3
2
1
0
PulseWidth
Document Number: 001-66404 Rev. **
Page 14 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
“PulseWidth” 保留用于生成输出的脉冲宽度值。 可在器件编辑器中或使用 PWM8 API 对其进行设置。
Table 9.
模块 PWM8: 控制寄存器 CR0
位
值
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0
启动 / 停止
若设置了 “ 启动 / 停止 ”(Start/Stop),则表示 PWM8 已启用。 可使用 PWM8 API 对其进行修改。
DB8 配置寄存器
Table 10. 模块 DB8: 寄存器功能
位
值
7
0
6
0
5
1
4
0
3
0
2
1
1
0
0
1
Table 11. 模块 DB8: 寄存器输入
位
值
7
6
5
4
死区非同步停止输入
3
2
1
0
时钟
“ 死区非同步停止输入 ”(Dead Band Kill) 从多个源中选择数据输入。 “ 时钟 ”(Clock) 从多个源中选
择输入时钟。 上述两个参数均在器件编辑器中设定。
Table 12. 模块 DB8: 寄存器输出
位
值
7
0
6
0
5
相位 2 输
出使能
4
3
相位 2 输出选择
2
相位 1 输
出使能
1
0
相位 1 输出选择
“ 相位 1 输出使能 ”(Phase1 Output Enable) 标志用于表示相位 1 输出已启用。 “ 相位 1 输出选择
”(Phase1 Output Select) 指定 DB8 的相位 1 输出路由到的位置。 “ 相位 2 输出使能 ”(Phase2
Output Enable) 标志用于表示相位 2 输出已启用。 “ 相位 2 输出选择 ”(Phase2 Output Select) 指定
DB8 的相位 2 输出路由到的位置。 这些参数均在器件编辑器中设置。
Table 13. 模块 DB8: 死时间计数器寄存器 DR0
位
值
7
6
5
4
3
2
1
0
2
1
0
1
0
死时间计数器
“ 死时间计数器 ”(Dead Time Counter) 是指 DB8 递减计数器。
Table 14. 模块 DB8: 死时间寄存器 DR1
位
值
7
6
5
4
3
死时间
“ 死时间 ”(Dead Time) 保留死时间计数值。 可使用 PWMDB8 API 对其进行修改。
Table 15. 模块 DB8: 寄存器 DR2
位
值
7
0
6
0
5
0
4
0
3
0
2
0
0
0
未使用该寄存器。
Document Number: 001-66404 Rev. **
Page 15 of 16
[+] Feedback
8-Bit PWM Dead Band Generator
Table 16. 模块 DB8: 控制寄存器 CR0
位
值
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0
启动 / 停止
若设置了 “ 启动 / 停止 ”(Start/Stop),则表示 DB8 已启用。 此参数使用 PWMDB8 API 进行修改。
版本历史记录
版本
2.5
Note
创作者
TDU
说明
更新了时钟说明,内容包括: 在模块中使用外部数字时钟时,为达到最高精度并使用睡眠
操作应关闭行输入同步。
PSoC Designer 5.1 在所有用户模块数据表中引入了版本历史。 此部分记录了当前用户模块版本
和以前用户模块版本之间区别的高级描述。
Document Number: 001-66404 Rev. **
Revised January 5, 2011
Page 16 of 16
Copyright © 2002-2011 Cypress Semiconductor Corporation. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility
for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended
to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its
products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products
in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
PSoC Designer™ and Programmable System-on-Chip™ are trademarks and PSoC® is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks
referenced herein are property of the respective corporations.
Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign),
United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works
of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with
a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is
prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not
assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems
where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress' product in a life-support systems application implies that the manufacturer
assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
[+] Feedback