0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DSP编程的几个关键问题(1)

454398 来源:罗姆半导体社区 作者:罗姆半导体社区 2022-12-27 15:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:罗姆半导体社区

DSP芯片凭其优异的性能在高速计算领域有着巨大的应用前景。但其应用所涉及的知识非常庞杂。当程序调不通不知该从何处下手时,此文也许会有所帮助。

1. McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理

在实际通信应用中,一个突发之后,程序必须为下一个突发作准备。因此一般采用串口的DMA多帧方式但在串口以DMA方式传输数据时却有一些问题要讨论。首先DMA的传输同步事件应设McBSP的传输事件即XEVT,这样一字节传输后会自动准备另一字节(McBSP的READY上升沿触发DMA传输)。中断发生时意味着一个块已传完,这时DMA的使能自动关闭,McBSP的READY将一直保持高状态。但是在下一次突发传输直接使能DMA时却启动不了传输(相信会有许多我遇到此类问题)。这是因为无法产生McBSP触发启动所需的READY上升沿。解决办法是在中断程序中先关闭McBSP的发送,使READY=0,随后在程序中发送使能DMA,再打开McBSP的发送即可。如先打开McBSP的发送后打开DMA,也是不会工作的。因为McBSP的READY已经由0变到1了,无法再产生READY上升沿。

2. 关闭DMA与关闭McBSP的区别

在通信领域,为了充分利用DSP的片上外设资源,常常利用DMA把从串口来的数据或要发的数据放入缓冲区,再处理。对DMA而言,只要其在数据缓冲区的指针指向了中断应发生的位置,就产生中断。但此时最后一个数据只是进入了McBSP而并未真正发出去,所以在传送结束的中断程序中只能关闭DMA不能关闭McBSP。因为此时McBSP的发寄存器DXR中还有一个字没有发出。

3 .McBSP串口配置的关键时序

主要是寄存器SPCR2的配置:在保持RRST、XRST、FRST各位为0的前提下,配置好其它串口控制寄存器。等待至少2个CLKR/T时钟以确保DSP内部的同步。 (1)可以向DXR装载数据或使能DMA。 (2)使能GRST(GRST=1)(如果需要DSP内部产生采样时钟)。 (3)使能RRST或XRST,注意此时要保证SPCR中仅有此一位发生改变。 (4)使能FRST(FRST=1)(如果需要DSP内部产生帧同步)。 (5)等待2个R/T CLK时钟周期后,收或发端便会有效。

4. 汇编语言程序中的变量

汇编语言程序中的公用变量应在文件中定义,如.def carry。汇编语言程序中使用的局部变量不需定义,可直接声明,例如trn_num .word 00h。如果在两个asm文件中有两个都没有定义的同名变量,则编译程序会认为分他们不是同一变量。在汇编程序的开头应有.mmregs宏语句。它一方面表示对默认定义的确认(ah,bh,trn等),另一方面可以对所用寄存器重新定义。如: .mmregs DMPREC .set 54h ;定义DMA优先和使能寄存器地址在54h DMSA .set 55h DMSDN .set 57h DXR10 .set 23h ;定义串口1的发送寄存器地址在23h。

5. ST1寄存器中CPL位的影响

