TMS320F280049C 学习笔记20 可配置逻辑块 (CLB) 例程_时雨晴天的博客-程序员信息网

技术标签: TI DSP学习  C2000  CLB  280049C  可配置逻辑块  


截止本文撰写时,TI共为280049C的CLB模块提供了17个例程,位置在C:\ti\c2000\C2000Ware_3_01_00_00\driverlib\f28004x\examples\clb
介绍它们的文档为[1]。
有些例程较为简单,有些则实现了复杂的功能。本文对每个示例的描述做了翻译,对于基本示例,翻译是完整的;对于其他示例,本文仅提供简单概括,具体内容请参考[1]。

基本示例

CLB 空工程

这个例子是一个空的CLB项目,包含生成“.OUT”目标二进制文件、模拟“.VCD”和HTML框图的后处理步骤。

示例7 状态机

[2][3]描述了如何使用CLB一步步地设计应用程序。此示例使用了CLB tile中的所有子模块来实现完整的系统。

示例8 外部与门

在本例中,来自两个gpio的外部信号通过输入X-BAR和CLB X-BAR传递到CLB TILE。在CLB模块内,这两个信号相与,然后使用输出X-BAR将与门的输出导出到GPIO。

示例9 计时器

在本例中,COUNTER模块用于创建定时事件。显示了GP寄存器的使用。通过设置/清除GP寄存器中的位,定时器被启动、停止或改变方向。计时器事件(1时钟周期)的输出导出到GPIO。使用HLC模块从计时器事件生成中断。在CLB ISR内切换GPIO状态。间接CLB寄存器访问用于更新计时器的事件匹配值和活动计数器寄存器以修改计时器的频率。

示例10 两种状态的计时器

在本例中,计时器的设置与前一个示例相同。区别在于使用FSM子模块切换CLB的输出,然后将其导出到GPIO。FSM模块充当一个单位内存块。中断的设置格式与前面的示例相同。通过比较CLB的输出和ISR中切换的GPIO,可以观察CLB的中断延迟。

示例11 中断标记

在本例中,计时器设置为两个不同的匹配值。HLC子模块使用这两个事件来生成中断。中断TAG用于区分由CLB计数器的match1事件和CLB计数器的match2事件产生的中断。

示例12 输出交集

在本例中,CLB模块的设置与外部与门示例相同。但是,不是使用输出X-BAR将输出导出到GPIO,而是通过替换ePWM1的输出将输出导出到GPIO。这是通过将GPIO配置为EPWM1A,然后启用输出取交集来完成的。

示例13 PUSH-PULL接口

在本例中,显示了PUSH-PULL接口的使用。使用多个计数器子模块、HLC子模块、FSM子模块和OUTLUT子模块。PUSH-PULL接口与GP寄存器一起使用,以更新计数器子模块的事件频率。

示例14 Multi-Tile

在本例中,CLB tile的输出传递给另一个CLB tile的输入。然后,第二个CLB tile的输出被导出到GPIO,显示两个CLB tile如何串联使用。

示例15 Tile to Tile 延迟

在本例中,GPIO的输出通过输入XBAR和CLB XBAR进入CLB tile。信号由tile转发到下一个tile。这次信号只通过CLB XBAR而不是输入XBAR。这样做是为了表明,当信号从一个tile传递到另一个tile时,延迟被添加,并且延迟没有被characterized。用户应始终避免在tile之间传递具有计时要求的信号。CLB内的计数器模块将按周期计算延迟量。

示例1 组合逻辑

本例的目的是防止在一个PWM对上同时产生高或低输出。PWM模块1和2被配置成基于固定频率递增计数模式生成相同的波形。

示例2 GPIO输入滤波器

此示例演示如何使用有限状态机(FSM)和计数器来实现简单的“故障”滤波器,例如,该滤波器可以应用于传入的GPIO信号以消除不需要的短脉冲。

示例3 PWM生成

此示例将CLB tile配置为辅助PWM生成器。示例使用组合逻辑(lut)、状态机(FSMs)、计数器和高级控制器(HLC)来演示使用CLB的输出PWM的能力

示例4 PWM死区保护

本示例扩展了示例1的特征,以确保高有效互补PWM配置始终以最小死区值运行,而不管生成的PWM模块是如何配置的。示例说明了四个单独的PWM tile的配置,以在四个PWM模块上实现PWM死区保护。

示例5 事件窗口

此示例使用CLB的计数器、FSM和HLC子模块来实现事件计时功能,该功能检测中断服务例程是否需要过长时间来响应中断。

示例6 信号生成和检查

本例使用CLB1生成矩形波,CLB2检查CLB1生成的矩形波是否超过定义的占空比和周期限制。

示例17 生成单脉冲PWM

此示例演示如何将CLB tile配置为单脉冲PWM发生器。该示例使用组合逻辑(lut)、状态机(FSMs)、计数器和HLC来演示在接收外部/软件触发器时的单脉冲PWM生成能力。

参考文献

  1. CLB Tool User’s Guide
  2. Designing With the C2000 Configurable Logic Block (CLB)
  3. 使用 C2000可配置逻辑块 (CLB) 进行设计
  4. 如何将 FPGA/CPLD 中的自定义逻辑迁移至 C2000微控制器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/whyorwhnt/article/details/105599386

智能推荐

适马20mm F2 DG DN 评测_m0_58402844的博客-程序员信息网

