news 2026/7/21 17:47:15

DSP 28377 锁相环代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DSP 28377 锁相环代码

dsp 28377 锁相环代码

半夜调试电机控制板的时候,最怕遇到时钟信号飘得亲妈都不认识。DSP 28377这货的锁相环配置说难不难,但手册里那些寄存器名字看得人眼晕。今天咱们直接扒开TI官方例程的裤衩,看看PLL到底怎么驯服。

先甩个祖传配置函数镇楼:

void InitPll(void) { volatile uint32_t i; // 先解除PLL的封印 SysCtrlRegs.PLLSTS.bit.MCLKSTS = 0; SysCtrlRegs.PLLSTS.bit.CLKSLIP = 0; // 切到安全模式 SysCtrlRegs.PLLCR.bit.PLLEN = 0; DELAY_US(100UL); // 老司机都懂的玄学延时 // 上硬菜——倍频系数 SysCtrlRegs.PLLCR.bit.DIV = 10; // 输入时钟×20 while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1) { // 死等锁相环上锁,此处适合点根烟 } // 切回PLL模式 SysCtrlRegs.PLLSTS.bit.MCLKCLR = 1; DELAY_US(100UL); // 再来个延时保平安 }

重点来了,那个神秘的DIV值可不是随便填的。手册第183页偷偷写着计算公式:SYSCLK = (InputClk × [DIV+1])/2。假设外部晶振是10MHz,套用公式就是(10*(10+1))/2=55MHz?大兄弟你数学是体育老师教的吧?TI工程师在这儿埋了个坑——实际DIV寄存器值要减1!所以想得到200MHz主频的话,正确姿势是:

// 200MHz = (10MHz * (20 × 2)) SysCtrlRegs.SYSPLLMULT.all = 19; // 骚操作在这里

调试时最刺激的莫过于手滑配置错时钟。有次我把DIV设成20,结果DSP当场表演死机绝活。后来用示波器抓OSCIN信号才发现,PLL锁不住的时候,时钟信号抖得像帕金森。这时候要在while循环里加个超时检测:

uint16_t timeout = 0; while((SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1) && (timeout < 5000)) { timeout++; DELAY_US(10); } if(timeout >= 5000) { ESTOP0; // 直接断头台伺候 }

最后说个冷知识:修改PLL配置后,记得把flash等待周期调了。不然程序跑起来比树懒还慢。官方例程里藏着这么段代码:

FlashWdtRegs.FBAC.bit.WAIT = 0x1; // 200MHz对应1个等待周期

时钟配好了别急着收工,拿CCS的寄存器观察窗口瞅瞅PLLSTS寄存器的LOCK位是不是稳如老狗。要是看到CLKSLIP位突然置1,八成是电源纹波太大——这时候该换电容还是改layout,自己看着办吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 6:16:03

SQL 注入基础:手工注入流程(判断注入点→爆库→爆表→爆数据)

目录 合规免责声明 手工注入核心流程 一、为什么要学手工 SQL 注入&#xff1f; 二、前置准备&#xff1a;靶场环境配置 2.1 环境要求 2.2 核心原理铺垫 三、手工注入全流程实战&#xff08;6 大步骤&#xff09; 步骤 1&#xff1a;判断注入点 —— 确认漏洞是否存在 …

作者头像 李华
网站建设 2026/7/20 14:11:14

【PHP 8.6 JIT性能迷局】:为什么你的FPM进程吃掉2GB内存?

第一章&#xff1a;PHP 8.6 的 JIT 内存占用PHP 8.6 即将引入对 JIT&#xff08;Just-In-Time&#xff09;编译器的进一步优化&#xff0c;但随之而来的内存占用问题也引起了开发者关注。JIT 在提升执行效率的同时&#xff0c;会将部分 PHP 脚本编译为原生机器码&#xff0c;这…

作者头像 李华
网站建设 2026/7/20 10:13:47

RIGOL示波器自研ASIC芯片在DS4000系列中的应用

在高端示波器领域&#xff0c;ASIC&#xff08;Application-SpecificRIGOL示波器IntegratedRIGOL示波器Circuit&#xff0c;专用集成电路&#xff09;芯片的应用已经非常普遍。ASIC芯片可以针对特定应用进行优化设计&#xff0c;从而在性能、功耗和成本等方面实现最佳平衡。近年…

作者头像 李华
网站建设 2026/7/20 17:17:39

农业IoT系统总是掉线?,PHP设备心跳机制设计全解析

第一章&#xff1a;农业IoT系统总是掉线&#xff1f;PHP设备心跳机制设计全解析在农业物联网&#xff08;IoT&#xff09;系统中&#xff0c;传感器设备常部署于偏远农田或温室环境&#xff0c;网络稳定性差、供电波动大&#xff0c;导致设备频繁掉线。若缺乏有效的在线状态监控…

作者头像 李华
网站建设 2026/7/20 20:56:33

Python编程实战:从类与对象到设计优雅代码

「编程类软件工具合集」 链接&#xff1a;https://pan.quark.cn/s/0b6102d9a66a 一、为什么需要面向对象编程&#xff1f; 想象你正在开发一个电商系统&#xff0c;需要管理商品、用户和订单。如果用过程式编程&#xff0c;代码会变成这样&#xff1a; # 过程式电商系统示例…

作者头像 李华
网站建设 2026/7/20 17:21:52

Laravel 13多模态权限架构深度解析(企业级安全控制方案)

第一章&#xff1a;Laravel 13多模态权限架构概述在现代 Web 应用开发中&#xff0c;权限管理是保障系统安全的核心环节。Laravel 13 引入了多模态权限架构&#xff0c;支持基于角色、策略、门面&#xff08;Gates&#xff09;和策略类&#xff08;Policies&#xff09;的复合权…

作者头像 李华