N12 arm-clk时钟

一、C语言

套接字:

  • 交换机:二层设备,基于 MAC 地址转发,只在同一网段工作,无路由能力;
  • 路由器:三层设备,基于 IP 地址转发,跨网段互联;
  • 网关:网络的 "出口点",路由器常充当内网的默认网关

URG:紧急指针有效。

作用 :标记数据包中包含紧急数据,需要优先处理,无需等待缓冲区满。

ACK:确认号有效

作用 :除了第一次建立连接的 SYN 包外,几乎所有 TCP 数据包都会置位 ACK,是

可靠传输的基础。

PSH:立即推送数据

作用 :要求接收方立即将数据推送给应用层,不要在缓冲区等待更多数据。

RST:重置连接

作用 :强制异常关闭连接,拒绝继续通信,清空所有缓冲区数据。

SYN:同步序列号(建立连接)

:用于建立 TCP 连接,发起方向接收方同步初始序列号(ISN)。

FIN:释放连接


二、arm时钟

输入时钟源(左侧 CLOCK SWITCHER)
  • PLL1 (建议996MHz):ARM PLL,专门给 CPU 内核提供高频时钟。内核 默认528Mhz
  • PLL2 (固定528MHz):系统 PLL,带 4 路 PFD 分频输出(352/594/400/200MHz),用于DDR、外设等。
  • PLL3 (固定480MHz):USB / 系统 PLL,带 4 路 PFD 分频输(720/540/508.2/454.7MHz),用于 AHB、IPG 等总线。
  • PLL4 (650MHz):Audio PLL,用于音频外设。
  • PLL5 (650MHz):Video PLL,用于显示 / 视频外设。
  • 还可旁路 PLL,直接使用 OSC 24MHz 或其他外部时钟。
关键寄存器控制
  • CBxMR 系列 :时钟源选择寄存器(如 CBQMR[PRE_PERIPH2_CLK_SEL]),用于选择多路输入中的一路。
  • CBCDR/CSCDR 系列 :时钟分频寄存器(如 CBCDR[AHB_PDF]),设置后分频系数。
  • CACRR:专门用于 ARM 时钟的分频控制。
  • cg:时钟门控位,用于关闭未使用模块的时钟以降低功耗。
  • **MUX:**复用选择,多路选择器,从多个输入时钟源中选择一路作为当前时钟路径的输入。
符号颜色 名称 位宽 分频范围 用途
灰色 Static Divider 固定 固定分频比(如 ÷2、÷4) 固定比例的时钟分频
深绿色 2-bit Divider 2bit 1~4(即 ÷1、÷2、÷3、÷4) 简单、少档位的分频
青色 3-bit Divider 3bit 1~8 中等范围分频
橄榄绿 6-bit Divider 6bit 1~64 精细、大范围分频(如外设时钟微调)
  • CCM:时钟控制器(Clock Controller Module)
  • CCM_ANALOG:模拟 PLL 锁相环控制器
  • PFD(PLL2) 频率 = 基准频率(528) × 18 / PFD_FRAQ
  • PFD(PLL3) 频率 = 480 × 18 / FRAC
cs 复制代码
void clk_init(void)
{
    //ARM clk 528
    CCM->CCSR &= ~(1 << 8);    
    CCM->CCSR |= (1 << 2);

    unsigned int tmp = CCM->CACRR;
    tmp &= ~(0x7 << 0);
    tmp |= (0x1 << 0);
    CCM->CACRR = tmp;

    tmp = CCM_ANALOG->PLL_ARM;
    tmp &= ~(0x3 << 14);
    tmp |= (0x1 << 13);
    tmp &= ~(0x7f << 0);
    tmp |= (88 << 0);
    CCM_ANALOG->PLL_ARM = tmp;
    CCM->CCSR &= ~(1 << 2);   // ARM PLL 528M 

    //PLL2 pfd0~3  352-27  594-16  400(396)-24 200-48
    tmp = CCM_ANALOG->PFD_528;
    tmp &= ~((0x3f << 0) | (0x3f << 8) | (0x3f << 16) | (0x3f << 24));
    tmp |= ((27 << 0) | (16 << 8) | (24 << 16) | (48 << 24));
    CCM_ANALOG->PFD_528 = tmp;

    //PLL33 pfd0~3  720-12  540-16  508.2-17  454.7-19
    tmp = CCM_ANALOG->PFD_480;
    tmp &= ~((0x3f << 0) | (0x3f << 8) | (0x3f << 16) | (0x3f << 24));
    tmp |= ((12 << 0) | (16 << 8) | (17 << 16) | (19 << 24));
    CCM_ANALOG->PFD_480 = tmp;

    //AHB_CLK_ROOT  132M
    tmp = CCM->CBCDR;
    tmp &= ~(0x7 << 10);
    tmp |= (0x2 << 10);
    tmp &= ~(0x1 << 25);
    tmp &= ~(0x3 << 8);
    tmp |= (0x1 << 8);   //IPG_PODF   1/2  66M
    CCM->CBCDR = tmp;

    tmp = CCM->CBCMR;
    tmp &= ~(0x3 << 18);
    tmp |= (0x2 << 18);
    CCM->CBCMR = tmp;

    //PERCLK_CLK_ROOT 66M
    CCM->CSCMR1 &= ~(0x7f << 0);

    clk_gate_allenable();
}

三、定时器相关

EPIT:Enhanced Periodic Interrupt Timer(增强型周期性中断定时器)

向下递减

就是芯片里一个专门用来定时、产生中断的外设

  • Counter Register (32bit) :32 位倒计时计数器,你标注的 100 就是它的初始值,会在每个预分频时钟 沿减 1,直到减到 0
  • Load Register (32bit) :32 位重载寄存器,你标注的 10 是它的值。当计数器减到 0 时,会自动把这个值重新加载到计数器,开始下一轮倒计时。
  • Compare Register (32bit) :32 位比较寄存器,通常设为 0,当计数器值等于比较值时触发比较事件。
  • Prescaled Clock:经过分频后的时钟,是计数器递减的驱动节拍。
相关推荐
阿标的博客9 小时前
Active Directory 组织单位和用户
服务器
一名普通的电源工程师9 小时前
E0512XT-1WR3 适配优选 钡特电源 DF1-05D12XT|1W 隔离5V转±12V模块电源选型参数技术解析
大数据·网络·人工智能
Deryck_德瑞克10 小时前
【Nginx】配置差异分析
服务器·前端·nginx
2301_7807896610 小时前
零信任时代:WAF 从边界防护到微隔离的架构跃迁
网络·安全·web安全·kubernetes·ddos
前端 贾公子10 小时前
第06章:结构化输出 (上)
java·服务器·前端
Yang961110 小时前
自动化射频测试台快速搭建,鼎讯信通 DXSL 矢量信号源模块二次开发集成指南
运维·自动化
一只小菜鸡..11 小时前
南京大学 操作系统 (JYY) 学习笔记:持久化的黑魔法——从磁铁、刻坑到闪存电荷
服务器·笔记·学习
翼龙云_cloud11 小时前
腾讯云国际站代理商: COS 对象存储 + CDN加速 从创建到加速完成
运维·服务器·云计算·腾讯云
牛马工作号11 小时前
蓝牙技术全景指南:从无线链路、协议栈到产品量产
网络
中电华星11 小时前
专业的工业电源公司
网络·python