#0d38H mov #0000110100111000b,pot(#TCR0):设置TCR0 N IDLEEN,O=不和外设域PERIS一起idle INTES工,na,即不从内部时钟切换到外部时钟 ERR_TIM,1=若有非法FUNC位的改变发生 FUNC,O1=TIN/TOUT引脚是定时器输出 TLB,1=使TIM=PRD,PSC=TDDR'(即使TIM没减到0 SOFT n/a FREE, 1=仿真暂停时,计数器不停 00 PWID,n/a输出脉冲宽度1个时钟周期,这里不适用 JNNN NNNN ARB,1=使能自动重装入(当TM减到0时) TSS, 1=停止定时器 ◆ CP 0=脉冲模式,1=时钟(触发)模式 POLAR, 0=正则极性(起始低电平) DATOUT,n/ Rsvd and #1111101111101111b,port(#TCR0) ;NNN~ONNNNNNNNNTLB,O=停止从周期寄存器装入TM没减到O 0~NNN TSS,0=启动计时器 TLB=1使能定时器装载) NNNNNNNN 34
;~~0~~~~~~~~~~~~~ERR_TIM, 1=若有非法FUNC位的改变发生 ;~~~01~~~~~~~~~~~ FUNC, 01=TIN/TOUT引脚是定时器输出 ;~~~~~1~~~~~~~~~~TLB, 1=使‘TIM=PRD, PSC=TDDR’ (即使TIM没减到0) ;~~~~~~ 0~~~~~~~~~SOFT, n/a ;~~~~~~~ 1~~~~~~~~FREE, 1=仿真暂停时,计数器不停 ;~~~~~~~~00~~~~~~ PWID, n/a,输出脉冲宽度1个时钟周期,这里不适用 ;~ ~~~~~~~~1~~~~~ ARB, 1=使能自动重装入(当TIM减到0时) ;~~~~~~~~~~ 1~~~~ TSS, 1=停止定时器 ;~~~~~~~~~~~1~~~ CP, 0=脉冲模式,1=时钟(触发)模式 ;~~~~~~~~~~~~0~~ POLAR, 0=正则极性(起始低电平) ;~~~~~~~~~~~~~0~ DATOUT, n/a ;~~~~~~~~~~~~~~0 Rsvd and #1111101111101111b ,port(#TCR0) ;~~~~~0~~~~~~~~~TLB , 0=停止从周期寄存器装入(TIM没减到0) ;~~~~~~~~~~0~~~~ TSS , 0=启动计时器 mov #0000110100111000b,port(#TCR0);设置TCR0 ;0~~~~~~~~~~~~~~~IDLEEN, 0=不和外设域PERIS一起 idle ;~0~~~~~~~~~~~~~~INTEST, n/a,即不从内部时钟切换到外部时钟 34 (TLB=1使能定时器装载) #0d38H
3)C语言代码(调用cs) 在头文件中包含csl timer.h文件 #include csl timer.h; 在头文件中定义句柄(此句柄是打开 TIMER Handle hTimer;定时器设备文件时产生的,且唯一) TIMER_Config Config_TIMER= 在头文件中 OxOd38,//TCR 配置结构体 /*IDLE EN=0,FUNC=01b,TLB=1,FREE=1,PWID=00b, ARB=1,TSS=1,C/P=1,P0LAR=0,其它为0.*/ 0x09,/*prd*/ 初始化定时器0, 0x04 /*prsc 将定义在结构体 打开定时器0 logic open 中的定时器参数 hTimer TIMER_open(TIMER_DEVO,0); 写入句柄为 hTimer的定时器。 TIMER_config(hTimer,&Config_TIMER) TIMER_start(hTimer) 启动定时器0运行 ■■■■■ TIMER_stop(hTimer); 停止定时器0运行 35
#include csl_timer.h; TIMER_Handle hTimer; TIMER_Config Config_TIMER={ 0x0d38, //TCR /*IDLE_EN=0,FUNC=01b,TLB=1,FREE=1,PWID=00b, ARB=1,TSS=1,C/P=1,POLAR=0,其它为0.*/ 0x09, /*prd*/ 0x04 /*prsc */ } TIMER_config(hTimer, &Config_TIMER) 在头文件中定义句柄(此句柄是打开 定时器设备文件时产生的, 且唯一) 在头文件中包含csl_timer.h文件 打开定时器0 在头文件中 配置结构体 hTimer = TIMER_open(TIMER_DEV0,0); TIMER_start(hTimer); TIMER_stop(hTimer); 初始化定时器0, 将定义在结构体 中的定时器参数 写入句柄为 hTimer的定时器。 启动定时器0运行 停止定时器0运行 35 …… logic open (3) C语言代码(调用csl)
第8章C55x的片上外设 ■81时钟发生器 (SPRU317K) ■8.2通用定时器(SPRU595C) ■8.3通用I/0口(GPI0)[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) 36
第8章 C55x的片上外设 ◼8.1时钟发生器 (SPRU317K) ◼8.2通用定时器 (SPRU595C) ◼8.3通用I/O口(GPIO)[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)) 36 参考手册: TMS320C55x DSP Peripherals Overview User's Guide (SPRU317K)
8.3通用I/O口(GPI0) 8.3.1GPIO概况 ●TMS320VC5509APGE有7个GPIO脚(GPIO[7:6, 4:0](LQFP),{对BGA封装是8个引脚GPIO7:0}); ●GPIO3:01引脚电平决定上电引导模式。 ●通用输入输出引脚GPIO特点: ◆每个引脚方向可由/O方向寄存器ODR独立配置; ◆引脚上的输入/输出状态由I/O数据寄存器IODATA 反映或设置; 参考:TMS320VC5509 A Fixed-Point Digital Signal Processor Data Manual(SPRS205D) 37
8.3 通用I/O口(GPIO) ⚫TMS320VC5509A PGE有7个GPIO引脚(GPIO[7:6, 4:0] (LQFP), {对BGA封装是8个引脚GPIO[7:0]} ); ⚫GPIO[3:0]引脚电平决定上电引导模式。 ⚫通用输入输出引脚GPIO特点: ◆每个引脚方向可由I/O方向寄存器IODIR独立配置; ◆引脚上的输入/输出状态由I/O数据寄存器IODATA 反映或设置; 8.3.1 GPIO概况 37 参考:TMS320VC5509A Fixed-Point Digital Signal Processor Data Manual(SPRS205D)
8.3. 2GPIO寄存器 GPIO方向寄存器IODR(地址:0x3400) 位 字段 数值 说明 158 Rsvd 保留 Ox方向控制位 70 IOxDIR 0 IOx配置为输入 IOx配置为输出 引脚GPIO5只在BGA封装上有此引脚。 15 8 6 5 3 0 Reserved IO7DIR 1O6DIR IO5DIR 1O4DIR IO3DIR 1O2DIR IOODIR (BGA) IO1DIR R-00000000RW-0 R/W-0 R/W-0 R/W-0 RW-0 R/W-0 R/W-0 R/W-0 GPIO数据寄存器IODATA(地址:0x3401) 位 字段 数值 说明 158 Rsvd 保留 IOx逻辑状态位 70 IOxD 0 IOx引脚上的信号为低电平 Ox引脚上的信号为高电平
GPIO数据寄存器IODATA(地址:0x3401) 位 字 段 数 值 说 明 15~8 Rsvd 保留 7~0 IOxDIR 0 1 IOx方向控制位 IOx配置为输入 IOx配置为输出 GPIO方向寄存器IODIR(地址:0x3400) 位 字 段 数 值 说 明 15~8 Rsvd 保留 7~0 IOxD 0 1 IOx逻辑状态位 IOx引脚上的信号为低电平 IOx引脚上的信号为高电平 8.3.2 GPIO寄存器 38 引脚GPIO5只在BGA封装上有此引脚