本文主要是介绍创龙TMS320C6748开发板———PSC配置及GPIO介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、 PSC (电源和睡眠控制器)配置介绍
TMS320C6748 是 Ti 公司的一款超低功耗 DSP 产品,相比其他系列 DSP 它多了 PSC 这个模块,用以管理各个外设的睡眠和唤醒,大大节约了系统功耗,下面我们具体介绍这个模块的细节以及配置。
( 1 ) PSC 模块共有两个控制器模块,分别负责以下外设的配置。
从上图我们可以看到 PSC 模块几乎可以控制 DSP 中所有的外设。
也许这里大家有一个疑问, PSC0~1 , Domain0~1 ,以及具体的模块好像关系很乱。下面我们绘制了这样一张图来详细说明他们的所属关系:
实际上,只有 DSP 属于 domain1 ,其余所有模块均属于 domain0 。
( 2 )下面我们接着介绍 PSC 能够控制各个模块进入的状态 (Enable 、 Disable 、 SyncReset 、 SwRstDisable 、 AutoSleep 、 AutoWake) 一般我么常用的是前 4 个状态, Enable 为正常工作状态,而 Disable 状态关闭了模块时钟; SyncReset 使模块处于复位状态,时钟正常, SwRstDisable 使模块处于复位状态,并关闭了时钟。具体说明见下图所示。
( 3 ) PSC 模块配置说明
a. 等待 PTSTAT 中的 GOSTAT[x] 为清零, x 为当前模块所属的 domain 。
b. 检查 MDSTAT[x] 中的 STAT 位是否与简要配置的状态相同,如果相同,直接返回。
c. 清除 MDCTL[x] 中的 NEXT 位 ( 非常重要 ) 。
d. 配置 MDCTL[x] 中的 NEXT 位为指定的状态。
e. 配置 PTCMD 中的 GO[x] 位,开始转换模块状态。
f. 等待,检查 PTSTAT 中的 GOSTAT[x] 是否清零,表示转换完成。
g. 检查 MDSTAT[x] 中的 STAT 位是否与简要配置的状态相同。
二、 GPIO (通用输入输出)配置介绍
本节我们主要介绍 GPIO 的输入输出控制功能,中断部分下次结合中断向量表一起说明。
( 1 ) TMS320C6748 共有 8 Banks , 16 GPIOsper Bank ,几乎所有引脚都可以配置成为 GPIO 端口。
对于 GPIO ,我们只需关注这几个寄存器:
DIR :方向控制寄存器,控制 GPIO 管脚是输入还是输出,其中,对应位置 0 表示该管脚为输出管脚;对应位置 1 表示该管脚为输入管脚。
OUT_DATA :输出数据寄存器,控制管脚输出电平,其中,对应位置 0 表示该管脚输出为低电平;对应位置 1 表示该管脚输出为高电平。
SET_DATA :设置数据寄存器,对应位置 1 表示该管脚输出为高电平,需要注意的是该寄存器写 0 无效。
CLEAR_DATA :清除数据寄存器,对应位置 1 表示该管脚输出为低电平,需要注意的是该寄存器写 0 无效。
IN_DATA :输入数据寄存器,注意该寄存器是只读寄存器,返回对应位输入电平。
( 2 ) GPIO 配置说明
a. 配置 PSC 模块,使能 GPIO 功能。
b. 配置 PINMUX 模块,选择需要使用的管脚作为 GPIO 引脚。具体可以参看我的这篇帖子。 http://bbs.elecfans.com/forum.php?mod=viewthread&tid=516939&page=1&extra=#pid3851865
c. 配置 DIR 方向控制寄存器。
d. 如果配置 GPIO 为输入引脚,那么在有信号输入后可以读取 IN_DATA 寄存器以获得输入电平;如果配置 GPIO 为输出引脚,可以配置 OUT_DATA 或 SET_DATA 或 CLEAR_DATA 寄存器输出高 / 低电平。
三、 CCS 调试的一些经验
以后如果我想起一些关于 CCS 调试有用的功能,会不定时在帖子最后更新,希望有助于大家的学习 ~
大家在调试工程的时候会不会遇到工程出错,但是又找不到事那个部分出问题,一般有经验的工程师在编写子函数时都会写一些返回值,这样在调试时直接查看这些返回值就可以知道程序那里出错了。但是,这样编写效率不高,遇到多次调用子函数的情况很难知道那个部分出问题了。一般工程师们还会在程序运行时及时打印出系统运行状态,主要有两种方法,一种是基于 UART 接口的方法(我们以后结合 UART 再说),另一种是调用 printf 函数的方法。
格式为: printf ( "hello !\r\n" );
重要的事情说三遍,在语句的结尾一定一定要有回车符 \r 和换行符 \n 。
大家可以看到在 CCS 的 Console 里有如下的显示。
这篇关于创龙TMS320C6748开发板———PSC配置及GPIO介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!