第8章C55x的片上外设 ■81时钟发生器 (SPRU317K) 8.2通用定时器 (SPRU595C) ■8.3通用I/0口(GPI0)[DSP各型号手册(5509A:SPRS205K)] ■8.4外部存储器接口(EMIF)(SPRU670A,SPRU590) ■8.5多通道缓冲串口(McBSP)(SPRU592E) ■8.6模数转换器(ADC)(SPRU586B) ■8.7看门狗定时器(Watchdog)(SPRU595C) ■8.8I2C模块(SPRU146D) 8.9片上支持库(CSL)(SPRU433A(J) 参考手册:TMS320C55 x DSP Peripherals Overview User's Guide (SPRU317K) 4
第8章 C55x的片上外设 ◼8.1时钟发生器 (SPRU317K) ◼8.2通用定时器 (SPRU595C) ◼8.3通用I/O口(GPIO)[DSP各型号手册(5509A:SPRS205K)] ◼8.4外部存储器接口(EMIF) (SPRU670A, SPRU590) ◼8.5多通道缓冲串口(McBSP) (SPRU592E) ◼8.6模数转换器(ADC) (SPRU586B) ◼8.7看门狗定时器(Watchdog) (SPRU595C) ◼8.8I2C模块 (SPRU146D) ◼8.9片上支持库(CSL) (SPRU433A(J)) 4 参考手册: TMS320C55x DSP Peripherals Overview User's Guide (SPRU317K)
8.1时钟发生器 ■8.1.1时钟发生器概况 ■8.1.2时钟工作模式 ■8.1.3CLK0UT输出 ■8.1.4使用要点 参考手册:TMS320C55 x DSP Peripherals Overview User's Guide (SPRU317K) 5
8.1 时钟发生器 ◼ 8.1.1 时钟发生器概况 ◼ 8.1.2 时钟工作模式 ◼ 8.1.3 CLKOUT输出 ◼ 8.1.4 使用要点 5 参考手册: TMS320C55x DSP Peripherals Overview User's Guide (SPRU317K)
8.1.1时钟发生器概况 ●作用:从CLKIN引脚接收输入时钟信号,将其变换为CPU及 其外设所需要的工作时钟,经分频后在引脚CLKOUT输出。 CLKDIV(系统寄存器 SYSR的0~2位) CLKIN DSP时钟发生器 CPU时钟 CLKOUT phase-lock loop (PLL) 工作时钟经过分频通 时钟发生器内有一个数字锁 过引脚CLKOUT输出, 相环(DPLL)和一个时钟模式 可供其他器件使用 寄存器(CLKMD) CPU、外设、 其他器件 SYSR D15~D3 D2 D1 DO Reserved CLKDIV 6
8.1.1 时钟发生器概况 DSP时钟发生器 ÷ CLKDIV CPU时钟 CPU、外设、 其他器件 CLKIN CLKOUT ⚫作用: 从CLKIN引脚接收输入时钟信号, 将其变换为CPU及 其外设所需要的工作时钟, 经分频后在引脚CLKOUT输出。 工作时钟经过分频通 过引脚CLKOUT输出, 可供其他器件使用 时钟发生器内有一个数字锁 相环(DPLL)和一个时钟模式 寄存器(CLKMD) 6 (系统寄存器 SYSR的0~2位) phase-lock loop (PLL) D15~D3 D2 D1 D0 Reserved CLKDIV SYSR
8.1.2时钟工作模式 时钟发生器有三种工作模式: ◆旁路模式BYPASS) ← PLL ENABLE-0 ◆锁定模式LOCK PLL ENABLE=1 ◆Idle模式 时钟模式寄在器(CLKMD)中的PLL ENABLE位控制旁 路模式和锁定模式 可通过置位ICR的CLKGENI位(CLKGEN=1)来控制 CLKGEN Idle模块,使时钟发生器工作在Idle模式。 Idle Configuration Register (ICR) Idle Status Register_(ISTR) 15-6 5 L 3 2 Reserved EMIFIS CLKGENIS PERIS CACHEIS DMAIS CPUIS 执行IDE指铃后,ICR的值复制到STR中,并控制相应空闲域模块执行动作。 PERI(S):Timers,serial ports and other peripherals
8.1.2 时钟工作模式 ⚫时钟发生器有三种工作模式: ◆ 旁路模式(BYPASS) ◆ 锁定模式(LOCK) ◆ Idle模式 ⚫时钟模式寄存器(CLKMD)中的PLL ENABLE位控制旁 路模式和锁定模式 ⚫可通过置位ICR的CLKGENI位 (CLKGENI=1) 来控制 CLKGEN Idle模块, 使时钟发生器工作在Idle模式。 7 Idle Configuration Register (ICR) PLL ENABLE=0 PLL ENABLE=1 Idle Status Register (ISTR) S S S S S S 执行IDLE指令后,ICR的值复制到ISTR中, 并控制相应空闲域模块执行动作。 PERI(S):Timers, serial ports , and other peripherals
1.旁路模式(BYPASS) 若PLL ENABLE=O,PLL工作于旁路模式,锁相环PLL 不工作,输出时钟频率对输入时钟信号进行分频。 ●分频值由BYPASS DIV(位于CLKD)确定: 如果BYPASSDIV=O0,输出时钟信号的频率与输 入信号的频率相同,即1分频 如果BYPASSDIV=O1,输出时钟信号的频率是输 入信号的1/2,即2分频 ◆如果BYPASSDIV=1x,输出时钟信号的频率是输 入信号的1/4,即4分频 8
1.旁路模式(BYPASS) ⚫若PLL ENABLE=0, PLL工作于旁路模式, 锁相环PLL 不工作, 输出时钟频率对输入时钟信号进行分频。 ⚫分频值由BYPASS DIV (位于CLKMD)确定: ◆ 如果BYPASSDIV=00,输出时钟信号的频率与输 入信号的频率相同,即1分频 ◆ 如果BYPASSDIV=01,输出时钟信号的频率是输 入信号的1/2,即2分频 ◆ 如果BYPASSDIV=1x,输出时钟信号的频率是输 入信号的1/4,即4分频 8 DSP时钟发生器 ÷ CLKDIV CPU时钟 CPU、外设、 其他器件 CLKIN CLKOUT
2.锁定模式(LOCK mode):PLL使能 ●在锁定模式,时钟发生器输出时钟信号与输入信号保持 锁相状态。进入锁相状态过程:在旁路模式下,CLKMD 的PLL ENABLE=1→启动PLL→进入锁相序列:产生输出 频率,输出与输入锁相,进入锁定模式(之前都是旁路模式) ●输出CPU时钟频率(可是输入信号的分频或倍频)由下式确定: PLL MULT2~31) 输出频率= 输入频率 PLL DIV(0~3)+1 3.Idle模式 Idle Configuration_Register (ICR) 为了降低功耗,可以加载Ide配置,使DSP的时钟发生 器进入Ide模式; ●当时钟发生器处于Idle模式时,输出时钟停止(保持高 电平),引脚被拉为高电平。 9
2.锁定模式(LOCK mode): PLL使能 ⚫在锁定模式,时钟发生器输出时钟信号与输入信号保持 锁相状态。进入锁相状态过程:在旁路模式下, CLKMD 的PLL ENABLE=1 →启动PLL→进入锁相序列: 产生输出 频率,输出与输入锁相,进入锁定模式(之前都是旁路模式)。 ⚫输出CPU时钟频率(可是输入信号的分频或倍频)由下式确定: 3. Idle模式 ⚫为了降低功耗,可以加载Idle配置,使DSP的时钟发生 器进入Idle模式; ⚫当时钟发生器处于Idle模式时,输出时钟停止(保持高 电平), 引脚被拉为高电平。 9 ( (2~31) P 0~3) PLL MUL LL DIV T 1 输出频率 + = 输入频率 Idle Configuration Register (ICR)
表8-1时钟模式寄存器CLKMD 时钟模式寄存器CLKMD位于IO空间,地址为:1c00h 表8-1时钟模式寄存器CLKMD 位 字段 说 15 Rsvd 保留 退出Idle状态后,决定PLL如何重新获得锁相: 14 IAI 0 PLL将使用与进入Idle状态之前相同的锁定 设置进行锁定,不需重新启动锁定序列。 Initialize-After-Idle 1PLL将重新启动锁定序列过程 失锁时如何初始化PL锁相序列过程: 0时钟发生器不中断PLL,时钟发生器仍处于锁 13 IOB 定模式(L0CK=1),PLL继续输出当前时钟; 1 时钟发生器切换到旁路模式(LOCK=O),PLL重 Initialize-On-Break 新启动锁定序列过程 12 TEST 必须保持为0 11~7 PLL MULT 锁定模式下的PLL倍频值, 231 65 PLL DIV 锁定模式下的PLL分频值, 03 10
表8-1 时钟模式寄存器CLKMD 位 字 段 说 明 15 Rsvd 保留 14 IAI 退出Idle状态后, 决定PLL如何重新获得锁相: 0 PLL将使用与进入Idle状态之前相同的锁定 设置进行锁定, 不需重新启动锁定序列。 1 PLL将重新启动锁定序列过程 13 IOB 失锁时如何初始化PLL锁相序列过程: 0 时钟发生器不中断PLL,时钟发生器仍处于锁 定模式(LOCK=1),PLL继续输出当前时钟; 1 时钟发生器切换到旁路模式(LOCK=0), PLL重 新启动锁定序列过程 12 TEST 必须保持为0 11~7 PLL MULT 锁定模式下的PLL倍频值,2~31 表8-1 时钟模式寄存器CLKMD 时钟模式寄存器CLKMD位于IO空间,地址为:1c00h 10 Initialize-After-Idle Initialize-On-Break 6~5 PLL DIV 锁定模式下的PLL分频值,0~3
表8-1时钟模式寄存器CLKMD(续) 位 字段 说 明 使能或关闭PLL 4 PLL ENABLE0关闭PLL,进入旁路模式 1使能PLL,进入锁定模式 旁路下的分频值 3~2BYPASS DV 二分 10或11四分频 PLL失锁标志亿0CK=1下锁相是否失锁 BREAKLN 0PLL已经失锁(打破锁相) 1 恢复锁相或有对CLKMD寄存器的写 BREAK-Lock Indicator 操作(写操作使BREAKLN强制为1) 锁定模式标志 0 LOCK 0上 时钟发生器处于旁路模式 1时钟发生器处于锁定模式 11
表8-1 时钟模式寄存器CLKMD(续) 位 字 段 说 明 4 PLL ENABLE 使能或关闭PLL 0 关闭PLL,进入旁路模式 1 使能PLL,进入锁定模式 3~2 BYPASS DIV 旁路下的分频值 00 一分频 01 二分频 10或11 四分频 1 BREAKLN PLL失锁标志 (LOCK=1下锁相是否失锁) 0 PLL已经失锁(打破锁相) 1 恢复锁相或有对CLKMD寄存器的写 操作(写操作使BREAKLN强制为1) 0 LOCK 锁定模式标志 0 时钟发生器处于旁路模式 1 时钟发生器处于锁定模式 11 BREAK-Lock Indicator
8.1.3 CLKOUT输出 16 bit system register (SYSR)is located at port address 07FDh,D3-D15 is reserved ●CPU时钟可经时钟分频器对外提供CLKOUT(引脚)信号; ●CLKOUT的频率由系统寄存器(SYSR)中CLKDIV确定; ●SYSR地址:07fdh, CLKDIV位于其最低3位。 >当CLKDIV=O00b时,CLKOUT的频率等于CPU时钟频率; > 当CLKDIV=-001b时,CLK0UT频率等于CPU时钟频率的1/2; >当CLKDIV=-010b时,CLKOUT频率等于CPU时钟频率的1/3; >当CLKDIV=011b时,CLK0UT频率等于CPU时钟频率的1/4; >当CLKDIV=100b时,CLK0UT频率等于CPU时钟频率的1/5; > 当CLKDIV=-101b时,CLK0UT频率等于CPU时钟频率的1/6; >当CLKDIV=110b时,CLK0UT频率等于CPU时钟频率的1/7; >当CLKDIV=111b时,CLK0UT频率等于CPU时钟频率的1/8; D15~D3 D2 D1 DO SYSR Reserved CLKDIV 12
8.1.3 CLKOUT输出 ⚫CPU时钟可经时钟分频器对外提供CLKOUT(引脚)信号; ⚫CLKOUT的频率由系统寄存器(SYSR)中CLKDIV确定; ⚫SYSR地址: 07fdh, CLKDIV位于其最低3位。 ➢当CLKDIV=000b时,CLKOUT的频率等于CPU时钟频率; ➢当CLKDIV=001b时,CLKOUT频率等于CPU时钟频率的1/2; ➢当CLKDIV=010b时,CLKOUT频率等于CPU时钟频率的1/3; ➢当CLKDIV=011b时,CLKOUT频率等于CPU时钟频率的1/4; ➢当CLKDIV=100b时,CLKOUT频率等于CPU时钟频率的1/5; ➢当CLKDIV=101b时,CLKOUT频率等于CPU时钟频率的1/6; ➢当CLKDIV=110b时,CLKOUT频率等于CPU时钟频率的1/7; ➢当CLKDIV=111b时,CLKOUT频率等于CPU时钟频率的1/8; 12 16 bit system register (SYSR) is located at port address 07FDh, D3-D15 is reserved D15~D3 D2 D1 D0 Reserved CLKDIV SYSR DSP时钟发生器 ÷ CLKDIV CPU时钟 CPU、外设、 其他器件 CLKIN CLKOUT
8.1.4使用要点 ●通过对时钟模式寄存器(CLKMD)的操作,可 根据需要设定时钟发生器的工作模式和输出 频率。 在设置过程中除了工作模式、分频值和倍频 值以外,还要注意其他因素对PLL的影响。 13
8.1.4 使用要点 ⚫通过对时钟模式寄存器(CLKMD)的操作, 可 根据需要设定时钟发生器的工作模式和输出 频率。 ⚫在设置过程中除了工作模式、分频值和倍频 值以外, 还要注意其他因素对PLL的影响。 13