001-13260_BPF2.pdf

2 极带通滤波器数据手册
BPF2 V 5.5
001-67099 Rev. **
Two-Pole Band Pass Filter
Copyright © 2002-2011 Cypress Semiconductor Corporation. All Rights Reserved.
PSoC® 模块
API 存储器 (字节)
模拟 CT
资源
模拟 SC
www
闪存
数字
RAM
引脚 (每个外
部 I/O)
CY8C29/27/24xxx、CY8C23x33、CY8CLED04/08/16、CY8CLED0xD、CY8CLED0xG、CY8CTST120、CY8CTMG120、
CY8CTMA120、CY8C28x45、CY8CPLC20、CY8CLED16P01、CY8C28x43、 CY8C28x52
CY8C26/25xxx
0
0
2
109
0
1
0
0
2
109
0
1
特性和概述
„
„
„
„
„
用户可编程的中频带增益
用户可编程中心频率和无外部组件的 Q
滤波器中心频率稳定性直接从时钟精度派生而来
滤波器采样率高达 1.0 MH
内置、零交叉检测器
BPF2 用户模块执行了通用二阶状态变量,也称作双二阶带通滤波器。 中心频率和 Q (中心频率和带宽之
比)是时钟频率和所选电容值比率的函数。 中心频率可以设置得非常精确,或可以通过控制采样率时钟进
行调整。 多节滤波器可通过串联两个 BPF2 用户模块形成。 输出能够驱动模拟输出总线,或者您可以将输
出与第二个 BPF2 用户模块串联,以形成双节滤波器。 此滤波器包括一个相对于模拟接地的比较器。 该特
性可构造限带的零交叉检测器。
Cypress Semiconductor Corporation
Document Number: 001-67099 Rev. **
•
198 Champion Court
•
San Jose, CA 95134-1709
•
408-943-2600
Revised February 1, 2011
[+] Feedback
Two-Pole Band Pass Filter
Figure 1. BPF2 框图
功能说明
在频率域中,单极对带通滤波器的频率响应如等式 1 所示:
Equation 1
在等式 1 中,Q 指中心频率与 -3.0 dB 带宽之比,φ0 指中心频率。 多极对带通滤波器有具有相同 Q 和
经过调整的 φ0 的节,以满足转化的带宽要求。 所有 2 极滤波器的远带外衰减渐进达 12 dB 每倍频程
(每极每倍频程 -6 dB)。 带通滤波器的近带外衰减比例达 12 dB 每带宽倍频程。 初始带外衰减非常大。
当输入频率超过滤波器中心频率两倍时,衰减特性将逐渐变得渐进于 12 dB 每中心频率倍频程。
所需的带内性能和近带衰减要求决定所选的用于转化为带通格式的低通滤波器类型。 标准巴特沃斯滤波器
在带通中具有单调振幅性能和最平坦的相移。 低阻尼比 (契比雪夫)滤波器具有带内振幅更平坦的特性,
但在带通中有非线性相移并且脉冲响应有震荡的特性。 高阻尼比 (贝塞尔)滤波器在通带中有线性相移并
且具有过冲最小的脉冲响应特性,但近带外衰减较低。 低通极的值可随时在任何滤波器设计参考中获取。
Document Number: 001-67099 Rev. **
Page 2 of 23
[+] Feedback
Two-Pole Band Pass Filter
双二阶滤波器的基本形式是一对积分器,其中包含受控直流通路和与频率相关的反馈通路。 您可以通过查
看双二阶的标准 RC 形式了解它,如图 2 所示。
Figure 2. RC 双二阶滤波器框图
典型的 RC 双二阶带通使用 3 个运算放大器。 RC 双二阶滤波器的传输函数如等式 2 中所示:
Equation 2
在 PSoC 开关电容实现中,通过反向输出模块增益的极性,省去了中央反相运算放大器。 电阻将转化为开
关电容,如图 1 所示。
由于开关电容电路的性质是时间采样器件,该传输函数基于时域,其中 z-1 为一个采样周期的时延,而非
频率域 (s=jφ)。 传输函数将转换为使用双线性变换的频率域。 传输函数可解析为等式 3:
Equation 3
Document Number: 001-67099 Rev. **
Page 3 of 23
[+] Feedback
Two-Pole Band Pass Filter
将此等式与等式 1 的标准形式相比可得到一组关于 Q、fc (中心频率)和 G (增益)的设计公式。如下
列等式所示:
Equation 4
Equation 5
Equation 6
等式 3 的分子含有项
,该项导致当信号频率接近奈奎斯特速率一半 (即,通带中的采样率 fs 和
少量振幅有偏差或向上 “ 倾斜 ”)时可降低滤波器的衰减。 Q 和采样频率越低,该倾斜越大。 可通过调
整滤波器的额定带宽抵消倾斜。
采样率越高,滤波器性能越接近于等式 1 的标准形式和图 3 所示的更平滑波形。 这适用于所有开关电容
电路,包括滤波器、放大器和 DAC。
Figure 3. 时间分辨率与过采样率
Document Number: 001-67099 Rev. **
Page 4 of 23
[+] Feedback
Two-Pole Band Pass Filter
滤波器的中心频率由时钟频率、电容分辨率和 PSoC 运算放大器性能控制。 频率较高时,运算放大器的开
环增益降低显著,同时中心频率降低。 开环增益 (以单位增益带宽表示)对中心频率性能的影响如图 4
所示。 中心频率高于 40 kHz 的滤波器的用户模块功耗应设置为 “ 高功耗 ”,并在 “ 全局参数 ” 窗口
中将 “ 运算放大器偏压 ” 设置为 “ 高 ”。
Figure 4. 中心频率与单位增益带宽
应用的功耗设置
开关电容模块功耗和偏压设置决定了滤波器的性能。 使用用户模块 API 选择功耗模式。 使用 PSoC
Designer 的 “ 全局资源 ” 窗口中的 “ 运算放大器偏压 ” 参数选择偏压。 功耗和偏压设置决定了运算
放大器工作电流,而后者又决定了斜率 (SR)。 当功耗和偏压都设置为 “ 高 ” 时,运算放大器斜率为 4
V/µsec。 功耗和偏压每降低一级,斜率就会降低 ½。
提供逼真信号所需的斜率取决于峰值电压 (Vpk) 和频率 (F)。 在一个时钟相位的一半所经过的时间内,滤
波器的输出信号会从其旧值上升到新值。 因此,滤波器要求运算放大器斜率为信号斜率的四倍。
Equation 7
下表中给出了 Vdd = 5.0 V 的轨至轨输出的最大工作频率:
功耗、偏压
kHz
P,B=H,H
64
P,B=H,L
32
P,B=M,H
16
P,B=M,L
8
P,B=L,H
4
P,B=L,L
2
Document Number: 001-67099 Rev. **
Page 5 of 23
[+] Feedback
Two-Pole Band Pass Filter
在此表中,P = 功耗,B = 运算放大器偏压,L = 低,H = 高,M = 中。 对于较低的信号电平,允许的峰
值电压如下图所示。
Figure 5. 较低信号电平的峰值电压
滤波器输出是内部信号。 如果滤波器在芯片外驱动,则必须进行缓冲。 缓冲区的斜率为 0.65 V/µsec。 缓
冲区的工作频率范围如前一个图所示。
滤波器设计
设计的目标是达到可能的最高中心频率以获得最佳波形逼真度并最大限度地减少带外信号的锯齿。 其他系
统要求可决定采样率,而通过定制电容值可以获得要求的采样率。
BPF2 提供了三种选择用于决定电容值。 PSoC Designer 提供了滤波器设计向导以自动执行 2 极滤波器的
过程。 也可在电子表格 LPF2 Design.xls 中实现这一过程。 您可从 PSoC Designer “ 帮助 ” 菜单的 “
文档 ...” 条目中打开此电子表格。 在单独的 Microsoft® Excel® 电子表格 LPF4 Design.xls 中自动完
成针对 2 极对 (四阶)的类似设计过程。 可在电子表格中实验性地修改由该向导施加的设计约束。 若要
尽可能地手动控制设计过程,请参见此数据手册末尾附录中可手动执行的计算过程。 此外,还以拐角频率
为 1 kHz 的巴特沃斯滤波器为例,说明了该过程的工作原理。
Document Number: 001-67099 Rev. **
Page 6 of 23
[+] Feedback
Two-Pole Band Pass Filter
若要使用 PSoC Designer 的内置 “ 滤波器设计向导 ”,请先将 LPF2 实例放置在模拟阵列中。 右键单击
该用户模块,然后从弹出菜单中选择 “ 滤波器设计向导 ...”。 此时会出现一个对话框 (如图 5 所
示),其中介绍了设计传输函数的简单重复过程。
Figure 6. BPF2 滤波器设计向导对话框
在该对话框向下滚动可显示用于绘制振幅响应的值表。 您可将该表中的值剪切并粘贴到电子表格或其他工
具中,以进行进一步图解和分析。
Document Number: 001-67099 Rev. **
Page 7 of 23
[+] Feedback
Two-Pole Band Pass Filter
直流和交流电气特性
以下值均为基于初始特性数据的预期性能指标。除非另有说明,否则所有限制应确保:TJ =+25°C,Vdd =
5.0V,功耗 = 高,运算放大器偏压 = 低,输出相对于模拟接地 = 22*VBandGap。
Table 1.
5.0V BPF2 直流电气特性,PSoC 器件 CY8C29/27/24/22xxx 系列
参数
典型值
限值
单位
28
--
mV
低功耗
290
--
μA
中功耗
1095
--
μA
高功耗
4200
--
μA
直流偏移电压 1
条件和注释
相对于模拟接地 1
工作电流
Table 2.
5.0V BPF2 交流电气特性,PSoC 器件 CY8C29/27/24/22xxx 系列
参数
中频带增益
典型值
限值
单位
.25
--
dB
低功耗
.9
--
MHz
中功耗
4
--
MHz
高功耗
6
--
MHz
拐角频率误差
.85
--
%
阻尼比误差
1.05
--
%
噪声 4
615
--
nV/√Hz
条件和注释
与预期值之间的偏差 2
最大时钟频率 3
与额定值之间的偏差 2
以下值均为基于初始特性数据的预期性能指标。除非下表中另有说明,否则限制应确保:TA = 25°C,Vdd
= 3.3 V,功耗 = 高,运算放大器偏压 = 低,输出相对于模拟接地 = Vdd/2。
Table 3.
3.3V BPF2 直流电气特性,PSoC 器件 CY8C29/27/24/22xxx 系列
参数
典型值
限值
单位
21
--
mV
低功耗
270
--
μA
中功耗
1035
--
μA
高功耗
4045
--
μA
直流偏移电压 1
条件和注释
相对于模拟接地 1
工作电流
Document Number: 001-67099 Rev. **
Page 8 of 23
[+] Feedback
Two-Pole Band Pass Filter
Table 4.
3.3V BPF2 交流电气特性,PSoC 器件 CY8C29/27/24/22xxx 系列
参数
中频带增益
典型值
限值
单位
.75
--
dB
低功耗
.7
--
MHz
中功耗
1.3
--
MHz
高功耗
2.4
--
MHz
拐角频率误差
1.55
--
%
阻尼比误差
1.05
--
%
噪声 4
1150
--
nV/√Hz
条件和注释
与预期值之间的偏差 2
最大时钟频率 3
Note
与额定值之间的偏差 2
电气特性注释
1.
使用具有以下参数的 1 kHz 滤波器计算出的典型直流偏移电压:Q 为 3、5 和 15 ; C2 = 1 至 16 ;
C3 = 3、10 和 25。 使用滤波器设计电子表格计算出 C1 和 C4。
2. 从具有以下参数的额定滤波器确定的偏差值:fcenter=1 kHz 巴特沃斯,单位增益,C1=1,C2=3,
C3=31,C4=1,fclock=20.3 kHz,Q=10。
3.
4.
采样率是列时钟频率的四分之一。
使用 10 kHz 滤波器时在 1 kHz 处计算出的噪声。
除非另有说明,否则所有限制应确保:TJ =25°C,Vdd = 5.0V,功耗 = 高,运算放大器偏压 = 低,输出
相对于模拟接地 = 2*VBandGap。
Table 5.
5.0V BPF2 直流电气特性,PSoC 器件 CY8C26/25xxx 系列
参数
直流偏移
限值 2
典型值
32
单位
mV
条件 1 和注释
相对于模拟接地
工作电流
低功耗
250
--
uA
中功耗
560
--
uA
高功耗
1560
2000
uA
Table 6.
5.0V BPF2 交流电气特性,PSoC 器件 CY8C26/25xxx 系列
参数
限值 2
典型值
单位
--
1.0
%
低功耗
--
0.8
MHz
中功耗
--
1.5
MHz
中频带增益 3
条件 1 和注释
与额定值之间的偏差
最大时钟频率 4
Document Number: 001-67099 Rev. **
Page 9 of 23
[+] Feedback
Two-Pole Band Pass Filter
参数
限值 2
典型值
单位
条件 1 和注释
高功耗
--
3.0
MHz
中心频率 3
--
2.5
%
与额定值之间的偏差
Q3
--
2.6
%
与额定值之间的偏差
噪声
--
8.0
mV rms
除非另有说明,否则所有限制应确保:TJ =25°C,Vdd = 5.0V,功耗 = 高,运算放大器偏压 = 低,输出
相对于模拟接地 = 2*Vdd。
Table 7.
3.3V BPF2 直流电气特性,PSoC 器件 CY8C26/25xxx 系列
参数
直流偏移
限值 2
典型值
32
单位
条件和注释 1
单位
条件和注释 1
mV
工作电流
低功耗
250
--
uA
中功耗
560
--
uA
高功耗
1280
1800
uA
Table 8.
3.3V BPF2 交流电气特性,PSoC 器件 CY8C26/25xxx 系列
参数
限值 2
典型值
--
1.0
%
低功耗
--
0.6
MHz
中功耗
--
1.0
MHz
高功耗
--
1.5
MHz
中心频率 3
--
2.5
%
与额定值之间的偏差
Q3
--
2.6
%
与额定值之间的偏差
噪声
--
6.0
mV rms
中频带增益 3
与额定值之间的偏差
最大时钟频率 4
Note
电气特性注释
1.
2.
3.
典型值表示 +25°C 时的参数标准。
限值将通过测试或统计分析加以保证。
从具有以下参数的额定滤波器确定的偏差值: 1 kHz 巴特沃斯 Q=10,增益 =0 dB,C1=1,C2=10,
C3=10,C4=3,CA=32,C2=32,fsample=139 kHz。
4. 采样率是列时钟频率的四分之一。
Document Number: 001-67099 Rev. **
Page 10 of 23
[+] Feedback
Two-Pole Band Pass Filter
放置
“ 器件编辑器 ” 将逻辑模块 FLIN 和 FLFB 映射到器件模拟阵列中的一对相邻的开关电容 PSoC 模块。
可使用多种方法从模拟 PSoC 模块构建双二阶滤波器电路。 每种构建方法都实现了 BPF2 框图 (图 2),
但在 FLIN 和 FLFB 模块中所使用的电容和连接各不相同。 每种方法所生成的电路拓扑结构各不相同,并
且其中的映射和 I/O 结果也各不相同。 最明显的区别就是这两个 PSoC 模块在模拟阵列内是排成一行还是
排成一列。 这些拓扑结构还决定了在阵列中可与其他模块建立哪些连接。 无论选择的拓扑结构如何,滤波
器输入和输出始终连接到 FLIN 模块。
每次创建 BPF2 用户模块的实例时,PSoC Designer 都会提供一个对话框,其中包含可帮助选择电路拓扑
结构的插图和文本。 可以随时变更选项,方法是:在选择栏中右键单击用户模块图标;如果已放置用户模
块,则右键单击它的某一 PSoC 模块,然后从弹出菜单中选择 “ 选择用户模块选项 ...”。 如果在放置后
更改拓扑结构,则需要重新将用户模块放入模拟阵列中。
极性和调制器功能
BPF4 输入开关电容器模块具有极性控制选择。 也可以通过调制器所包含模块之外的时钟来控制极性。 该
调制器用于根据应用需要切换频率的高低。 该调制函数在载波率上将输入乘以 +1 或 -1。 这会在载波与
输入频率的叠加处以及载波与输入频率的差分处生成信号。 调制方波在其基础的奇数倍数处有谐波。 这些
谐波按 1/n 下降,因此载波锯齿以相同因数衰减。 调制载波应具有 50% 的负载循环,以最大限度地减少
偶次谐波锯齿。
下移示例使用由 120 kHz 方波调制的 132 kHz 信号生成 12 kHz 差分信号。 在 252 kHz 处生成了一个同
等大小的信号,但此信号大部分将被低通滤波器滤出。 未滤出的下行调制信号示例如下图所示:
Figure 7. 未滤出的下行调制信号
Document Number: 001-67099 Rev. **
Page 11 of 23
[+] Feedback
Two-Pole Band Pass Filter
配置有 4 kHz 带宽、12 kHz 差频的 BPF2 显著地减少了谐波和锯齿,从而产生了以下波形。 调制和滤波
均在同一模块中完成。
Figure 8. BPF2 波形
该技术在频率向上混合中同样适用,上限约为 200 kHz。
通过选择适当的全局输出或广播总线,可以从多个数字模块源中的任何一个选择调制器信号。 调制器可连
接到比较器总线输出,但这对于使用带通滤波器来说不是一个实用功能。
参数和资源
要创建带通滤波器,将一个 BPF2 用户模块实例放入 “ 器件编辑器 ”。 使用设计过程选项之一来确定该
滤波器的电容值,然后连接输入并配置模拟总线连接和时钟资源。 这些参数中每一个均将在本节中进行说
明。
输入
滤波器的输入由相邻 PSoC 模块的输出来驱动。。 您可以在 “ 器件编辑器 ” 中选择输入。
AnalogBus
用户模块的 FLIN 模块的输出可以连接至相邻的 PSoC 模块。 在 “ 器件编辑器 ” 中建立从其他用户
模块至此输出的连接。 可使用 AnalogOutBus_x 选择(其中 “X” 是列号)将 FLIN 模块的输出连接
至模拟列输出总线。 这可以连接至同一列的模拟输出缓冲区,并防止模拟输出总线访问同一列中的
其他用户模块。 所有互连均使用 “ 器件编辑器 ” 进行配置。
CompBus
FLIN 模块比较器输出可路由至数字 PSoC 模块的输入总线,也可路由至中断。 若要进行其中任何连
接,必须将 CompBus 参数设置为 “ 启用 ”。
Document Number: 001-67099 Rev. **
Page 12 of 23
[+] Feedback
Two-Pole Band Pass Filter
电容值 C1、C2、C3、C4、CA 和 CB
这六个电容值之间的比率决定了滤波器的频率和相位响应。 这些名称指 BPF2 框图(图 2)中所绘制
的电容。 CA 和 CB 均可采用 16 或 32 个单位电容值。 C1 到 C4 采用的值为 0 到 31 (但要使传
输函数有效,值必须大于零)。 可通过自动或手动执行相应步骤完成传输函数的设计。 若要访问内置
设计工具,请右键单击放置的滤波器,然后从弹出菜单中选择 “ 滤波器设计向导 ...”。 有关设计
的详细信息,请参见 “ 滤波器设计 ” 部分。
极性 (仅适用于 A 输入拓扑结构滤波器)
此参数确定输出极性 (相对于输入极性)。 可通过选择反相将输出设置为与输入信号反相,也可以
选择同相使输入和输出保持相同的极性。 此参数仅适用于 A 输入拓扑结构滤波器。
采样时钟
低通滤波器所需的采样时钟将使用 “ 功能说明 ” 一节中的设计公式计算得出。 与其他用户模块参
数不同,采样时钟不会显示在 “ 器件编辑器 ” 的 “ 全局资源 ” 列表下的用户模块参数列表中。
此外,与特定于特殊用户模块的信号输入不同,每个采样时钟均为整个模拟列提供服务。 两个 PSoC
模块的采样率时钟必须相同。 当选择水平放置模块后,两个列时钟必须由同一时钟源来驱动。 每个
列时钟发生器均将其输入四分频,以在模块中生成 φ1 和 φ2 内部时钟,因此时钟源的速度必须比
所需的滤波器采样时钟快四倍。
可选择的时钟源包括任何数字 PSoC 模块和系统时钟分频器。 当系统时钟分频器必须指派用于其他用
途,所有定时器、计数器和脉冲宽度调制器 (PWM) 用户模块均是适合的选择。
在 “ 器件编辑器 ” 中使用每列的 CLK 复用器选择列时钟的时钟源。 系统时钟是此复用器的直接输
入。 如果使用 PSoC 模块生成时钟,则通过 ACLK0 和 ACLK1 复用器将这些模块连接到 CLK 复用器。
调制器时钟
调制器使用输入模块 (FLIN) 的 A 输入中的极性控制。 此函数可用于 BPF2A 和 BPF2VA 拓扑结构。
它不能用于 BPF2B 和 BPF2V,因为这些拓扑结构使用输入模块的 B 输入,该输入没有极性控制。
提供了四个时钟源 (包括关闭状态):
Table 9.
调制器时钟源选择
参数
注
无
调制器时钟处于关闭状态
GlobalOutOdd_0
从 GlobalOutEven_0 获取调制器时钟
GlobalOutOdd_1
从 GlobalOutEven_1 获取调制器时钟
Row_0_Broadcast
从 Row_0_Broadcast 获取调制器时钟
比较器总线与调制器时钟的连接通常仅在 LPF 拓扑结构中起作用,不适用于 BPF。
Document Number: 001-67099 Rev. **
Page 13 of 23
[+] Feedback
Two-Pole Band Pass Filter
应用程序编程接口
应用程序编程接口 (API) 子程序作为用户模块的一部分提供,使设计人员能够在较高的层级处理模块。
本节指定每个函数的接口以及 “include” 文件提供的相关常量。
Note
此处就像在所有用户模块 API 中一样,可以通过调用 API 函数更改 A 和 X 寄存器的值。 如果在
调用后需要 A 和 X 的值,则调用函数负责在调用前保留 A 和 X 的值。 此 “ 寄存器易失 ” 策略
是针对提高效率的目的选择,自 PSoC Designer 1.0 版起已强制使用此策略。 C 语言编译器自动
遵循此要求。 汇编语言程序员也必须确保其代码遵守这一策略。 虽然一些用户模块 API 函数可以
保留 A 和 X 不变,但是无法保证它们将来也会如此。
所提供的入口点用于初始化 BPF2 用户模块、更改电源设置以及禁用该用户模块。
BPF2_Start
说明:
为此用户模块执行所有必需的初始化操作,并为开关电容 PSoC 模块设置功耗等级。
C 语言原型:
void BPF2_Start(BYTE bPowerSetting)
汇编语言:
mov
A, bPowerSetting
lcall BPF2_Start
参数:
bPowerSetting: 一个指定两个模拟 PSoC 模块的功耗等级的字节。 在复位和配置后,分配给仪表放
大器的 PSoC 模块将降低功耗运行。 符号名称由 C 语言和汇编语言 include 文件提供;下表中列出
了这些符号名称的相关值:
符号名称
值
BPF2_OFF
0
BPF2_LOWPOWER
1
BPF2_MEDPOWER
2
BPF2_HIGHPOWER
3
Note
为了获得正常性能,中心频率高于 40 kHz 的滤波器应 (1) 使用 BPF2_HIGHPOWER,(2) 在 “ 全
局参数 ” 窗口中将全局参数 “ 运算放大器偏压 ” 设置为 “ 高 ”。
返回值:
无
副作用:
此函数会更改 A 和 X 寄存器。
Document Number: 001-67099 Rev. **
Page 14 of 23
[+] Feedback
Two-Pole Band Pass Filter
BPF2_SetPower
说明:
为开关电容 PSoC 模块设置功耗等级。 可用于关闭和打开用户模块中的模块。
C 语言原型:
void BPF2_SetPower(BYTE bPowerSetting)
汇编语言:
mov
A, bPowerSetting
lcall BPF2_SetPower
参数:
bPowerSetting: 与 “ 启动 ” 入口点所采用的 bPowerSetting 相同。
返回值:
无
特别影响:
此函数会更改 A 和 X 寄存器。
BPF2_SetCA、SetCB
说明:
为用户模块 FLIN 模块 (CA) 和 FLFB 模块 (CB) 中的反馈电容设置值。 这可以随时修改带通滤波器
的传输函数。
C 语言原型:
void BPF2_SetCA(BYTE FEEDBACK_CONSTANT)
void BPF2_SetCB(BYTE FEEDBACK_CONSTANT)
汇编语言:
mov
A, FEEDBACK_CONSTANT
lcall BPF2_SetCA
; or, call
BPF2_SetCB
参数:
一个指定反馈电容 CA 或 CB 大小的字节 (请参见 BPF2 框图)。 符号名称由 C 语言和汇编语言
include 文件提供;下表中列出了这些符号名称的相关值:
符号名称
值
BPF2_FEEDBACK_16
0x00
BPF2_FEEDBACK_32
0x01
返回值:
无
副作用:
此函数会更改 A 和 X 寄存器。
Document Number: 001-67099 Rev. **
Page 15 of 23
[+] Feedback
Two-Pole Band Pass Filter
BPF2_SetC1、SetC2、SetC3 和 SetC4
说明:
为用户模块中的特定电容设置值。 这可以通过修改 C1 来调整增益,通过调整其他值来改变滤波器的
传输特性。
C 语言原型:
void BPF2_SetC1(BYTE
void BPF2_SetC2(BYTE
void BPF2_SetC3(BYTE
void BPF2_SetC4(BYTE
bCapValue)
bCapValue)
bCapValue)
bCapValue)
汇编语言:
mov
A, CapValue
lcall BPF2_SetC1
; or, call
BPF2_SetC2 (or SetC3 or SetC4)
参数:
bCap 值: C1、C2、C3 和 C4 的整数值 1 到 31 (请参见 BPF2 框图)。 超出此范围以外的值将截断
为 32 的模数。
返回值:
无
副作用:
此函数会更改 A 和 X 寄存器。
BPF2_SetPolarity (仅适用于 A 输入拓扑结构滤波器)
说明:
通过选择是否对 FLIN 的输入信号进行反相,设置输出信号的极性。 这可以随时修改带通滤波器的输
出极性。 此函数仅适用于 A 输入拓扑结构滤波器。
C 语言原型:
void BPF2_SetPolarity(BYTE FEEDBACK_CONSTANT)
汇编语言:
mov
A, FEEDBACK_CONSTANT
lcall BPF2_SetPolarity
参数:
POLARITY_CONSTANT: 一个指定是否反相的字节。 符号名称由 C 语言和汇编语言 include 文件提供
;下表中列出了这些符号名称的相关值:
符号名称
值
BPF2_POLARITY_INVERTING
0x00
BPF2_POLARITY_NON_INVERTING
0x01
返回值:
无
Document Number: 001-67099 Rev. **
Page 16 of 23
[+] Feedback
Two-Pole Band Pass Filter
副作用:
此函数会更改 A 和 X 寄存器。
BPF2_Stop
说明:
关闭用户模块的电源。
C 语言原型:
void BPF2_Stop(void)
汇编语言:
lcall BPF2_Stop
参数:
无
返回值:
无
特别影响:
此函数会更改 A 和 X 寄存器。
固件源代码示例
在 C 语言中,使用带通滤波器十分简单,就像使用 Start API 开始操作以及在完成时调用 Stop API 一
样。
#include "BPF2.h"
BPF2_Start(BPF2_HIGHPOWER);
...
BPF2_Stop();
// (application processing)
可以随时设置和修改滤波器的传输函数。 假定模拟列时钟由分频器为 304 的 24 MHz 时钟源来驱动,则以
下代码创建一个中心频率为 1000 Hz、Q 为 10 的滤波器,然后启动该滤波器。 请注意,无论选择哪一种
拓扑结构或者其在模拟 PSoC 模块阵列中的放置位置如何,都将使用这一相同的代码。
BPF2_SetC1( 1 );
BPF2_SetC2( 10 );
BPF2_SetC3( 10 );
BPF2_SetC4( 3 );
BPF2_SetCA( BPF2_FEEDBACK_32 );
BPF2_SetCB( BPF2_FEEDBACK_32 );
BPF2_Start(BPF2_HIGHPOWER);
BPF2_SetPolarity(BPF2_POLARITY_INVERTING);
Document Number: 001-67099 Rev. **
Page 17 of 23
[+] Feedback
Two-Pole Band Pass Filter
汇编语言等效代码如下:
include "BPF2.inc"
mov
lcall
mov
lcall
mov
lcall
mov
lcall
mov
lcall
mov
lcall
mov
lcall
mov
lcall
Note
A, 1
BPF2_SetC1
A, 10
BPF2_SetC2
A, 10
BPF2_SetC3
A, 3
BPF2_SetC4
A, BPF2_FEEDBACK_32
BPF2_SetCA
A, BPF2_FEEDBACK_32
BPF2_SetCB
A, BPF2_POLARITY_INVERTING
BPF2_SetPolarity
A, BPF2_HIGHPOWER
BPF2_Start
设计等式表明增益与 C1 的值成比例,但中心频率和阻尼 (Q) 与该值无关。 选择传输函数后,可
使用 BPF2_SetC1 API 函数实现可编程增益控制。
配置寄存器
水平 A 输入拓扑结构
Table 10. 模块 FLIN: 寄存器 CR0
位
7
6
0
5
极性
4
3
CR0
CA
CR1
输入
CR2
AnalogBus
CompBus
0
0
0
CR3
0
0
1
0
反馈
2
1
0
C1
C2
Document Number: 001-67099 Rev. **
0
0
0
电源
Page 18 of 23
[+] Feedback
Two-Pole Band Pass Filter
Table 11. 模块 FLFB: 寄存器 CR0
位
7
6
0
5
0
4
CR0
CB
CR1
FBIN
CR2
0
0
0
C4
CR3
0
0
1
0
3
2
1
0
C3
0
0
0
0
0
1
电源
0
水平 B 输入拓扑结构
Table 12. 模块 FLIN
位
7
6
0
5
1
4
3
CR0
CA
CR1
反馈
CR2
AnalogBus
CompBus
0
0
0
CR3
0
0
1
0
输入
2
1
0
C2
C1
0
0
0
电源
Table 13. 模块 FLFB
位
7
6
0
5
0
4
CR0
CB
CR1
FBIN
CR2
0
0
0
C4
CR3
0
0
1
0
2
1
0
C3
0
Document Number: 001-67099 Rev. **
3
0
0
0
0
1
电源
1
Page 19 of 23
[+] Feedback
Two-Pole Band Pass Filter
垂直 A 输入拓扑结构
Table 14. 模块 FLIN
位
7
6
0
5
极性
4
CR0
CA
CR1
输入
CR2
AnalogBus
CompBus
0
C4
CR3
0
0
1
0
3
2
1
0
1
0
C1
C2
反馈
电源
Table 15. 模块 FLFB
位
7
6
CR0
CB
0
CR1
FBIN
CR2
0
0
CR3
0
0
5
0
4
3
2
C3
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
电源
垂直 B 输入拓扑结构
Table 16. 模块 FLIN
位
7
6
0
5
1
4
CR0
CA
CR1
反馈
CR2
AnalogBus
CompBus
0
C4
CR3
0
0
1
0
3
2
1
0
C2
C1
Document Number: 001-67099 Rev. **
输入
电源
Page 20 of 23
[+] Feedback
Two-Pole Band Pass Filter
Table 17. 模块 FLFB
位
7
6
CR0
CB
0
CR1
FBIN
CR2
0
0
CR3
0
0
5
0
4
3
2
1
0
C3
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
电源
可变位字段定义
以下定义适用于上述所有寄存器定义:
CA 和 CB 将 FLIN 和 FLFB 反馈电容分别设置为 16 或 32 单位 (请参见 BPF2 框图)。 CA 和 CB 可以
直接在 “ 器件编辑器 ” 中配置,也可以使用 “ 滤波器设计向导 ” 间接配置。
C1、C2、C3 和 C4 将 BPF2 示意图中所示的电容设置为介于 1 和 32 之间的整数值。 与 CA 和 CB 电容
一样,它们可以直接在 “ 器件编辑器 ” 中配置,也可以使用 “ 滤波器设计向导 ” 间接配置。
输入控制用于选择可由 BPF2 用户模块调节的输入信号的复用器。 用户模块的 “ 输入 ” 参数决定了此位
字段的值。 可以使用器件编辑器手动配置 “ 输入 ” 参数的值。 在某些情况下,此位字段可采用的值将受
到限制,这样可保证 FLIN 与 FLFB 模块之间的 C4 连接能够正常工作。
AnalogBus 用于将滤波器的输出连接至模拟总线。 用户模块的参数 “AnalogBus” 决定了此位字段的值。
可以使用 “ 器件编辑器 ” 手动配置 AnalogBus 参数的值。
CompBus 用于将滤波器的输出连接至比较器总线。 用户模块的 “CompBus” 参数决定了此位字段的值。 可
以使用 “ 器件编辑器 ” 手动配置 CompBus 参数的值。
反馈是 C2 反馈连接,由 BPF2 用户模块在 “ 器件编辑器 ” 中的放置位置自动确定。 在某些情况下,此
位字段也用于在 FLIN 与 FLFB 模块之间建立 C4 连接。
FBIN 是 FLIN 输出与 FLFB 输入的连接,由 BPF2 用户模块在 “ 器件编辑器 ” 中的放置位置自动确定。
极性控制是否对滤波器的输出进行反相。 可以直接使用 “ 器件编辑器 ” 配置该位。 仅适用于 A 输入拓
扑结构滤波器。
电源控制 PSoC 模块的开 / 关状态以及与当前设置之间的偏差。 该参数最初是通过调用用户模块的 API 函
数 BPF2_Start 进行设置的,可通过调用函数 BPF2_SetPower 和 BPF2_Stop. 进行修改。
附录: 计算设计过程
在 “ 器件编辑器 ” 内置的 2-pole 带通滤波器设计向导中自动完成以下针对单极对滤波器的设计过程。
要启动向导,右键单击一个已放入模拟阵列中的 BPF2 滤波器,然后从弹出菜单中选择 “ 滤波器设计向导
…”。 当满足传输函数时,单击向导的 “ 确定 ” 按键将已计算的 C1 到 C4 值以及 CA 和 CB 值传输到
“ 器件编辑器 ” 参数中。 此外,您可以使用位于 PSoC Designer 文档目录中的 Microsoft Excel 电子
表格 BPF2Design.xls 进行传输函数的计算和图形分析。
Document Number: 001-67099 Rev. **
Page 21 of 23
[+] Feedback
Two-Pole Band Pass Filter
2 极设计过程
1.
2.
3.
4.
5.
6.
7.
8.
确定中心频率、Q 和中频带增益的滤波器要求。 如果高位和低位 -3 dB 点、fu 和 fl 已知,根据以
下等式计算中心频率和 Q。
和
将 CA 与 CB 设置为等于 32。
将 C2 的初始值设置为等于极对的 Q。
将 C3 的初始值设置为等于极对的 Q。
根据解二次方程式后得出的等式 4 变化形式计算 C4 的值。
C4 必须是实数和正数。 将其舍入为最近的整数。
如果得出的 C4 为负数或者虚数,请调整 C3 的值,然后计算 C4 的新值。 必要时重复进行计算。
根据变换的等式 5 计算采样频率。
9. 评估过采样率。
10. 如果 OSR 小于 5.0,调整 C2 并重复步骤 3 至 9。
11. 根据等式 6 计算 C1 值。 将其舍入为最近的整数。
12. 计算等于 4 倍 fs 的模拟列时钟。 从 PSoC Designer 中提供的选项中选取模拟列时钟源 fsysclk。
有关时钟选择的其他详细信息,请参见 “ 采样时钟 ” 参数。 请注意 BPF2 模拟开关电容 PSoC 模块
在单独的列中。 两个模块必须有相同时钟,因此两列也必须有相同时钟。
13.
14.
15.
16.
17.
计算分频器并将结果舍入为最近的整数。
对所选系统时钟资源进行 4n 分频,以获取实际的时钟频率。
根据实际采样时钟计算滤波器中心频率。
计算 Q 和增益 (G)。
评估滤波器设计性能。 几乎在所有情况下,在设计要求 3% 内的 fc、Q 和 G 的设计值通常能够实
现。 如果误差大于 3%,请选择一个 C2 新值、重复进行计算并优化。
4 极设计过程
4 极 (2 极对)带通滤波器会带来额外限制。 在设计这些滤波器时,两个 BPF2 用户模块的时钟频率必须
相同。 在位于 PSoC Designer 文档目录中的 Microsoft Excel 电子表格 BPF4 Design.xls 中自动完成
针对 2 极对 (4 阶)滤波器的设计过程。 电子表格的教程在位于同一目录下的单独文件 BPF4
Design.pdf 中。 可以通过 PSoC Designer 的 “ 帮助 ” 菜单直接访问该文档。
Document Number: 001-67099 Rev. **
Page 22 of 23
[+] Feedback
Two-Pole Band Pass Filter
版本历史记录
版本
1.2
Note
创建者
SEG
说明
添加了 “ 极性 ”、“ 调制器函数 ” 部分以及 “ 应用的功耗设置 ” 部分。
PSoC Designer 5.1 在所有的用户模块数据表中提供版本历史记录。 本数据表详细介绍了当前和
先前用户模块版本之间的区别。
Document Number: 001-67099 Rev. **
Revised February 1, 2011
Page 23 of 23
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