采用编程数据来完成RC网络切换的可编程滤器芯片解
通过文献[1]给出的fCLK/f0与F0~F5的关系表格,得到本文根据fCLK/f0计算编程数据F0~F5的公式,即fCLK/f0与F0~F5的关系为:
fCLK/f0=40.84+1.57N1 (1)
或,N1为二进制数据F0~F5对应的十进制整数,范围为0~63共64级。
同样,对应滤波器的Q值也采用查表的方法,而是通过计算来获得Q值的编程数据Q0~Q7。Q值与Q0~Q7的关系为:
Q=64/(128-N2) (3)
或 N2=64(2-1/Q) (4)
其中,N2为二进数据Q0~Q6对应的十进制整数,范围为0~127共128级。
(2)系统程序流程
本系统的单片机主程序框图见图2。首先进行初始化,包括对8279的初始化,然后从片内RAM中读取新设置标志位进行判断。如果不是则给MAX262芯片送入滤波器所需的初始工作参数;是新设置则根据键中断服务程序获得的键值进行处理。
进行新设置时,首先根据输入的键值完成对滤波器的选择,包括滤波器A和B的设置选择以及相应滤波器的类型选择;然后根据式(4),由输入的Q值计算N2并转换成二进制编程数据Q0~Q6送片内RAM;同时根据式(2),由输入的中心频率f0值计算N1并转换为二进制编程数据F0~F5送片内RAM。在获得 MAX262的工作参数后,根据表1将这些参数转换为8字节的编程数据,由89C51的P0口送到MAX262。
设置完成后,MAX262就按照当前所要求的中心频率和Q值对输入信号进行滤波处理。
最后调用显示子程序,在LED数码管显示当前滤波器的工作参数,即中心频率和Q值。
本文采用单片机89C51来完成对可编程滤波器MAX262的控制,很好地实现了有源滤波器设计工作。而且这种程控滤波器具有使用灵活、调试容易的特点,一片MAX262就能完成对两路输入信号进行二阶滤波的处理。
如果需要四阶滤波可以很容易通过滤波器A和B的级联来实现,另外还可以通过对89C51的ALE信号进行倍频和分频实现AMX262的所有工作频率范围。
评论