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

37
1 主主主 主主 主主 主主 C321 主 Phone 13819195905 Email [email protected] u.cn

description

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

Transcript of 主讲人:陈朋 博士、讲师 地 址:广 C321 室 Phone : 13819195905 Email :...

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

1

主讲人:陈朋 博士、讲师地 址:广 C321 室Phone : 13819195905Email : [email protected]

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

2

1 、系统时钟 1 ) DSP 时钟: 30MHz , 5倍频; 2)高 /低速外设时钟设置与使能

上次课的内容回顾

2 、看门狗模块 1 )使能 /屏蔽看门狗; 2)复位看门狗( 0x55+0xAA )

4 、通用 I/O

1 )高达 56个,与外设复用; 2)可配置为输入或输出

3 、 CPU 通用定时器 1 ) 32 + 16 位计数器; 2)递减计数,产生周期性中断

5 、 PIE 中断 1 ) 12×8个中断源( INT1 - INT12 , INTx.1 - INTx.8 ) 2 )中断向量表用来存在中断服务程序的地址

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

3

讲课内容

• 第 3 章“存储器及外部接口”

1.片内存储器

2.寄存器映射空间

3.外部扩展接口

4.与外部存储器的接口

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

4

1. 片内存储器 程序存储器:

ROM/PROM

EPROM FLASH EEPROM DiskOnChip

数据存储器: SRAM

DRAM EEPROM Dual Port RAM

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

5

F281× 采用增强的哈佛总线结构,能够并行访问程序和数据存储空间,如可以并行实现程序读、数据读、数据写这三个操作。 片内集成了大量的 SRAM 、 ROM 、 FLASH 等存储器,采用统一编址方式,方便程序开发。

1. 片内存储器 ( 续 )

F2812 提供了外部并行总线扩展接口,可提供 1M 字( 三个外部扩展空间:两个 512K ,一个 16K) 的寻址空间,有利于开发较复杂的系统,如扩展 FLASH 、 RA

M 、 ADC 、 DAC 、 RTC 、 LCD 、 USB 、 LAN 等。

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

Functional Overview

片内存储器

扩展接口

0

⑤⑥…

56 个

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

Memory Map

⑤⑥…

⑤⑥…⑤⑥…

③④

0⑤⑥…

/XZCS0AND1

/XZCS2

/XZCS6AND7

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

8

程序读

数据写

数据读

CPU

程序 / 数据空间的写操作共用数据总线 DWD

B ,两个操作不能同时进行; 从程序空间读 (PAB 、PRDB) ,从数据空间读(DRAB 、 DRDB) ,向数据空间写 (DWAB 、 DW

DB)

这 3 个操作可以同时进行。

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

9

片内存储器均采用 32 位数据总线; F2812 采用 32 位格式访问存储器或外设时,分配的必须是偶地址。绝大部分指令是采用 32 位格式从程序存储空间读取的。 各个数据存储器块 M0 (1k) 、 M1 (1k) 、 L0 (4k) 、 L1 (4k) 、H0 (8k) 均可以映射到程序和数据空间。

FLASH 具有如下特点: FLASH 分成 10 个扇区,每个扇区可以单独擦除与编程; 代码可安全保护( 128 位密匙);

可根据 CPU 频率调整等待状态; 具有低功耗模式; 流水线模式能够提高代码执行效率。

1. 片内存储器(续)

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

10

F2810

F2812

F2811

128kW

64kW

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

11

Flash 选项寄存器( FOPT )

Flash 读操作等待状态寄存器( FBANKWAIT )

1. 片内存储器 ( 续 )

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

12

1. 片内 Flash 存储器 ( 续 )

12

// 下面的函数初始化 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 中执行将导致不可预测的结果。

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

13

F281X 和 C281X 器件包含三个外设寄存器空间。这些空间分为以下三组:

1) Peripheral Frame0: 直接映射到 CPU的存储器总线,支持 16位和 32位数据访问。

2) Peripheral Frame1: 映射到 32位的外设总线,必须采用 32位读写方式(限对偶地址访问)。

3) Peripheral Frame2: 映射到 16位的外设总线,仅支持 16为访问。

2. 外设寄存器映射空间

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

14

2. 外设寄存器映射空间 ( 续 )

16/32

/* 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

F2812.cmd

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

15

2. 外设寄存器映射空间 ( 续 )

32

/* Peripheral Frame 1: */

ECAN_A : origin = 0x006000, length = 0x000100

