除了用户设定的应用逻辑以外(图中未画),CPLD的电源控制逻辑增加了一对标准参数的库宏电路,它由Altera的Quartus II开发工具生成。内部的4.4MHz±25%振荡器Altufm_osc驱动一个模块化44 million LPM(库参数化模块)计数器。CPLD应用逻辑产生的逻辑低电平信号或关闭任何开关时都会使计数器复位。当复位计数器时,它的执行信号变低,驱动外接的断电管脚。当去掉复位时,反相的执行信号会重新开始 LPM 计数器的运行。
如果所有开关均为开,应用逻辑为不工作状态,则计数器在约10秒内计数到4400万,然后内部执行信号变高电平,关断计数器,并保持执行信号为高电平。接下来,断电管脚向VCC爬升,当断电管脚电压达到2.3V时关断Q1。关断CPLD的电源会使断电管脚进入三态(或不连接)模式,而R3使Q1保持关断。
用户可以使用符合JTAG标准的命令,用一根下载电缆连接到一个厂家定义的10脚插头上,对EPM570-T100进行配置。该过程需要在配置前、中、后按一个外接的开关,以保证CPLD能在配置过程中获得电源。可以通过改变计数器的模块,将不工作时间设置为任何需要的值。虽然电源、地和JTAG信号都使用专用的器件管脚,但也可以将任何通用CPLD I/O脚设定为开关输入和断电输出。
如果你的应用需要一个按键开关矩阵,则可以用n个二极管搭成一个nxm开关,进行有效的上电检测(图2)。在本例中,一排排开关通过二极管D1~D4连接到MOSFET的栅极。电阻R8~R11为每行开关提供一个对地通路,并只在开关闭合时承载电流,使行输入为低电平,同时保证只消耗最小的电源电流。
当用户按压任一开关时,Q1的栅极为低电平,CPLD接通。在用户释放开关以前,一个快速的CPLD上电例程,扫描开关阵列的各行和各排,以确定用户按下的是哪个开关。并且重置信号复位LPM计数器的不工作定时器。