画出DSP外扩4路D/A硬件飞跃电子管收扩电路图图?

基于DSP芯片TMS320LF2812 DSP的扩展板硬件电路设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于DSP芯片TMS320LF2812 DSP的扩展板硬件电路设计
上传于||文档简介
&&光​伏​ ​控​制​ ​ ​M​P​P​T
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩46页未读,继续阅读
你可能喜欢 上传我的文档
 下载
 收藏
趁阳光正好,趁微风不燥,趁现在的双手还能拥抱彼此,趁我们还能呼吸
 下载此文档
正在努力加载中...
基于DSP实现对倒立摆的控制土
下载积分:1250
内容提示:基于DSP实现对倒立摆的控制土
文档格式:PDF|
浏览次数:0|
上传日期: 18:26:43|
文档星级:
该用户还上传了这些文档
基于DSP实现对倒立摆的控制土
官方公共微信基于DSP的视频监控系统硬件电路设计
日 17:10 来源:互联网 作者:秩名 (0)
  目前视频监控广泛应用于安防监控、工业监控和交通监控等领域。视频监控系统大致经历3个阶段:首先是基于模拟信号的电视监控系统,其功能单一、易受干扰且不易扩展;随后出现基于PC机的图像监控系统,其终端功能较强.但价格昂贵,稳定性差;近年来,随着嵌入式技术成熟,嵌入式视频采集处理系统具有可靠性高、速度快、成本低、体积小、功耗低、环境适应性强等优点。
  视频信号处理电路
  本设计采用SONY公司专用信号处理器件CXD3142R作为信号处理器。CXD3142R是专用于对Ye,Cv,Mg和G补色单片CCD输出信号进行处理的低功耗、高效率的信号处理器;具有自动曝光和自动白平衡功能,可同时输出复合视频信号和YUV 8位数字信号输出。内部集成9位A/D转换器同步信号产生电路、外部同步电路和时钟控制电路。此外,CXD3142R还具有串口通信功能,用户可在PC机中预先设定好DSP中的寄存器值,通过串口下载到DSP,并对图像信号进行自动曝光和自动白平衡等处理。图2为视频信号处理模块电路连接图。
  图 2中,H1,H2,XVl,XV2,XV3,XV4是CCD图像传感器的时序驱动信号,EEPROM用来存储DSP初始化的寄存器值。D0~D7是YUV 数字信号。其具体工作流程:将CCD图像传感器采集的模拟信号经CXA2096N进行相关预处理后,相应数字信号经VIN引脚传给 DSP(CXD3142),DSP接收数字信号后,利用其内部AE/AWB检测电路、同步信号产生电路、外同步电路以及相关算法对其进行相关处理,处理完成后在行(H引脚)、场(V引脚)信号及时钟信号(PCLK)的控制下将8位数字信号经过D0~D7引脚传给FPGA模块进行相关处理。通过引脚SCK、 SI、SO、XCS串口通信,通过CSROM、CASI、CSASO、CASCK引脚与外部EEPROM通信,实现DSP相关的初始化。此外,IO引脚输出经DSP处理过的复合视频信号,通过相关接口直接在CRT显示器上显示图像处理结果。
  外围接口模块
  本设计支持RS-232C串口通信。但该串口通信需把3.3 V逻辑电平转化成RS-232C标准电平。因此采用SP3232E系列器件完成电平转换。SP3232E可从+3.0~+5.5 V的电源电压产生2Vce的RS-232C电压电平。该系列适用于+3.3 V系统。SP3232E器件的驱动器满载时典型数据速率为235 kb/s。图4为系统设计的接口电路图。
  需要注意的是,由于采用SP3232E器件,其驱动能力有限,该接口电路只适用于近距离传输。如果要进行远距离传输,则必须加强信号传输能力。
