本文介绍如何在 Lattice ICE40 UltraPlus FPGA 开发板 上使用片内 10 kHz 低频振荡器(LFOSC)。
该片内振荡器非常适用于低功耗场景或持续运行场景。以下是实现 10 kHz 片内振荡器演示功能的 Verilog HDL 代码:
//DigiKey Coffee Cup Internal 10 KHz clock demo
module top(output IOT_39A);
//10khz used for low power applications (or sleep mode)
SB_LFOSC SB_LFOSC_inst(
.CLKLFEN(1),
.CLKLFPU(1),
.CLKLF(clk_10khz)
);
assign IOT_39A = clk_10khz;
endmodule
本演示所使用的 Lattice ICE40 FPGA 片内功能模块如下:
演示中通过 B 接口排针 的 IOT_39A 引脚,将这路 10 kHz 片内时钟引出至外部,以便用示波器进行测量。完成代码综合并将程序下载至开发板闪存后,10 kHz 时钟信号会被引至 IOT_39A 引脚与接地引脚(GND),具体电路连接参考下图原理图:
示波器的连接方式如下图所示,探头分别接 IOT_39A 引脚与接地引脚(GND):
下方示波器截图显示,通过 B 接口排针的 IOT_39A 引脚与接地引脚(GND)所测得的片内 10 kHz 时钟信号波形:
ICE40 系列 FPGA(具体包括 ICE40 Ultra、ICE40 UltraLite 以及 ICE40 UltraPlus 型号)均集成了这一超低功耗 10 kHz 振荡器。该模块可用于物联网低功耗系统、持续运行场景,以及后台轮询任务 —— 这类应用能够让高功耗的主处理器保持掉电或休眠状态,从而降低系统整体功耗。
Lattice ICE40 UltraPlus FPGA 开发板是低功耗应用开发的理想平台,可在 DigiKey 平台采购。




