历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2018年12月10日 | STM32 定时器输出方波的频率与PSC以及CNT的关系

2018-12-10 来源:eefocus

1.STM32F103的系统时钟最高频率是72MHZ 


2.STM32F103的定时器TIM 的CNT计数值最大为65535 

3.STM32F103的定时器TIM 的预分频 系数 PSC 的数值 = 72M / 定时器计数频率


因为CNT最大值为65535 所以, 这里有个问题, 当定时器计数频率太高的时候, 例如72M的计数频率. 


1秒钟最多有72000000个计数, 当计数到65535个的时候是 0.0009102083秒 也就是 1098.65HZ 


要想计数到1秒, 必须修改PSC,提高分频系数. 降低定时器计数频率


经过实际测量, STM32F103C8T6 最高输出方波的频率为18mhz. 再往上就无法输出了. 

(有可能是我这个示波器的问题, 我的是pc虚拟示波器最大才20m的采样频率. ) 


后来实验确定最高确实只能达到18mhz, 因为ARR为1, PSC为0 已经是最高了. 不可能再高了. 


估计STM32F4系列应该会更高一些吧.


下面列出了表格.


系统时钟频率 PSC 定时器计数频率 


最高输出方波频率 定时器计数频率(MHZ) 最低输出方波频率


72000000 0 72000000.00 72.00 1098.65

72000000 1 36000000.00 36.00 549.32

72000000 3 18000000.00 18.00 274.66

72000000 5 12000000.00 12.00 183.11

72000000 7 9000000.00 9.00 137.33

72000000 11 6000000.00 6.00 91.55

72000000 23 3000000.00 3.00 45.78

72000000 35 2000000.00 2.00 30.52

72000000 71 1000000.00 1.00 15.26

72000000 719 100000.00 0.10 1.53

void ChangCLK(uint32_t fclk )

{  

      float rfclk = fclk * 2 ;   //pwm波的频率是一高一低,两个才是一个周期,所以必须是两倍才能正常输出.同样频率的方波. 

        //重复计算,MaxCOUNT 和 TIME4_PSC 直到满足条件

        while(1)

        {  

                //TIME4_PSC + 1// 预分配需要72 但是要填71. 因为STM32器件就是这么规定的. 

                //计数频率   =  时钟主频 / 预分频系数 

                JiShuPinLv = TIME_ZhuPinLv / (TIME4_PSC + 1.0);


                //目标频率   =  计数频率 * 计数个数MaxCOUNT;

                //目标周期   =  1/目标频率;

                //计数周期   =  1/计数频率;


                //计数个数MaxCOUNT   =  目标周期 / 计数周期 

                //得

                //计数个数MaxCOUNT   =  (1/目标频率)  / (1/计数频率) 

                //MaxCOUNT =   (1.0 / rfclk) /  (1 / JiShuPinLv); 


                //这种做法, 不适合程序执行, 耗时又不准,简化推导过程如下

                //x = (1/a) / (1/b)

                //x * a = a * (1/a) / (1/b)

                //x * a = 1 / (1/b)

                //x * a = b

                //x = b/a


                //代入简化后

                MaxCOUNT = JiShuPinLv / rfclk;  



                if(TIME4_PSC == 0 || TIME4_PSC >= 65535) 

                {

                    break; //到极限了,下面就不要再计算PSC了

                }


                if(MaxCOUNT <= 2) 

                {

                    //计数周期大于目标周期, 那么减少预分频数值,提高计数频率

                    TIME4_PSC  = TIME4_PSC / 10;

                    if(TIME4_PSC > 0)

                    {

                        continue; //下一循环再调整 ,并同时重新计算MaxCOUNT

                    }

                }

                else if( MaxCOUNT>=65535)

                {

                    //计数值的范围不够了.那么增加预分频数值,降低计数频率 

                    TIME4_PSC  = TIME4_PSC * 10;

                    if(TIME4_PSC < 65535)

                    {

                        continue; //下一循环再调整 ,并同时重新计算MaxCOUNT

                    }


                }else{

                    //一般情况下都是直接退出.

                    break;  

                }


        }


        if(MaxCOUNT <= 2) {

              MaxCOUNT =2;//ARR不能等于0 否则就没有频率输出了.

        }else if(TIME4_PSC > 65536) {

                MaxCOUNT = 65536; 

        }


        TIME4->PSC = TIME4_PSC;

        TIME4->ARR  =   MaxCOUNT - 1;  //-1是 STM32 器件本身的特点,填入MaxINT-1才是真正的按照MaxINT运行.   //Period == ARR

        //TIME4->CNT  =  0;

        //TIME4->CCR1 =  0 ; //输出比较模式下这个寄存器控制初相位应该都为0, pwm模式才是控制的高电平周期


}


