![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DSP使用经验
文章平均质量分 61
湖心水动影无双
这个作者很懒,什么都没留下…
展开
-
Ti的C28x系列的DSP使用经验,如何整合DSP中运行的函数。
我从事Ti的C28x系列的DSP的开发时间不长,短短一年,使用过两种架构的DSP,主要针对资源管理有一些自己的心得。 在工程文件的分布上,本人认为需要DSP运行的的代码应该放在一个.C文件中管理,这样整个工程的代码结构就非常清晰了,查找问题,也容易定位。这个.C我们可以称之为UsrApp.C,包含4个函数,初始化函数,主中断函数,1ms定时器中断函数,主循环函数。代码如下:...原创 2018-08-30 16:28:19 · 1456 阅读 · 0 评论 -
Ti的C28x系列的DSP(28069)(28377D)使用经验,PWM经验
笔者之前从事的是电力电子行业,如果说ADC是整个逆变器的输入,那么PWM就可以说是整个逆变器的输出了。在ADC与PWM之间,就是数据处理和算法了。笔者百度了下,脉宽调制(PWM)基本的原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。一般工程的底层代码搭建好之后,大部分应用程序中用到的PWM功能可以用以下三个函数表示...原创 2018-09-13 16:40:25 · 12930 阅读 · 3 评论 -
Ti的C28x系列的DSP(28377)(28069)使用经验,WatchDog代码
其实笔者没有在项目中使用过看门狗这个功能,最近看了一些历史上因为软件Bug而导致的严重事件,笔者个人觉得看门狗这个功能还挺重要的,如果读者有机会用到,可以尝试下面的函数,具体函数的功能笔者还没测试过,是根据2812的看门狗改过来的。DSP_28377D的看门狗代码如下: void ServiceDog(void) { EALLOW; WdReg...原创 2018-09-13 14:56:54 · 3681 阅读 · 0 评论 -
Ti的C28x系列的DSP(28069)(28377)使用经验,ADC经验
笔者使用过的项目中,使用的ADC都是DSP的片内ADC,使用片内ADC的好处是,转换速度快,节约成本,这是相比片外ADC的优势。DSP_28069的ADC精度是12位,DSP_28377D的ADC精度可以选择为12位,也可以选择为16位,笔者这里采用的是12位,两种DSP的采样模式都是单端模式。DSP的ADC采样精度和参考电压有很大的关系,一般选择外部参考电压,参考电压一定要加RC滤波电路...原创 2018-09-13 14:34:15 · 16147 阅读 · 8 评论 -
Ti的C28x系列的DSP(28069)(28377D)使用经验,逆变器的状态机使用经验
什么是状态机,状态机就是状态转移图,我们把系统表现的行为,描述成几种状态,系统的行为就是在几种状态中相互转移,而状态转移需要触发条件。比如人有三个状态:健康,生病,恢复。触发条件有:受凉、吃药、休息等。为什么需要状态机呢,笔者个人认为第一点应该是基于安全考虑,确保系统的状态能够被用户明确知道,第二点,是状态机,能够根据用户的指令,代替用户完成繁琐的操作,这是因为状态机能够根据触发条件自行判断、...原创 2018-09-07 17:40:59 · 3131 阅读 · 0 评论 -
Ti的C28x系列的DSP(28069)(28377D)使用经验,CAN通讯经验(2)
在一个项目中,笔者接触过这样一个通讯系统,整个系统的通讯架构大概如下图,典型的一主多从。如果Slave_N的N超过10,那这样一个通讯系统还是比较复杂的。笔者认为要这套系统有以下几点需要考虑:1、通讯故障处理(1)如果整个系统中,主机或这从机出现通讯故障,此时应该怎么处理?笔者目前的做法是,每个DSP的CAN的收发函数,首先有一个故障检测,一旦检测到故障,则CAN停止收发数...原创 2018-09-05 11:09:01 · 8601 阅读 · 0 评论 -
Ti的C28x系列的DSP(28069)(28377D)使用经验,CAN通讯经验(1)
笔者在项目中同时使用过两种DSP,一种是28069,另一种是28377D,这两个DSP主要是进行CAN通讯功能,完成整个系统的非实时通讯功能。今天笔者主要想讨论的是28069与28377D的CAN外设,这两个DSP虽然都是Ti的,但CAN外设的架构却不相同,寄存器设置也不相同。打开28069参考手册,你会发现CAN的架构是下图中的这个样子:然后我接着看了其他的C28x系列的DSP比...原创 2018-09-04 16:00:35 · 9526 阅读 · 0 评论 -
Ti的C28x系列的DSP(28069)使用经验,SPI通讯经验
本人使用SPI通讯经验不多,当初是为了实现DSP与FPGA之间的通讯,DSP在SPI通讯中作主机,SPI数据位数为16位模式。SPI的原理我不多说了,我对这种通讯的方式理解,这是一种高速通讯,同时还有个特点,就是接收了多少位数据的同时意味着发送了多少位数据,比如你希望接收2个字节的数据,那么你应该发送2个字节的数据,发送数据就意味着接收数据,接收数据就意味着发送数据,关键看你需要的是接收还是发送的...原创 2018-08-31 15:45:08 · 8534 阅读 · 5 评论 -
Ti的C28x系列的DSP(28069)使用经验,SCI与RS485(ADM2587EBRWZ)
本人使用SCI的通讯经历也不多,仅仅是用于DSP与威纶通公司的触摸屏进行过简单的通讯,通讯方式为RS485,通讯协议为ModbusRTU。说到SCI,一开始我弄这个的时候,也不懂,网上看了很多资料,但也没有特别合适的,我现在公司的DSP的代码架构,都是一个主中断,一个主循环,一个1ms定时器中断,所以通讯函数,要么放主循环或1ms中断中运行,不会为SCI单独弄个中断,但我这边也不想用《手把手教...原创 2018-08-31 15:03:33 · 6964 阅读 · 3 评论 -
Ti的C28x系列的DSP(28069)使用经验,I2C与EEPROM(AT24C256C)
本人正式使用I2C的经历只有一次,使用EEPROM是为了实现DSP的RAM中的变量断电后仍不会丢失的目的。这可能不是一个恰当的比喻。下面我来详细描述EEPROM的过程。项目中使用的EEPROM的型号为AT24C256C,擦写次数约为100万次,内存约32768 字节。项目中实际DSP需要写入的EEPROM中的字节,约100个。项目中的系统大概类似下图:其他设备在DSP运行时通...原创 2018-08-31 13:55:43 · 10511 阅读 · 6 评论 -
Ti的C28x系列的DSP(28069)(28377D)使用经验,CMD文件
笔者接触CMD文件,是为了要把程序固化到FLASH中。在项目的一开始,笔者接触的代码都是开发板上零碎的例程,程序都是烧写到RAM里的,后来为了项目,笔者开始自学CMD文件,最终完成整个项目代码的开发,固化程序到FLASH中仅仅是项目代码开发中的一个小步骤。笔者首先在这里就简单地说下对FLASH与RAM的理解(如果有误,麻烦指出),网上对于FLASH与RAM有很详细的区分,有兴趣的读者,可以自行...原创 2018-09-14 11:27:09 · 4749 阅读 · 0 评论