基于32位微控制器MC68HC376的开发设计和应用
为了避免复位时MCU与外部读写器件冲突,引入DS和R/W为门控信号。这里,将SIM模块构造两个通用的并行I/O口,将DB8和DB9在复位时强制为低;而片选脚分别作为片选或者输出口,所以DB[0~7保持默认状态;因系统采用晶振作为外部参考频率源,所以MODCLK脚也应保持默认状态。
2.3 时钟部分的设计
2.3.1 系统时钟的获得
本系统采用晶振作为外部参考频率源,电路和普通晶振电路一样。但要注意确保MODCLK脚在复位时为高,否则系统会出错。
本系统采用Motorola公司推荐的4.194MHz晶振频率,同时通过写时钟合成控制寄存器SYNCR中的相关位来获得一定的系统时钟。系统时钟频率与SYNCR的W位、X位和Y[0~5]区的值有关:Fsys=Fref×[4(Y+1) ×2 (2W+X)]/128
当写入W=1,X=0,Y=100111时,Fsys=5Fref=20.97MHz。(注意:不要超过MC68HC376系统频率的最大允许值20.97MHz)。
2.3.2 外部滤波电路
由于采用外部参考频率源,所以需要在XFC脚上接入滤波电路。应尽可能降低XFC脚的泄露电流,以提高时钟的稳定性和内部锁相环的性能。滤波电路如图3所示。
2.4 输入输出通道
系统输入输出通道包括模块量输入、开关量输入、键盘输入、液晶显示、控制量逻辑输出等部分。为了减小干扰,开关量输入采取光电隔离方式。运用MC68HC376的CTM4模块测量频率,由QADC模块实现队列式的模数转换功能。
2.4.1 应用CTM4进行频率测量
Motorola公司的CTM4模块包括总线接口单元BIUSM、计数器分频子模块CPSM、1个16位自由计数器FCSM、2个16位可自动得装载计数器MCSM、4个动作单元DASM、4个脉宽调节子模块PWMSM。
CPSM通过对系统时钟分频向CTM4各个模块提供6种不同的计数时钟PCLK1~PCLK6。在运行CTM4各个单元之前,应先设置并启动CPSM。注意,CPSM的构造值关系到实际测频和测周结果的计算。
在实际测量中,为了提高测量精度,对于较高的频率采用计数测频法,外部信号经过滤波、过零比较后同时接入MC68HC376的CTM2C脚和CTD3脚,由软件选择判断实际采用的方式。测频子程序包括测频部分(流程如图4)和计数测频部分(流程如图5)。
(1)通过测周间接测频
当待测频率不高时,采用测周测频方法。DASM单元的特点在于不需要软件的干预而自动高速、精确地捕捉CTD3脚上两个连续的上(下)跳沿,两次捕捉的时间差即为待测信号的周期。
(2)通过计数器直接测频
当待测频率较高时,采用直接测频方式。用CMSM2作定时器,利用FCSM12对CTM2C引脚的方波信号进行计数。
(3)应用CTM4测频的几个实际问题
应用CTM4测频的程序结构并不复杂,但有几个实际问题值得注意:
《基于32位微控制器MC68HC376的开发设计和应用(第2页)》