推荐阅读

史海拾趣

Exel Microelectronics Inc公司的发展小趣事

Exel Microelectronics Inc公司成立于XXXX年,当时正值电子行业的蓬勃发展期。然而,初创时期的Exel面临着重重困难。公司创始人XXX先生凭借对半导体技术的深刻理解和对市场趋势的敏锐洞察,带领着一支小团队,开始了艰难的创业之路。资金紧张、技术瓶颈、市场竞争激烈,每一个问题都考验着团队的凝聚力和毅力。然而,正是这些困难锻炼了Exel人的意志,使公司逐渐在市场中站稳了脚跟。

富捷(FOJAN)公司的发展小趣事

富捷电子在积极拓展国内外市场的同时,也注重品牌建设和市场推广。公司建立了遍及全球的销售网络,产品广泛应用于微电子、计算机、光伏、新能源、车载等众多新兴和高科技领域。通过参加国内外知名展会、举办技术交流会等方式,富捷电子不断提升品牌知名度和影响力。此外,公司还积极与上下游企业建立战略合作关系,共同推动产业链协同发展。

EG & G Inc公司的发展小趣事

近年来,电子行业面临着诸多变革和挑战,如技术更新换代加速、市场需求变化等。为了应对这些变革,EG & G Inc公司不断进行战略调整和业务优化。公司加大了对新技术和新产品的研发力度,同时注重提高生产效率和降低成本。此外,公司还积极探索新的商业模式和市场机会,以保持其在行业中的领先地位并实现持续发展。

以上五个故事概述了EG & G Inc公司在电子行业中的重要发展历程和关键事件。这些故事不仅展示了公司的实力和成就,也反映了其在不断变革的市场环境中保持竞争力和持续发展的能力。

Equator Technologies公司的发展小趣事

在XX年代中期,Equator迎来了一个重要的转折点——被Pixelworks公司收购。Pixelworks是一家在显示图像处理领域具有领先地位的公司,其产品线广泛,包括用于各种显示设备的图像处理芯片和软件。与Pixelworks的合并使Equator获得了更广阔的市场和资源支持,加速了其技术和产品的发展。合并后,Equator继续专注于视频处理技术的研发,并与Pixelworks共同推出了多款创新产品。

Diotec Electronics Corp公司的发展小趣事

在竞争激烈的电子行业中,Diotec始终保持对技术创新的追求。公司不断增加研发投入,引进先进的研发设备和人才,积极开发具有自主知识产权的新产品。这些新产品不仅丰富了公司的产品线,还进一步巩固了公司在市场中的领先地位。同时,Diotec还注重知识产权保护,通过申请专利等方式保护自己的创新成果。

FETek Technology(东沅)公司的发展小趣事

在半导体测试领域取得成功后,东沅并没有停止前进的步伐。他们开始关注新兴的电子行业趋势,并决定拓展新的业务领域。例如,他们开始研发和生产与电源管理相关的Power Mosfet产品,这些产品具有高效能、高可靠度和价格优势等特点,迅速在市场上占据了一席之地。此外,东沅还积极拓展射频和模拟芯片领域的研发和销售,为客户提供更全面的解决方案。