CPL位是编译模式控制位,它表示在相对直接寻址时采用哪种指针。当CPL=0时,使用页指针DP;当CPL=1时,使用堆栈指针SP。实际使用中二者没有什么差别,但使用SP寻址的程序更易读。在程序中经常使用CPL=1。

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    561

    文章

    8275

    浏览量

    368207
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97434
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    延迟为什么会成为量子计算的关键问题

    量子计算的发展,正在遇到一个看起来并不在量子处理器上的瓶颈——延迟。
    的头像 发表于 03-28 13:38 999次阅读

    AI辅助软件测试:几个关键路径

    软件测试是保障质量的关键环节,但测试用例设计耗时、覆盖分析繁琐、自动化脚本维护成本高等问题,一直困扰着测试团队。大语言模型的出现,为测试工作提供了一种新的辅助手段。这里从几个实践角度,聊聊AI如何在
    的头像 发表于 03-23 15:34 147次阅读

    电机容易忽视的有哪几个问题?

    在工业生产和日常生活中,电机作为核心动力设备广泛应用于各类机械系统中。然而,许多用户在使用过程中往往忽视了一些关键问题,导致电机寿命缩短、效率下降甚至引发安全隐患。
    的头像 发表于 03-13 16:56 602次阅读

    深入解析 CDCE949-Q1:可编程 4-PLL VCXO 时钟合成器

    深入解析 CDCE949-Q1:可编程 4-PLL VCXO 时钟合成器 在电子设计领域,时钟合成器是确保系统稳定运行的关键组件。今天我们来深入剖析 Texas Instruments(TI)推出
    的头像 发表于 02-09 11:45 427次阅读

    NPM1304的主要几个功能

    低静态电流,支持自动 Hysteretic 模式,在 1 µA 负载电流下仍保持高效率 [nPM1304 产品页; 关键特性] 燃料计(电量估算) 监测电池电压、电流和温度 配合 nRF
    发表于 01-31 21:25

    施耐德电气深入解读电子行业电力安全与质量管理的关键问题

    电力安全与质量管理,已成为电子企业能否稳定运行、提升良率、实现可持续发展的关键所在。
    的头像 发表于 01-19 15:15 684次阅读

    FPGA DSP模块使用中的十大关键陷阱

    FPGA 芯片中DSP(数字信号处理)硬核是高性能计算的核心资源,但使用不当会引入隐蔽性极强的“坑”。这些坑不仅影响性能和精度,甚至会导致功能错误。以下是总结了十大关键陷阱及其解决方案,分为 功能正确性、性能优化、系统集成 三个层面。
    的头像 发表于 01-13 15:18 613次阅读

    闲置一个dsp5509,能做点什么项目?

    如题,清理旧物找出来一块大学时代的dsp5509 永腾家的,全套都在,挂平台也几个月了无人问津,不如自己做点小项目玩吧。有没有推荐的 板载资源看起来蛮反复的。有没有啥推荐的开源的项目能突出dsp的优势,学习学习。
    发表于 01-06 09:57

    关键字volatile的含意

    地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1:并行设备的硬件寄存器(如:状态寄存器) 2:一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 3:多线程应用中被
    发表于 12-23 06:33

    太阳光模拟关于UV紫外老化测试的七个关键问题

    性能。下文,紫创测控luminbox将深入探讨UV太阳光模拟器在老化测试中的应用,针对实践中常见的关键问题提供专业的解答。什么是UV老化测试?luminbox耐紫外
    的头像 发表于 11-24 18:02 1348次阅读
    太阳光模拟关于UV紫外老化测试的七个<b class='flag-5'>关键问题</b>

    DSP的基础

    高速数字信号处理技术是以DSP为核心,具有高速,实时的特点的一种信息处理技术。其本质是信息的变换和提取。DSP(Digital Signal Processor),即数字信号处理器,是一种专用
    发表于 11-20 06:35

    选串联电抗器总踩坑?这些关键问题你真的懂吗?

    关键问题。首先要搞清楚的是“电抗率”——这是串联电抗器的核心参数,却常被用户忽略。很多人买电抗器只看功率,觉得功率匹配就行,根本没算过电抗率。实际上,不同谐波对应的电
    的头像 发表于 09-01 14:51 967次阅读
    选串联电抗器总踩坑?这些<b class='flag-5'>关键问题</b>你真的懂吗?

    开发单片机需要学习什么?软件编程的 4 个关键层次

                        开发单片机需要学习什么?软件编程的 4 个关键层次 单片机的 “智能” 全靠软件实现,编程技能需从基础语法逐步进阶到复杂逻辑,每个层次对应不同的开发需求
    的头像 发表于 08-25 11:32 1067次阅读

    深入理解C语言:函数—编程中的“积木块”艺术

    编程的世界里,函数就像建筑中的“积木块”——它们是构建复杂程序的基石。通过灵活组合这些模块,开发者能打造出功能强大且结构清晰的代码。函数之所以成为C语言的核心,正是因为它解决了编程中的三大关键问题
    的头像 发表于 06-30 17:26 2032次阅读
    深入理解C语言:函数—<b class='flag-5'>编程</b>中的“积木块”艺术

    分析智慧园区建设的关键问题

    智慧园区作为城市数字化转型的重要载体,在快速发展的同时面临着多重挑战,其建设过程蕴含着深远的产业变革意义。本文将从制约因素和发展价值两个维度,系统分析智慧园区建设的关键问题。 一、智慧园区发展的主要
    的头像 发表于 05-27 11:22 624次阅读