1 / 37

主讲人:陈朋 博士、讲师 地 址:广 C321 室 Phone : 13819195905 Email : Chenpeng@zjut

DSP 原理及应用 I. 主讲人:陈朋 博士、讲师 地 址:广 C321 室 Phone : 13819195905 Email : Chenpeng@zjut.edu.cn. 1 、系统时钟 1 ) DSP 时钟: 30MHz , 5 倍频; 2 )高 / 低速外设时钟设置与使能. 上次课的内容回顾. 2 、看门狗模块 1 )使能 / 屏蔽看门狗; 2 )复位看门狗( 0x55+0xAA ). 3 、 CPU 通用定时器 1 ) 32 + 16 位计数器; 2 )递减计数,产生周期性中断. 4 、通用 I/O

irish
Télécharger la présentation

主讲人:陈朋 博士、讲师 地 址:广 C321 室 Phone : 13819195905 Email : Chenpeng@zjut

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DSP原理及应用I 主讲人:陈朋 博士、讲师 地 址:广C321室 Phone:13819195905 Email:Chenpeng@zjut.edu.cn

  2. 1、系统时钟 1)DSP时钟:30MHz,5倍频;2)高/低速外设时钟设置与使能 上次课的内容回顾 2、看门狗模块 1)使能/屏蔽看门狗;2)复位看门狗(0x55+0xAA) 3、CPU通用定时器 1)32+16位计数器;2)递减计数,产生周期性中断 4、通用I/O 1)高达56个,与外设复用;2)可配置为输入或输出 5、PIE中断 1)12×8个中断源(INT1-INT12,INTx.1-INTx.8) 2)中断向量表用来存在中断服务程序的地址

  3. 讲课内容 • 第3章“存储器及外部接口” 片内存储器 寄存器映射空间 外部扩展接口 与外部存储器的接口

  4. 1. 片内存储器 • 程序存储器: • ROM/PROM • EPROM • FLASH • EEPROM • DiskOnChip • 数据存储器: • SRAM • DRAM • EEPROM • Dual Port RAM

  5. 1. 片内存储器(续) • F281×采用增强的哈佛总线结构,能够并行访问程序和数据存储空间,如可以并行实现程序读、数据读、数据写这三个操作。 • 片内集成了大量的SRAM、ROM、FLASH等存储器,采用统一编址方式,方便程序开发。 • F2812提供了外部并行总线扩展接口,可提供1M字(三个外部扩展空间:两个512K,一个16K)的寻址空间,有利于开发较复杂的系统,如扩展FLASH、RAM、ADC、DAC、RTC、LCD、USB、LAN等。

  6. Functional Overview 扩展接口 ⑤⑥… ① 56个 ② ④ 片内存储器 ③ 0

  7. Memory Map ① ⑤⑥… /XZCS0AND1 ② ⑤⑥… /XZCS2 ⑤⑥… /XZCS6AND7 ④ ③ ⑤⑥… 0

  8. 程序读 数据读 • 程序/数据空间的写操作共用数据总线DWDB,两个操作不能同时进行; • 从程序空间读(PAB、PRDB),从数据空间读(DRAB、DRDB),向数据空间写(DWAB、DWDB) 这3个操作可以同时进行。 CPU 数据写

  9. 1. 片内存储器(续) • 片内存储器均采用32位数据总线; • F2812采用32位格式访问存储器或外设时,分配的必须是偶地址。绝大部分指令是采用32位格式从程序存储空间读取的。 • 各个数据存储器块M0 (1k)、M1 (1k)、L0 (4k)、L1 (4k)、H0 (8k)均可以映射到程序和数据空间。 • FLASH具有如下特点: • FLASH分成10个扇区,每个扇区可以单独擦除与编程; • 代码可安全保护(128位密匙); • 可根据CPU频率调整等待状态; • 具有低功耗模式; • 流水线模式能够提高代码执行效率。

  10. F2812 F2811 128kW F2810 64kW

  11. 1. 片内存储器(续) Flash选项寄存器(FOPT) Flash读操作等待状态寄存器(FBANKWAIT)

  12. 1. 片内Flash存储器(续) // 下面的函数初始化Flash控制寄存器,DSP时钟频率150MHz void InitFlash(void) { EALLOW; FlashRegs.FOPT.bit.ENPIPE = 1;//使能Flash流水线模式以提高代码执行效率 FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;//设置随机访问的等待状态数目 FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;//设置按页访问的等待状态数目 EDIS; asm(“ RPT #7 || NOP”);//软件延迟,等待流水线刷新 } 提示:初始化Flash寄存器的代码必须从RAM中运行,从Flash中执行将导致不可预测的结果。 12

  13. 2. 外设寄存器映射空间 • F281X和C281X器件包含三个外设寄存器空间。这些空间分为以下三组: 1) Peripheral Frame0: 直接映射到CPU的存储器总线,支持16位和32位数据访问。 2) Peripheral Frame1: 映射到32位的外设总线,必须采用32位读写方式(限对偶地址访问)。 3) Peripheral Frame2: 映射到16位的外设总线,仅支持16为访问。

  14. 2. 外设寄存器映射空间(续) 16/32 F2812.cmd /* Peripheral Frame 0: */ DEV_EMU : origin = 0x000880, length = 0x000180 XINTF : origin = 0x000B20, length = 0x000020 PIE_CTRL : origin = 0x000CE0, length = 0x000020 PIE_VECT : origin = 0x000D00, length = 0x000100 FLASH_REGS : origin = 0x000A80, length = 0x000060 CSM : origin = 0x000AE0, length = 0x000010 CPU_TIMER0 : origin = 0x000C00, length = 0x000008 CPU_TIMER1 : origin = 0x000C08, length = 0x000008 CPU_TIMER2 : origin = 0x000C10, length = 0x000008

  15. 2. 外设寄存器映射空间(续) 32 F2812.cmd /* Peripheral Frame 1: */ ECAN_A : origin = 0x006000, length = 0x000100 ECAN_AMBOX : origin = 0x006100, length = 0x000100

  16. 16 F2812.cmd /* Peripheral Frame 2: */ SYSTEM : origin = 0x007010, length = 0x000020 XINTRUPT : origin = 0x007070, length = 0x000010 GPIOMUX : origin = 0x0070C0, length = 0x000020 GPIODAT : origin = 0x0070E0, length = 0x000020 EV_A : origin = 0x007400, length = 0x000040 EV_B : origin = 0x007500, length = 0x000040 MCBSP_A : origin = 0x007800, length = 0x000040 SCI_A : origin = 0x007050, length = 0x000010 SCI_B : origin = 0x007750, length = 0x000010 SPI_A : origin = 0x007040, length = 0x000010 ADC : origin = 0x007100, length = 0x000020

  17. 存储器和寄存器的等待状态 提示:Flash和XINTF的等待状态与DSP时钟频率有关。

  18. 2. 外设寄存器映射空间(续) F28×系列DSP中有些寄存器的内容是受保护的,其目的是为了避免用户程序错误地改变这些寄存器的值。 当受保护后,允许CPU对该寄存器进行读操作,但任何写操作均被忽略。 如果寄存器是EALLOW保护的,在对该寄存器进行写操作前必须首先执行EALLOW指令使能;而完成后执行EDIS指令则可以禁止写操作。

  19. 3. 外部扩展接口 • F2812的外部接口(XINTF)采用异步、非复用的扩展总线,与C240×的外部接口相似; • F2812的XINTF映射到5个独立的存储空间。当访问相应的存储空间时,就会产生一个片选信号。 • 每个空间都可以独立地设置访问建立、有效和跟踪时间,同时还可以通过XREADY信号来与外设的访问速度和时序匹配。

  20. 16位 19位 XZCS7取决于MP/MC的状态 XINTF See p.42 (datasheet) 2812.pdf

  21. 3. 外部扩展接口(续) • 所有外部扩展接口的建立、激活和跟踪时间均以时钟XTIMCLK为基准; • 所有外部接口的访问周期均在XCLKOUT的上升沿开始有效。

  22. 3. 外部扩展接口(续) 任何对XINTF空间的读/写时序都可以分为三个阶段: • 建立阶段:所访问空间的片选信号为低电平,产生有效的地址在AB上; • 有效阶段:读操作(/XRD=0)数据锁存到DSP;写(/XWE=0)操作数据至DB; • 保持阶段:读/写信号变为高后,保持片选信号为低电平的一段时间。 持续的XTIMCLK周期数(tc—XTIMCLK的周期;WS—XREADY引入的等待周期数) 缺省值 WS=0 6 15 6 6 15 6

  23. 访问周期的计算(不使用XREADY信号) 参照课本P.63-64 1~3 0~3 0~6 2~6 2~6 0~6 0~12 4~12 1~3 0~3 1~8 1~15 1~16 1~30 0~7 2SYSCLKOUT≤访问周期≤ 54SYSCLKOUT

  24. 7 7 XTIMCLK=SYSCLKOUT Lead=2,Active=2,Trail=2

  25. XTIMCLK=SYSCLKOUT/2 Lead=2,Active=2,Trail=2 14 14

  26. 3. 外部扩展接口(续) XREADY信号 • DSP通过检测XREADY信号,可以延长DSP访问外设的有效阶段; • 器件上所有外设空间共用一个XREADY信号,低电平有效; • 每个空间可以独立配置为检测或不检测XREADY信号; • 在对XREADY信号采样时刻,如果信号为低电平,则有效阶段将延长一个XTIMCLK周期,然后在下一个XTIMCLK的上升沿继续采样,直到检测到XREADY为高电平,完成正常的读/写周期; • 每个空间可以选择同步或异步检测(缺省方式)XREADY信号。 • 同步检测:在设定的建立和有效周期结束之前,对XREADY信号采样一个XTIMCLK周期。 • 异步检测:在设定的建立和有效周期结束之前,对XREADY信号采样三个XTIMCLK周期。

  27. 读周期 XTIMCLK=SYSCLKOUT 3/1 2 2 1XTIMCLK 同步检测 3XTIMCLK 异步检测

  28. 写周期 XTIMCLK=SYSCLKOUT 2 2 3/1 1XTIMCLK 同步检测 3XTIMCLK 异步检测

  29. 3. 外部扩展接口(续) 1、什么情况下需要XREADY信号? • 外设速度特别慢,依靠软件插入等待状态无法满足要求; • 一个XINTF区(ZONE)的外设较多,速度快慢差异较大。 2、是否有必要使用XREADY信号? • 绝大多数情况下不必使用XREADY信号,直接将该引脚上拉至高电平(说明一直有效); • 对于扩展外部设备较多,且访问速度相差较大的情况,可以将外设按快慢分组,分别配置到不同的XINTF空间。

  30. XINTF的初始化 void InitXintf(void) { // Timing for all zones based on XTIMCLK = SYSCLKOUT XintfRegs.XINTCNF2.bit.XTIMCLK = 0; // Zone 0-- 设置写周期时序 // 缺省为使用XREADY信号,异步采样方式, ACTIVE必须大于或等于1。 XintfRegs.XTIMING0.bit.XWRLEAD = 1; XintfRegs.XTIMING0.bit.XWRACTIVE = 3; XintfRegs.XTIMING0.bit.XWRTRAIL = 1; XintfRegs.XTIMING0.bit.X2TIMING = 0; // Zone0的Lead/Acitve/Trail时间不加倍 // Zone 2--设置读周期时序 XintfRegs.XTIMING2.bit.USEREADY = 0; // Zone2 忽略 XREADY信号,缺省为1 XintfRegs.XTIMING2.bit.XRDLEAD = 3; XintfRegs.XTIMING2.bit.XRDACTIVE = 7; XintfRegs.XTIMING2.bit.XRDTRAIL = 3; XintfRegs.XTIMING2.bit.X2TIMING = 1; // Zone2的Lead/Acitve/Trail时间加倍 }

  31. DSP的工作模式 复位时XMP/MC引脚的状态决定了DSP的工作模式: • 如果XMP/MC=1(微处理器模式),使能Zone7空间(映射到0x3FC000),并从外部存储器获取中断向量表。此时,为了正确执行代码,必须将复位向量指针指向一个有效的存储空间。 • 如果XMP/MC=0(微控制器模式),使能BootROM,Zone7被屏蔽,在应用中,这也是比较常用的系统工作模式。 • 复位后,可以通过XINTFCNF2寄存器改变工作模式,即从BootROM引导,后通过软件使XMP/MC=0,从而可以访问Zone7。

  32. XINF的DMA操作 外部接口支持程序/数据存储器的DMA传输,如从外部存储器加载引导程序,DMA操作由/XHOLD和/XHOLDA信号控制。 DMA操作步骤: • 外设产生一个低电平信号送/XHOLD引脚; • DSP完成对所有外部接口的访问后将/XHOLDA引脚置为低电平(设置XINTCNF2寄存器); • 随后XINF的总线处于高阻状态(地址、数据、读写与片选信号),DSP可以继续执行片内程序存储器中的程序; • 其它设备可以控制对外部程序、数据存储器的访问; • DMA操作完成后送高电平信号至XHOLD引脚。 提示:DMA过程DSP芯片可使外部总线处于三态,但本身并不具备DMA控制能力,需要外设扩展专门的DMA控制芯片。

  33. 4. 与外部存储器的接口 CY7C1021V33 TSSOP44 • 特点: • 3.3V电压(3.0-3.6V) • 高速(10/12/15ns) • 片选无效时自动降低功耗 5mA 200mA 200mA

  34. 4. 与外部存储器的接口(续) 2 1 3 4

  35. 写周期分析 150MHz-------6.67ns CY7C1021V33-12 min 100 XINTCNF.bit.XTIMCLK = 0 XTIMING6.bit.XWRLEAD = 1; XTIMING6.bit.XWRACTIVE = 1; XTIMING6.bit.XWRTRAIL = 0; XTIMING6.bit.X2TIMING = 0 100 100 110 35

  36. 读周期分析 150MHz-------6.67ns min max XINTCNF.bit.XTIMCLK = 0 XTIMING6.bit.XRDLEAD = 1; XTIMING6.bit.XRDACTIVE = 0-2; XTIMING6.bit.XRDTRAIL = 0; XTIMING6.bit.X2TIMING = 0 100 100 100 36

  37. 提示下次上课内容:第10章 “TMS320C28X的软件开发” 作业:3-2,3-4 谢谢同学们!

More Related