相关技术文章:
相关资料下载:
上周热点文章排行榜
上周资料下载排行榜
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
创新实用技术专题
现在的计算机应用中,包括许多非常机密的文件保护,大都使用用户...查看: 1049|回复: 0
DSP外扩SRAM的应用测试心得体会
DSP的硬件测试说明:
图1-1&&Code Composer Studio 6.0.0.00190 C/C++开发环境
硬件平台基于TMS320F28335芯片,软件平台基于TI的Code Composer Studio 6.0.0.00190 C/C++开发环境,如图1-1所示。
工作进度说明:
&&1.完成了DSP外扩SRAM的硬件的完整测试,通过修改TI官方的.cmd文件和库函数调用,
可以将FLASH中的函数复制到外部SRAM中运行,大大提高DSP程序的运行速度,附有详细说明。
2. 完成了RS485的驱动编写及应用测试。
3.利用官方的ADC_DMA、I2C例程,完成ADC和EEPROM的测试,整合了ADC_DMA例程。
4.CAN通讯和转速中断的代码公司已有,未整理。
5.DSP内置的看门狗模块已开启。
一、DSP扩展的外部SRAM应用说明(已测试完毕)
前言: DSP可以工作中150MHz的频率下,为了发挥其高速运行的特性, 一般会将
FLASH程序内容复制到外部高速SRAM中运行,TMS320F28335内部有34K X 16bit的SRAM,
TI将内部SRAM分成了多块(见F28335.cmd)。
一般的程序在内置FLASH中运行,程序在FLASH中的运行速度由FLASH的读取速度决定,
如果没有采用FLASH的加速技术,一般需要设置等待时间。 要想使程序高速运转,
最少要扩展一块SRAM 来高速运行DSP算法或中断函数。
1.外部SRAM分区说明
本项目的硬件扩展了256K 16bit SRAM 时钟延迟为10ns
SRAM型号为: IS61LV25616AL-10T
定位地址为: 0x0200000 前128K 用作程序空间,后128K用作数据空间
定位地址和ARM的内部SRAM地址一样,DSP中文数据手册参考内容如下图所示(可放大):
&&图1-2&&DSP典型的16位和32位数据总线连接示意图
IS61LV25616AL-10T芯片的数据总线是16位,后面的STM32F429板子也用了这个芯片,但增加了高低位选通线,
因此可以读高低字节,比DSP更灵活:DSP最少一次读2字节,ARM想读任何字节都可以。另外ARM内部有FLASH加速,
可以直接跑180MHz,外设是90MHz,但比DSP性能相差已经比较小了。
DSP的GPIO37/XZCS7引脚控制的外部SRAM的物理地址如下图所示:
图1-3 GPIO37/XZCS7引脚控制的外部SRAM的物理地址说明
在F28335.CMD文件分配,详细内容如下:
XINTF zone 7 - program space
ZONE7A : origin = 0x0200000, length = 0x020000
XINTF zone 7 - data space
ZONE7B : origin = 0x0220000, length = 0x020000
2.外部DATA SRAM使用说明
内部SRAM不够用,则使用外部DATA SRAM,用法如下
#pragma DATA_SECTION(bufferB, &ZONE7DATA&);
uint16_t bufferB[512];
仿真测试结果:
观察数据0x22000区域,可以看到bufferB区域被程序设置了正确的数据。
2.外部CODE SRAM使用说明
外部中断函数或一般函数使用如下格式的声明
#pragma CODE_SECTION(cpu_timer0_isr,&xintffuncs&);
#pragma CODE_SECTION(cpu_timer1_isr,&xintffuncs&);
编译器会将这些特定的函数分配在一个固定的FLASH区域
起始地址为XintffuncsLoadStart
结束地址为XintffuncsLoadEnd
主程序中XINTF Zone 7初始化后,调用如下函数将这个区域的特定函数
复制到外部SRAM的运行程序空间(0xx021FFFF)
MemCopy(&XintffuncsLoadStart, &XintffuncsLoadEnd, &XintffuncsRunStart);
频繁运行或调用的捕获函数、定时器函数或特定算法,只有在高速SRAM中运行,
才能真正发挥TMS320C28335的实际性能。
仿真测试结果:
cpu_timer0_isr和cpu_timer1_isr定位在0xx21FFFF区域
对这两个中断函数设置断点,可以正常进入中断运行。
定时器0中断函数的实际仿真结果如下图所示:
图1-4&&定时器0中断函数的加载到外部SRAM前后对比分析图
定时器1中断函数的实际断点仿真如下(是无损压缩图片,可以放大):
图1-5&&定时器1中断代码的运行地址分析
可以得出结论,在反汇编窗口,看到定时器1中断的入口地址是0x2002a,在1ms的定时器1中断内翻转GPIO50脚,产生一个方波。
图1-6&&定时器1中断的应用测试截图
该图比较小,是因为用的是小示波器保存到U盘的图片。用该示波器保存成csv格式,仅有2500个数据。
录波仪录制数据波形比较长,十几秒就可以存下超过100万个点的数据,当然普通的.xls或.xlsx文件是存不下的。
二、通信配置说明(进行中)
1. RS485通信配置和应用测试代码
& &&&以下是网络参考代码,实际的配置比较繁琐,这里简略不写了。
& &&&// 重新映射 PIE -&&Timer 0的中断& &
& & EALLOW;&&// 解除寄存器保护& & PieVectTable.TXBINT = &SCI_TX_& & PieVectTable.RXBINT = &SCI_RX_& & EDIS;& & // 使能寄存器保护& & // 使能接收中断& & PieCtrlRegs.PIEIER8.bit.INTx3 = 1;& & // 使能发送中断& & // PieCtrlRegs.PIEIER9.bit.INTx4 = 1;& & IER |= 0x100;& & // 全局中断使能和更高优先级的实时调试事件& & EINT;& &// 全局中断使能INTM& & ERTM;& &// 使能实时调试中断DBGM
SCIC串口发送和接收的大致流程如图1-6所示。
图1-7&&SCIC串口的发送和接收流程
& & // 利用TMS320F28335的SCIC串口FIFO来发送数据,只要数据包不超过16,
& &// 都可以无需等待,直接将所有字节放入FIFO,极大的节约CPU的时间开销
& &// 具体实现如下,至于官方的例程,等待当前字节发送完毕再发下一个,
& &// 这样太浪费时间,在实际产品中基本上没人用
& &if(Flag_CpuTimer0){
& && && &Flag_CpuTimer0 = 0; // 10ms 定时周期
& && && &GpioDataRegs.GPBSET.bit.GPIO50 = 1;& &// RS485 DE = 1 RS485切换为发送状态
& && && &for(i = 0; i & 10; ++i){
& && && && & ScicRegs.SCITXBUF = bufferA; // 将10个数据放入FIFO,然后自动依次转移到移位寄存器
& && && &}
& && && &asm(& nop&);
& && && &asm(& nop&);
& && && &asm(& nop&);
& && && &asm(& nop&);
& && && &asm(& nop&);
& && && &asm(& nop&);
& &&&// RS485处于发送状态,且SCIC移位寄存器为空
& & if((GpioDataRegs.GPBDAT.bit.GPIO50 == 1)&&(ScicRegs.SCICTL2.bit.TXEMPTY == 1)){
& && && & GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1;& &// RS485 DE = 0 RS485转为接收状态
2. CAN通信配置
三、数据存储器配置说明(I2C)
& &扩展了512K byte EEPROM,打开官方的I2C例程(非GPIO模拟的时序),已测试OK。
四、集成功率芯片测试(GPIO)
& &主要是对功率器件的测试,进行中
五、看门狗配置说明(已完成)
一般嵌入式系统都需要开启外部或内部看门狗,以防意外的CPU挂起死机
六、TI官方的CMD文件说明(实际应用的文件是在官方的基础上稍作修改)
TI官方提供的CMD文件有三个: 28335_RAM_lnk.cmd、F28335.cmd、DSP2833x_Headers_nonBIOS.cmd
调试程序时,将28335_RAM_lnk.cmd文件加入工程中,程序被加载到SRAM中运行。
实际的产品运行时,需要将程序下载到FLASH中,并从FLASH中启动,这时需要
在工程中加入F28335.cmd文件,同时屏蔽28335_RAM_lnk.cmd文件。
TI官方文件F28335.cmd对内部SRAM的分配如下:
BOOT_RSVD : origin = 0x000000, length = 0x000050 // Part of M0, BOOT rom will use this for stack PAGE 1
RAMM0 : origin = 0x000050, length = 0x0003B0 // on-chip RAM block M0 PAGE 1
RAMM1 : origin = 0x000400, length = 0x000400 // on-chip RAM block M1 PAGE 1
ZONE0 : origin = 0x004000, length = 0x001000 // XINTF zone 0 PAGE 0
RAML0 : origin = 0x008000, length = 0x001000 // on-chip RAM block L0 PAGE 0
RAML1 : origin = 0x009000, length = 0x001000 // on-chip RAM block L1 PAGE 0
RAML2 : origin = 0x00A000, length = 0x001000 // on-chip RAM block L2 PAGE 0
RAML3 : origin = 0x00B000, length = 0x001000 // on-chip RAM block L3 PAGE 0
RAML4 : origin = 0x00C000, length = 0x001000 // on-chip RAM block L1 PAGE 1
RAML5 : origin = 0x00D000, length = 0x001000 // on-chip RAM block L1 PAGE 1
RAML6 : origin = 0x00E000, length = 0x001000 // on-chip RAM block L1 PAGE 1
RAML7 : origin = 0x00F000, length = 0x001000 // on-chip RAM block L1 PAGE 1
Allocate DMA-accessible RAM sections:
DMARAML4 : & RAML4, PAGE = 1
DMARAML5 : & RAML5, PAGE = 1
DMARAML6 : & RAML6, PAGE = 1
DMARAML7 : & RAML7, PAGE = 1
Allocate uninitalized data sections:
.stack : & RAMM1 PAGE = 1
.ebss : & RAML4 PAGE = 1
.esysmem : & RAMM1 PAGE = 1
TI官方文件DSP2833x_Headers_nonBIOS.cmd对特殊功能寄存器的映射(PAGE 1)如下
DEV_EMU : origin = 0x000880, length = 0x000180 // device emulation registers
FLASH_REGS : origin = 0x000A80, length = 0x000060 // FLASH registers
CSM : origin = 0x000AE0, length = 0x000010 // code security module registers
ADC_MIRROR : origin = 0x000B00, length = 0x000010 // ADC Results register mirror
XINTF : origin = 0x000B20, length = 0x000020 // external interface registers
CPU_TIMER0 : origin = 0x000C00, length = 0x000008 // CPU Timer0 registers
CPU_TIMER1 : origin = 0x000C08, length = 0x000008 // CPU Timer0 registers (CPU Timer1 & Timer2 reserved TI use)
CPU_TIMER2 : origin = 0x000C10, length = 0x000008 // CPU Timer0 registers (CPU Timer1 & Timer2 reserved TI use)
PIE_CTRL : origin = 0x000CE0, length = 0x000020 // PIE control registers
PIE_VECT : origin = 0x000D00, length = 0x000100 // PIE Vector Table
DMA : origin = 0x001000, length = 0x000200 // DMA registers
MCBSPA : origin = 0x005000, length = 0x000040 // McBSP-A registers
MCBSPB : origin = 0x005040, length = 0x000040 // McBSP-B registers
ECANA : origin = 0x006000, length = 0x000040 // eCAN-A control and status registers
ECANA_LAM : origin = 0x006040, length = 0x000040 // eCAN-A local acceptance masks
ECANA_MOTS : origin = 0x006080, length = 0x000040 // eCAN-A message object time stamps
ECANA_MOTO : origin = 0x0060C0, length = 0x000040 // eCAN-A object time-out registers
ECANA_MBOX : origin = 0x006100, length = 0x000100 // eCAN-A mailboxes
ECANB : origin = 0x006200, length = 0x000040 // eCAN-B control and status registers
ECANB_LAM : origin = 0x006240, length = 0x000040 // eCAN-B local acceptance masks
ECANB_MOTS : origin = 0x006280, length = 0x000040 // eCAN-B message object time stamps
ECANB_MOTO : origin = 0x0062C0, length = 0x000040 // eCAN-B object time-out registers
ECANB_MBOX : origin = 0x006300, length = 0x000100 // eCAN-B mailboxes
EPWM1 : origin = 0x006800, length = 0x000022 // Enhanced PWM 1 registers
EPWM2 : origin = 0x006840, length = 0x000022 // Enhanced PWM 2 registers
EPWM3 : origin = 0x006880, length = 0x000022 // Enhanced PWM 3 registers
EPWM4 : origin = 0x0068C0, length = 0x000022 // Enhanced PWM 4 registers
EPWM5 : origin = 0x006900, length = 0x000022 // Enhanced PWM 5 registers
EPWM6 : origin = 0x006940, length = 0x000022 // Enhanced PWM 6 registers
ECAP1 : origin = 0x006A00, length = 0x000020 // Enhanced Capture 1 registers
ECAP2 : origin = 0x006A20, length = 0x000020 // Enhanced Capture 2 registers
ECAP3 : origin = 0x006A40, length = 0x000020 // Enhanced Capture 3 registers
ECAP4 : origin = 0x006A60, length = 0x000020 // Enhanced Capture 4 registers
ECAP5 : origin = 0x006A80, length = 0x000020 // Enhanced Capture 5 registers
ECAP6 : origin = 0x006AA0, length = 0x000020 // Enhanced Capture 6 registers
EQEP1 : origin = 0x006B00, length = 0x000040 // Enhanced QEP 1 registers
EQEP2 : origin = 0x006B40, length = 0x000040 // Enhanced QEP 2 registers
GPIOCTRL : origin = 0x006F80, length = 0x000040 // GPIO control registers
GPIODAT : origin = 0x006FC0, length = 0x000020 // GPIO data registers
GPIOINT : origin = 0x006FE0, length = 0x000020 // GPIO interrupt/LPM registers
SYSTEM : origin = 0x007010, length = 0x000020 // System control registers
SPIA : origin = 0x007040, length = 0x000010 // SPI-A registers
SCIA : origin = 0x007050, length = 0x000010 // SCI-A registers
XINTRUPT : origin = 0x007070, length = 0x000010 // external interrupt registers
ADC : origin = 0x007100, length = 0x000020 // ADC registers
SCIB : origin = 0x007750, length = 0x000010 // SCI-B registers
SCIC : origin = 0x007770, length = 0x000010 // SCI-C registers
I2CA : origin = 0x007900, length = 0x000040 // I2C-A registers
CSM_PWL : origin = 0x33FFF8, length = 0x000008 // Part of FLASHA. CSM password locations
PARTID : origin = 0x380090, length = 0x000001 // Part ID register location
Powered by后使用快捷导航没有帐号?
抱歉,指定的主题不存在或已被删除或正在被审核
Powered by Discuz! X3.2}

我要回帖

更多关于 lm317扩流稳压电路图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信