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

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

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. c#通过URL地址从服务器上下载文件

  2. android 语音识别

    Android中主要通过RecognizerIntent来实现语音识别,事实上代码比較简单.可是假设找不到设置,就会抛出异常ActivityNotFoundException.所以我们须要捕捉这个异常 ...

  3. jquery将form表单序列化常json

    var formData = {};$.each(form.serializeArray(),function(i, item){ formData[item.name] = item.value;} ...

  4. 《TomCat与Java Web开发技术详解》(第二版) 第六章节的学习总结 ---- JSP技术

    第六章主要介绍了JSP的相关知识. 1.JSP:是通过在HTML文件中加入java程序片段(Java Scriptlet)和JSP标记,就构成了JSP文件.JSP实质上是Servlet.JSP的API ...

  5. centos7设置ip

    centos7不能再通过setup命令来设置ip了,但可以通过修改网卡配置文件来设置ip 在/etc/sysconfig/network-scripts目录下找到网卡配置文件,修改之前内容如下 TYP ...

  6. Currency Exchange - poj 1860

    Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 22111   Accepted: 7986 Description Seve ...

  7. linux 上拷贝文件到windows 上 文件出现锁的文件

    要在linux上拷贝出文件到windows上,那么文件必须是777的最高权限. chmod wb_redis -R

  8. CardView的具体使用方法(转)

    转载自:CardView的具体使用方法  因为学习做此记录方便查找使用 今天主要是CardView的用法,CardView是在安卓5.0提出的卡片式控件.首先介绍一下它的配置. 在gradle文件下添 ...

  9. poj2075

    Tangled in Cables Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6348   Accepted: 2505 ...

  10. 【BZOJ4548】小奇的糖果 set(链表)+树状数组

    [BZOJ4548]小奇的糖果 Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的 ...