肚子疼了好几天,今天稍微好点,简单写点东西。

好几个月前做的项目,有些地方已经记不清楚了,但是突然客户又来问关于代码配置的情况,重新查看了代码,把相关的知识也整理一下。

dsp2812中有好几个时钟相关的配置。首先是系统时钟SYSCLKOUT=15MHZ*PLL(PLL可以在代码中进行修改)。

我的代码中将PLL设置成7,所以SYSCLKOUT=105MHZ

还有两个时钟是外设时钟,分别是高速外设时钟和低速外设时钟,它们分别由HISPCP和LOSPCP这两个寄存器来控制。

高速外设时钟用于事件管理模块(EVA、EVB)和ADC。

低速外设时钟用于串口(SCIA、SCIB)、spi和McBSP。

当前代码是基于dsp2812官方库开发的,在函数InitPeripheralClocks中定义了下面的内容:

   SysCtrlRegs.HISPCP.all = 0x0007;     //高速外设
SysCtrlRegs.LOSPCP.all = 0x0002; //低速外设

根据HISPCP寄存器的说明,当HISPCP最低三位为0时,高速外设时钟频率=SYSCLKOUT。

当HISPCP最低三位为其他值时,高速外设时钟频率=SYSCLKOUT/(2*HISPCP[2:0])

所以当前配置下的高速外设时钟频率= 105MHZ/(2*7)=105/14 MHZ

LOSPCP寄存器定义和HISPCP寄存器定义很类似,详细可以查看:http://bbs.dzsc.com/space/viewspacepost.aspx?postid=28614

其实当前代码的配置很有意思的,高速外设配置的频率反而比低速外设的频率要小很多。

代码中有一部分功能是用于产生PWM信号(默认是200KHZ),其代码初始配置如下:

    EvbRegs.EXTCONB.bit.INDCOE = ; //单独使能比较输出模式
EvbRegs.GPTCONB.all = 0x0024; //GP定时器4比较输出低有效
EvbRegs.T4PR = 0x0025; //定时周期为0.13us*(T1PR+1)
EvbRegs.T4CMPR = 0x0013;//GP定时器的比较寄存器,调整该值可调节占空比
EvbRegs.T4CNT = 0x0000; //定时器初值
EvbRegs.T4CON.all = 0x1042 //连续增计数,不分频,使能比较,打开定时器

关于pwm定时器的计算可以参考文章http://blog.sina.com.cn/s/blog_8680cd7d0100wmwa.html

由于T4CON=0x1042,所以其对应TCLKS(按最低位为1开始计算,TCLKS对应T4CON的4、5位)=0,故TCLK=HSPCLK

本代码PWM频率与EvbRegs.T4PR有关,由于使用了连续增计数,所以其频率=TCLK/(T4PR+1)=105MHZ/(14*(0x25+1))=105MHZ/(532)

=197KHZ,大致上等于200KHZ.

dsp2812 pwm配置的更多相关文章

  1. wiringPi库的pwm配置及使用说明

    本文介绍树莓派(raspberry pi)在linux c 环境下的硬件pwm配置及使用方法. 1. 下载安装wiringPi 此步骤建议参考官网指南,wiringPi提供了对树莓派的硬件IO访问,包 ...

  2. STM32F0xx_TIM输出PWM配置详细过程

    前言 前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形.直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq ...

  3. STM32基础问题分析——PWM配置

    STM32基础问题分析--PWM配置 在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X ...

  4. STM32基础分析——PWM配置

    在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X参考手册>的中文翻译可能容易造成 ...

  5. 不同频率下的pwm配置

    200k //PWM1 PWMPERDL1=0xb3; PWMPERDH1= 0x00; PWMCCNTL1=0x6B; PWMCCNTH1= ; PWMDBDY1=0x2B; //死区延时计时器 / ...

  6. [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)

    引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...

  7. 嵌入式davinci电路元素基础和PWM模块

    1,DAC_OUT和DAC_OUTB是AD9912输出的差分信号. 2,电容器储存电荷的能力,常用的单位是F.uF.nF.pFUF大了好还是UF小了好,要根据电路自身需要而设计, 要看电路滤波是在高频 ...

  8. Linux系统PWM驱动【转】

    本文转载自:https://blog.csdn.net/BorntoX/article/details/51879786 硬件平台:IMX6 内核版本:kernel3.0.35 在linux内核中有一 ...

  9. STM32 PWM的输出与Keil软件仿真

    导读:PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值). PWM控制技术在逆变电路中应用最广,应用 ...

随机推荐

  1. oc 把view添加到rootcontrollerview控制的view

    在当前活跃的window 添加一个view [[[[[UIApplication sharedApplication] keyWindow] rootViewController] view] add ...

  2. [ACM] HDU 5078 Osu!

    Osu! Problem Description Osu! is a very popular music game. Basically, it is a game about clicking. ...

  3. python char()和ord()

    通过help 查看相关函数的帮助文档 >>>help (chr) chr(...) chr(i) -> character Return a string of one cha ...

  4. day14—JQuery编程基础

    JQuery 1.什么是jQuery jQuery是一个优秀的JavaScript框架.一个轻量级的JavaScript类库.jQuery的核心理念是Write less.Do more. 使用jQu ...

  5. 局域网简单的SVN服务器的搭建

            最近组织在做一个比较大的项目,需要多人参与配合,经常会对项目文件增删查改,因此使用了SVN作为项目管理工具.但大家都很"盲",所以搭建SVN服务器的任务就落在了我这 ...

  6. mybaits返回插入成功后的自增值

    mybaits返回插入成功后的自增值 在项目中,我们经常遇到这样的情况:insert语句成功后,需要自增的id值,这个时候,我们可以通过mybatis的 useGeneratedKeys 来实现,具体 ...

  7. 【基础版限时免费】致敬WebForms,ASP.NET Core也能这么玩!

    ASP.NET WebForms ASP.NET WebForms 随着微软 2000 年的 .Net Framework 一起发布,至今也将近 20 年的时间.相信很多人和我一样,对 WebForm ...

  8. 【BZOJ3316】JC loves Mkk 分数规划+单调队列

    [BZOJ3316]JC loves Mkk Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整 ...

  9. POJ 1694 An Old Stone Game【递归+排序】

    链接: http://poj.org/problem?id=1694 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...

  10. hdu 2108 Shape of HDU【判断多边形是否是凸多边形模板】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2108 http://acm.hust.edu.cn/vjudge/contest/view.action ...