高频头锁频器LC72131锁相环调台方案 一、方案特色 本方案由单片机+锁相环电路芯片LC72131构成。 采用锁相环电路控制高频头调谐,杜绝了温度变化、电压波动引起的高频头频率漂移、跑台问题,锁定频率。 可以控制高频头、收音板调台。 用旋转编码器进行调台操作,既有传统旋钮调台的手感与乐趣,又有数字控制的快速与准确。 二、技术参数 ◆控制范围:调频87MHz—108MHz;调幅522KHz—1710KHz ◆调台步进值:调频50KHz/1MHz;中波9KHz/90KHz ◆八秒钟无调台操作时,自动存储记忆最后收听电台的频率 ◆有立体声/单声道切换端口(LCD显示版),静音控制端口(LCD显示版) ◆显示使用价格实惠的12864液晶屏或五位LED数码管显示 ◆工作电压:9V—12V。 三、版本 ◆LED版,5位LED数码管频显,单旋转编码器操作 ◆LCD版,12864LCD液晶屏显示,双旋转编码器操作 四、信息 烧录好程序的单片机芯片一片,空PCB一片,旋转编码器用PCB一片,硬件电路图一份,元件清单一份,使用说明一份,大家按图索骥在PCB上焊装好硬件,插上单片机芯片即可投入使用。

玩收音机的老炮儿都知道,最头疼的就是刚调准的电台突然飘了。这种跑台现象在温差大的环境里特别明显,我当年用老式收音机在东北过冬时,每天早上都得重新调台。直到接触到LC72131这颗锁相环芯片,才算真正解决了这个历史难题。

这个方案的灵魂在于单片机与LC72131的联姻。前者负责逻辑控制,后者专注稳频输出。电路板上最抢眼的是旋转编码器——就是那个能咔哒咔哒转的金属旋钮。别看它外形复古,内核可是数字化的精准操控。举个例子,当我们要跳频时:

// 旋转编码器中断处理
void EXTI9_5_IRQHandler(void) {
    if(EXTI_GetITStatus(EXTI_Line6) != RESET) {
        uint8_t state = GPIO_ReadInputDataBit(ENCODER_PORT, ENCODER_A);
        if(state != lastState) {
            if(GPIO_ReadInputDataBit(ENCODER_PORT, ENCODER_B)){
                frequency += step; // 顺时针增频
            } else {
                frequency -= step; // 逆时针减频
            }
            updatePLL(); // 更新锁相环
        }
        lastState = state;
        EXTI_ClearITPendingBit(EXTI_Line6);
    }
}

这段代码把机械动作转化为精准的0.05MHz步进(FM模式),比传统可变电容调谐精确两个数量级。实际操作时的手感很奇妙——既有老式旋钮的段落感,又能像数控设备那样指哪打哪。

高频头锁频器LC72131锁相环调台方案 一、方案特色 本方案由单片机+锁相环电路芯片LC72131构成。 采用锁相环电路控制高频头调谐,杜绝了温度变化、电压波动引起的高频头频率漂移、跑台问题,锁定频率。 可以控制高频头、收音板调台。 用旋转编码器进行调台操作,既有传统旋钮调台的手感与乐趣,又有数字控制的快速与准确。 二、技术参数 ◆控制范围:调频87MHz—108MHz;调幅522KHz—1710KHz ◆调台步进值:调频50KHz/1MHz;中波9KHz/90KHz ◆八秒钟无调台操作时,自动存储记忆最后收听电台的频率 ◆有立体声/单声道切换端口(LCD显示版),静音控制端口(LCD显示版) ◆显示使用价格实惠的12864液晶屏或五位LED数码管显示 ◆工作电压:9V—12V。 三、版本 ◆LED版,5位LED数码管频显,单旋转编码器操作 ◆LCD版,12864LCD液晶屏显示,双旋转编码器操作 四、信息 烧录好程序的单片机芯片一片,空PCB一片,旋转编码器用PCB一片,硬件电路图一份,元件清单一份,使用说明一份,大家按图索骥在PCB上焊装好硬件,插上单片机芯片即可投入使用。

显示部分提供了两种选择:五位LED像老式收音机那样只显示核心频率;12864液晶屏则能玩出更多花样。我更喜欢LCD版本的双编码器设计,一个调频率,另一个直接切换步进值:

// 步进值切换逻辑
void handleStepChange() {
    if(encoder2Dir == CW){ // 顺时针旋转第二编码器
        currentStepIndex = (currentStepIndex + 1) % sizeof(stepTable);
    } else {
        currentStepIndex = (currentStepIndex - 1 + sizeof(stepTable)) % sizeof(stepTable);
    }
    step = stepTable[currentStepIndex]; // 更新步进值
    LCD_ShowString(60, 3, "Step:%2dKHz", step*10);
}

硬件装配比预想的简单,PCB上丝印非常清晰。有个小技巧:焊接LC72131时最好先给引脚上锡,这个芯片的引脚间距比普通SOP封装更密。实测工作电压在9.6V时性能最优,超过12V虽然能工作,但高频头会轻微发热。

最实用的要数自动存储功能。代码里用了个看门狗定时器做倒计时,八秒无操作就触发保存:

// 自动存储任务
void autoSaveTask() {
    if(HAL_GetTick() - lastOperateTime > 8000) {
        saveToEEPROM(currentFreq);
        isMuted = false; // 解除静音
        __HAL_TIM_MOE_ENABLE(&htim3); // 恢复音频输出
    }
}

调试时建议先用AM波段,找个整点报时台当信号源。你会发现频率显示纹丝不动,不像某些DSP方案会有±2KHz的波动。这稳定性用来收短波SSB信号都绰绰有余,不过原设计没开放这个功能——或许留给DIYer自己魔改?

整套方案最让我惊喜的是立体声切换的硬件直通设计。不需要软件参与,用个物理开关就能切单声道,这在强干扰环境下特别有用。毕竟数字降噪再强,也比不上直接关闭立体声通道来得干脆。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