ECAN_AMBOX : origin = 0x006100, length = 0x000100

F2812.cmd

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

16

/* 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

F2812.cmd

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

名称 等待状态 说 明RAM块M0和M1

0 无需设置等待状态

外设帧 PF0 0 无需设置等待状态外设帧 PF1 0(写操作)

2(读操作)固定数目的等待周期

外设帧 PF2 0(写操作)2(读操作)

固定数目的等待周期

RAM块 L0和L1

0 无需设置等待状态

Flash 0- 15(可编程)

可通过 Flash的等待状态寄存器编程

SARAM块 H0 0 无需设置等待状态引导 ROM 1 固定数目的等待周期XINTF 1- 54(可编

程)可通过 XINTF寄存器编程

提示: Flash 和 XINTF 的等待状态与 DSP 时钟频率有关。

存储器和寄存器的等待状态

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

18

F28×系列 DSP中有些寄存器的内容是受保护的,其目的是为了避免用户程序错误地改变这些寄存器的值。当受保护后,允许 CPU对该寄存器进行读操作,但任何写操作均被忽略。

如果寄存器是 EALLOWEALLOW 保护的,在对该寄存器进行写操作前必须首先执行 EALLOW 指令使能;而完成后执行 EDISEDIS 指令则可以禁止写操作。

2. 外设寄存器映射空间 ( 续 )

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

19

3. 外部扩展接口

F2812 的外部接口( XINTF )采用异步、非复用的扩展总线,与 C240× 的外部接口相似;

F2812 的 XINTF 映射到 5 个独立的存储空间。当访问相应的存储空间时,就会产生一个片选信号。 每个空间都可以独立地设置访问建立、有效和跟踪时间,同时还可以通过 XREADY 信号来与外设的访问速度和时序匹配。

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

20

16 位

19 位

XZCS7 取决于 MP/MC 的状态

XINTF

See p.42 (datasheet)

2812.pdf

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

21

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

3. 外部扩展接口 ( 续 )

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

22

3. 外部扩展接口 ( 续 ) 任何对 XINTF 空间的读 /写时序都可以分为三个阶段:

持续的 XTIMCLK 周期数( tc—XTIMCLK 的周期; WS—XREADY 引入的等待周期数) 缺省值

WS=0

建立阶段:所访问空间的片选信号为低电平,产生有效的地址在 AB上;

保持阶段:读 /写信号变为高后,保持片选信号为低电平的一段时间。

有效阶段:读操作 (/XRD=0) 数据锁存到 DSP ;写 (/XWE = 0) 操作数据至DB;

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

23

访问周期的计算(不使用 XREADY 信号)

1~3 0~3

0~7

0~3 0~6 0~6 0~12

1~3 2~6 2~6 4~12

1~8

1~15 1~16

1~30

2SYSCLKOUT≤ 访问周期≤ 54SYSCLKOUT

参照课本 P.63-64

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

24

Lead = 2 , Active = 2 , Trail= 2

XTIMCLK=SYSCLKOUT

7

7

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

25

Lead = 2 , Active =2 , Trail = 2

XTIMCLK=SYSCLKOUT/2

14

14

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

26

XREADY 信号 DSP 通过检测 XREADY 信号,可以延长 DSP 访问外设的有效阶段;

在对 XREADY 信号采样时刻,如果信号为低电平,则有效阶段将延长一个 XTIMCLK 周期,然后在下一个 XTIMCLK 的上升沿继续采样,直到检测到 XREADY 为高电平,完成正常的读 /写周期;

器件上所有外设空间共用一个 XREADY 信号,低电平有效; 每个空间可以独立配置为检测或不检测 XREADY 信号;

每个空间可以选择同步或异步检测(缺省方式) XREADY 信号。 同步检测:在设定的建立和有效周期结束之前,对 XREADY信号采样一个 XTIMCLK 周期。 异步检测:在设定的建立和有效周期结束之前,对 XREADY信号采样三个 XTIMCLK 周期。

3. 外部扩展接口 ( 续 )

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

27

3XTIMCLK

1XTIMCLK

异步检测

同步检测

XTIMCLK = SYSCLKOUT2 23/1

读周期

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

28

1XTIMCLK

3XTIMCLK同步检测

异步检测

2 23/1

XTIMCLK = SYSCLKOUT写周期

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

29

1 、什么情况下需要 XREADY 信号?

2 、是否有必要使用 XREADY 信号?

外设速度特别慢,依靠软件插入等待状态无法满足要求; 一个 XINTF区( ZONE )的外设较多,速度快慢差异较大。

绝大多数情况下不必使用 XREADY 信号,直接将该引脚上拉至高电平(说明一直有效); 对于扩展外部设备较多,且访问速度相差较大的情况,可以将外设按快慢分组,分别配置到不同的 XINTF 空间。

3. 外部扩展接口 ( 续 )

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

30

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 时间加倍}

XINTF 的初始化

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

31

复位时 XMP/MC 引脚的状态决定了 DSP 的工作模式:

如果 XMP/MC= 0(微控制器模式),使能 BootROM,Zone7被屏蔽,在应用中,这也是比较常用的系统工作模式。

如果 XMP/MC= 1(微处理器模式),使能 Zone7空间(映射到 0x3FC000),并从外部存储器获取中断向量表。此时,为了正确执行代码,必须将复位向量指针指向一个有效的存储空间。

复位后,可以通过 XINTFCNF2 寄存器改变工作模式,即从 BootROM 引导,后通过软件使 XMP/MC = 0 ,从而可以访问 Zone7 。

DSP 的工作模式

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

32

外部接口支持程序 / 数据存储器的 DMA 传输,如从外部存储器加载引导程序, DMA 操作由 /XHOLD 和 /XHOLDA 信号控制。 DMA 操作步骤:

外设产生一个低电平信号送 /XHOLD引脚; DSP 完成对所有外部接口的访问后将 /XHOLDA引脚置为低电平(设置 XINTCNF2 寄存器); 随后 XINF 的总线处于高阻状态(地址、数据、读写与片选信号), DSP 可以继续执行片内程序存储器中的程序; 其它设备可以控制对外部程序、数据存储器的访问; DMA 操作完成后送高电平信号至 XHOLD引脚。

提示: DMA 过程 DSP 芯片可使外部总线处于三态,但本身并不具备 DMA 控制能力,需要外设扩展专门的 DMA 控制芯片。

XINF 的 DMA 操作

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

TSSOP44

CY7C1021V33

特点: 3.3V电压( 3.0-3.6V) 高速( 10/12/15ns ) 片选无效时自动降低功耗

200mA

200mA5mA

4. 与外部存储器的接口

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

34

A05

A14

A23

A32

A41

A544

A643

A742

A827

A926

A1025

A1124

A1221

A1320

A1419

A1518

/CE6

/WE17

/OE41

/BHE40

/BLE39

I/O 31

VCC33

VSS34

I/O 30

I/O 32

I/O 7

I/O 8

I/O 9

I/O 10

I/O 14

I/O 29

I/O 13

I/O 15

I/O 16

I/O 35

I/O 36

I/O 37

I/O 38

VCC11

VSS12

SRAM

CY7C1021V33-12

XA7XA8

XA3

XA1

XA4

XA0

XA6XA5

XA10XA9

XA11XA12

XA15

XA2

XA13XA14

XZCS6AND7nXWEnXRDn

XD0XD1XD2XD3XD4XD5XD6XD7XD8XD9XD10XD11

XD15XD14XD13XD12

3.3V

XA[0..15] XD[0..15]

XZCS6AND7nXWEnXRDn

C2

0.1uF

3.3V

C1

0.1uF

4. 与外部存储器的接口( 续 )

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

35

100100100110

XINTCNF.bit.XTIMCLK = 0XTIMING6.bit.XWRLEAD = 1;XTIMING6.bit.XWRACTIVE = 1;XTIMING6.bit.XWRTRAIL = 0;XTIMING6.bit.X2TIMING = 0

tWCWrite Cycle Time 12

tSCECE Low to Write End 9

tAWAddress Set-up to Write End 8

tPWEWE Pulse Width 8

min

写周期分析CY7C1021V33-12

150MHz-------6.67ns

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

36

100100100

XINTCNF.bit.XTIMCLK = 0XTIMING6.bit.XRDLEAD = 1;XTIMING6.bit.XRDACTIVE = 0-2;XTIMING6.bit.XRDTRAIL = 0;XTIMING6.bit.X2TIMING = 0

tRCRead Cycle Time 12

tACECE Low to Data Valid 12

tDOEOE Low to Data Valid 6

min

max

读周期分析150MHz-------6.67ns

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

37

提示下次上课内容:第 10 章 “ TMS320C28X 的软件

开发”

作业: 3- 2 , 3-4