问答坊 | AI 解惑

浅谈PCB敷铜的“弊与利”

敷铜作为PCB设计的一个重要环节,不管是国产的青越锋PCB设计软件,还国外的一些Protel,PowerPCB都提供了智能敷铜功能,那么怎样才能敷好铜,我将自己一些想法与大家一起分享,希望能给同行带来益处。 所谓覆铜,就是将PCB上闲置的空间作为基准面, ...…

查看全部问答>

P430颅内出血检测设备的研制策略

P430颅内出血检测设备的研制策略1 引言 在中国有许多因创伤性颅脑损伤的患者急需抢救,但相当一部分颅内出血患者因未能及时诊断,延误了抢救和治疗时机.因而出现脑血肿或脑疝后压迫脑组织.使脑干和脑实质受到不可逆转的损伤。近红外颅内出血检测 ...…

查看全部问答>

UBS to RS232 转接线(PL-2303HX)的特性及应用电路

本帖最后由 paulhyde 于 2014-9-15 09:20 编辑 1.USB转串口线:   PROLIFIC推出了USB TO 类RS232接口转换芯片PL-2303HX,PL-2303HX可完美的应用于PDA、Modem、GPS、手机、数码相机、读卡机等与PC机的通讯电缆上,实际上很多手机的USB数据线就是 ...…

查看全部问答>

求内存检测技术原理

我是新手,最近毕业设计需要我了解内存检测的技术原理,我这里有相关函数名,可我不明白是什么意思,想请教高手能帮我详细解释下每个函数的功能,和具体实现方法,越详细越好。谢谢! 这是函数定义: int test_or_comparison(ulv *bufa, ulv *buf ...…

查看全部问答>

这样压缩X曲线的坐标

绘制图形时,有时需要压缩X轴但Y轴不变,我绘图是先绘制到设备上再拷贝到绘图控件上的,请问高手该这么解决…

查看全部问答>

wince中dll驱动加载后马上卸载了 ,如何解决

wince启动信息: Loaded symbols for \'E:\\WINCE420\\PUBLIC\\DIRVERTEST\\RELDIR\\EMULATOR_X86DEBUG\\SCANDLL.DLL\' Unloaded symbols for \'E:\\WINCE420\\PUBLIC\\DIRVERTEST\\RELDIR\\EMULATOR_X86DEBUG\\SCANDLL.DLL\' 可以发现SCANDLL. ...…

查看全部问答>

s3c6410 winCE6.0 IIC驱动冲突原因是什么

在http://blog.eeworld.net/knock/archive/2009/11/05/4771874.aspx 看到一文章说s3c6410 winCE6.0 IIC驱动读写冲突的原因是电源管理IC驱动也要通过IIC总线去读取电池电压和电流及充放电状态,这样混在一起,就出现了TX Time Out的现象。而关掉PMU ...…

查看全部问答>

isa总线 编程的问题

要作的一个题目是PC104总线上对一个PPGA板子进行控制,读写寄存器控制FPGA, 不知道怎么写啊,有没有哪位大虾帮帮阿。 谢谢了…

查看全部问答>

借人气寻一chip;

功能就是把19 v 稳压到3.3v 或3v, 给430 提供电源,情有经验的多说说几颗chip 型号 ,需要贴片的。 谢谢。…

查看全部问答>

【MSP430共享】七星单片机---MSP430

压缩包有四个文件,分别为: 1.MSP430x13x,MSP430x14x 混合信号微控制器 2.MSP430功能模块详解之--TimerA 3.MSP430寄存器详解系列之---AD 4.MSP430寄存器详解系列之--系统时钟   [ 本帖最后由 GONGHCU 于 2011-9-22 04:30 编辑 ...…

查看全部问答>