适马超广角镜头 20mm F2 DG DN,官方称这是一款针对无反相机设计的高品质紧凑型定焦镜头,同时也是适马 I 系列产品线的最新成员,实现了 F2 大光圈、20mm 的超广视角和令人惊叹的光学性能。适马20mm F2 DG DN更多使用评价和感受:http://www.adiannao.cn/dn适马表示,这是第四款具有 F2 光圈的 I 系列镜头,加入了 24mm、35mm 和 65mm 的阵营,且适配 L 卡口和索尼 E 卡口。20mm F2 DG DN 丨 Contemporary 外形小巧,

学习大数据开发需要读的书籍有哪些?大数据开发书籍推荐介绍_科多兽兽的博客-程序员信息网

学习大数据少不了平时的技术经验的积累,只有不断的积累才能在熟能生巧中精益求精。今天向大家推荐一批大数据书籍,大家可以在业余的时候阅读,加深对大数据的了解,分享给大家看看~1.数据之巅内容简介: 在《数据之巅》这本书中,从小数据时代到大数据的崛起,作者以宏大的历史观、文化观、大数据观,给我们描绘了一幅数据科学、智慧文化的全景图。全书从美国建国之基讲起,通过阐述初数时代、内战时代、镀金时代...

client-go入门之1:创建连接Kubernetes集群的客户端_祈晴小义的博客-程序员信息网

文章目录简介使用读取配置信息创建k8s客户端调用k8s api获取集群资源信息打印得到的资源信息简介我们可以使用Dashboard或kubectl来访问k8s的API,也可以使用编程语言,如Go,Java,Python作为客户端来访问k8s。client-go是一个使用go语言编写的库,用来连接k8s集群并对集群资源进行操作。使用以下代码使用go连上k8s集群,并查询集群的节点信息:package mainimport ( "fmt" metav1 "k8s.io/apimachinery

mysql创建数据库参数查询_MySQL 创建数据库_assassin chen的博客-程序员信息网

使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。实例以下命令简单的演示了创建数据库的过程,数据名为 TUTORIALS:[[email protected]]# mysqladmin -u root -p create TUTORIA...

Java菜鸟到大牛学习路线培训视频_weixin_33982670的博客-程序员信息网

百度网盘下载这是一套java菜鸟到大牛学习路线培训教程,由工作了10年的资深Java架构师整理。主要分5个阶段:Java程序员->Java初级软件工程师->Java中级软件工程师->Java高级软件工程师->Java系统架构师,从头学到尾即可成为大神!成为架构师是爱好编程的程序员的最终目标!第1阶段(Java程序员) - Java语言基础 - 1...

随便推点

自定义Realm实现认证_levonmo的博客-程序员信息网

一般自定义Realm继承AuthorizingRealm接口,当执行subject.login()时,程序就会将token传到自定义的Realmpackage com.mo.shiro.realm;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.Authenti

i春秋Web渗透测试工程师(初级)学习笔记(第三章)_draper-crypto的博客-程序员信息网

往期博客:i春秋Web渗透测试工程师(初级)学习笔记(第一章)i春秋Web渗透测试工程师(初级)学习笔记(第二章)第三章:HTTP协议3.1 HTTP的基本概念3.2 TCP/IP中的位置3.3 HTTP的请求和响应3.3.1 请求3.3.2 响应3.4 HTTP的报头3.5 抓包工具3.1 HTTP的基本概念HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。它是无状态的协议,

Linux 下autotools的使用_Wilson''的博客-程序员信息网_autotools linux

在linux环境下,你可能从github上拿到一份代码,只需要执行简单的步骤,就可以完成编译和安装,例如:./configuremakemake install你所执行的configure文件就是由autotools自动产生的,它同时自动产生Makefile文件供你编译和安装。下面,我们来一起学习一下如何使用autotools来编译生成自己的project:构建configure脚本...

iOS底层原理之GCD的任务与队列_henry_lei的博客-程序员信息网_ios 任务队列

GCD简介Grand Central Dispatch(GCD)是 Apple 开发的一个多核编程的解决方法。它是一套纯 C 语言的 API,主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。GCD的优点GCD支持多核并行计算GCD自动管理线程的生命周期(线程的创建、调起、等待、销毁)使用者只需告知GCD执行任务任务与队列任务任务即执行操作,就是线程中需要执行的代码。在GCD中就是放在block中执行的代码都是任务。任务分为同步任务

css样式:文字led效果(走马灯、轮播)_weixin_30715523的博客-程序员信息网

<marquee>标签,它是成对出现的标签,首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容。<marquee>标签的属性主要有behavior、bgcolor、direction、width、height、hspace、vspace、loop、scrollamount、scrolldelay等,它们都是可选的。behav...

flutter面试,一年后斩获腾讯T3,内含福利_A极客侠的博客-程序员信息网

开头从事Android开发工作多年,走过的弯和坎,经历的心酸难与外人道也。我个人感触最深的就是:选择大于努力。选择正确的方向,你才能够走的更远,更坚定。以前雷总说过,“在风口猪都能飞起来”。所以现在鸿蒙系统火了,很多开发者就想转去做鸿蒙。我们一直追逐风口,一直错过。几乎每换一个项目,程序员就要掌握新的技术:《NET单元测试艺术》《妙趣横生的算法(C语言实现)》《Android应用开发揭秘》……关于Android开发的书籍越看越多,好像学习了很多,但薪资和能力成长却十分有限。同行甚至有3年工作经验年

推荐文章

热门文章

相关标签