DSP实验应用GPIO控制

合集下载

GPIO的使用实验报告

GPIO的使用实验报告

GPIO的使用实验报告本实验报告以“GPIO的使用”为主题,介绍了GPIO的基本概念、使用方法和在实际应用中的一些案例。

报告总共分为四个部分:介绍部分、实验原理、实验过程和实验结果分析。

一、介绍部分GPIO是General Purpose Input/Output的简称,中文名称为通用输入输出。

它是处理器芯片与外部电路之间的一个接口,可以通过编程来控制和读取电平状态。

通常情况下,GPIO的引脚既可以作为输入引脚,也可以作为输出引脚。

二、实验原理三、实验过程1. 设置GPIO引脚模式:在Python中,可以使用RPi.GPIO库来控制GPIO引脚。

首先需要导入RPi.GPIO库,然后使用GPIO.setmode(GPIO.BCM)来设置编码方式为BCM。

接着可以使用GPIO.setup(函数来设置引脚的输入/输出模式。

例如,GPIO.setup(17, GPIO.OUT)将引脚17设置为输出模式。

2. 控制输出引脚:使用GPIO.output(函数可以控制引脚的电平状态。

例如,GPIO.output(17, GPIO.HIGH)将引脚17设置为高电平,GPIO.output(17, GPIO.LOW)将引脚17设置为低电平。

3. 读取输入引脚:使用GPIO.input(函数可以读取引脚的电平状态。

例如,state = GPIO.input(17)将引脚17的电平状态赋值给变量state。

四、实验结果分析在实验中,我们先将引脚设置为输出模式,然后控制引脚输出高低电平,观察LED等外部设备的亮灭情况。

接着将引脚设置为输入模式,读取引脚的电平状态,判断外部设备的开关状态。

通过这些操作,我们可以了解到GPIO的基本使用方法和在实际应用中的一些场景。

总结:本次实验通过树莓派和GPIO库控制了GPIO引脚的输入和输出。

实验结果表明,我们可以通过编程实现对GPIO引脚的控制,进而控制外部设备的工作状态,实现了与外部电路的交互。

DSP实验报告

DSP实验报告

DSP实验报告⼀、综合实验内容和要求1. 实验⽬的(1) 学习掌握CCS3.3编译器的使⽤;(2) 通过实验学习掌握TMS320F28335的GPIO ,浮点计算; (3) 学习并掌握A/D 模块的使⽤⽅法;(4) 学习并掌握中断⽅式和查询⽅式的串⼝通信; (5) 学习并掌握28335DSP 的定时器相关的设置与运⽤; (6) 学习信号时域分析的⽅法,了解相关波形参数的计算⽅法; (7) 了解数字滤波的⼀些基本⽅法; (8) 学习数码管的驱动及运⽤。

(9) 学习MATLAB 串⼝以及画图的运⽤。

2. 实验设计内容与要求:(1) 对给定的周期波形信号采⽤TI 公司的TMS320F28335DSP ,利⽤试验箱上的相关资源计算出波形的周期T ,波形的有效值rms V ,平均值avg V 。

其中,有效值和平均值的计算公式(数字量的离散公式)如下:rms V =1()NavgiV u i N=∑式中N 为⼀个周期采样点数,()u i 为采样序列中的第i 个采样点。

(2) 通过算法计算出波形的有效值和平均值,利⽤串⼝通信把测得的数据发送到串⼝助⼿查看,或者在MATLAB 上编写上位机程序,把发送的数据在MATLAB 上画出来。

(3) 把测得的数据实时显⽰在数码管上。

⼆、硬件电路图1为试验系统的硬件图,硬件电路主要包括TMS320F28335DSP 实验箱,SEED-XDS510仿真器,数码管,SCI,信号发⽣器,电脑,串⼝线等。

图1 硬件电路图三、实验原理本试验主要是通过程序去测量⼀个周期波形的有效值、平均值、峰值等相关参数。

计算离散数据的有效值可⽤公式rms V =平均值可⽤公式1()N avgiV u i N=∑。

所以⾸先需要测出波形的周期,然后确定每个周期需要采样的点数N ,最后去计算平均值和有效值。

v mv 1图2 理想输⼊采样波形如图2所⽰为⼀个正弦输⼊波形,m V 为输⼊波形的峰值,1V 是介于0~ m V 的⼀个值。

DSP原理及图像处理应用第3章 GPIO及视频接口

DSP原理及图像处理应用第3章 GPIO及视频接口

(复习2) TMS320DM642 DSP芯片概况
前言
TMS320DM642是TI公司于2003年左右推出的一 款32位定点DSP芯片,主要面向数字媒体,属于 C6000系列DSP芯片; DM642 保留了 C64x 原有的内核机构及大部分外 设的基础上增加了 3 个双通道数字视频口,可同 时处理多路数字视频流。

Connects to IP packet networks McASP Multichannel audio serial port Up to 16 stereo lines (32 channels)

23x23sqmm flip-chip BGA package Maximizes channel density
2
C6000突出特点
1、超长指令结构VLIW 2、改进的哈佛结构 有哪些新东西?
3、内部集成大容量 SRAM
4、丰富的外设 5、DSP/BIOS 6、CSL
3
课程学习对象:TMS320DM642
1、DM642是C6000系列中获得广 泛应用一款芯片 2、处理器功能强大,结构富有 代表性,软硬件资源丰富 3、DM642与其他C6000系列DSP具 有类似的结构 可举一反三,快速了解C6000 系列DSP的工作原理 很容易学习其他C6000系列DSP 的使用方法
知识要点:
GPIO寄存器、视频口的配置方法
参 考 教 材
(复 习1)TI公司DSP芯片的命名规则
TI公司的DSP芯片类型多样,在选择DSP芯片时一定要仔 细辨别芯片表面的标识,以免选错器件;
以TMS32OC6412型DSP芯片为例,介绍TI公司DSP芯片 的命名规则,TMS320C6412芯片的符号含义如下:

dsp实验5:拨码开关控制实验

dsp实验5:拨码开关控制实验

苏州职业大学实训报告科目:DSP应用技术实训项目:拨码开关控制实验一、实验目的:1.了解ICETEK–F2812-A 评估板在TMS320F2812DSP 外部扩展存储空间上的扩展。

2.了解ICETEK–F2812-A 评估板上拨码开关扩展原理。

3.熟悉在C 语言中使用扩展的控制寄存器的方法。

二、实验设备:计算机,ICETEK-F2812-A 实验箱(或ICETEK 仿真器+ICETEK–F2812-A 系统板+相关连线及电源)。

三、实验原理:1.TMS320F2812DSP 的存储器扩展接口存储器扩展接口是 DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和存储器、寄存器映射的外设。

-ICETEK–F2812-A 评估板在扩展接口上除了扩展了片外SRAM 外,还扩展了指示灯、DIP 开关和D/A 设备。

具体扩展地址如下:C0002-C0003h: D/A 转换控制寄存器C0001h:板上 DIP 开关控制寄存器C0000h:板上指示灯控制寄存器-与ICETEK–F2812-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主要设备:108000-108004h:读-键盘扫描值,写-液晶控制寄存器108002-108002h:液晶辅助控制寄存器108003-108004h:液晶显示数据寄存器2.拨码开关扩展原理图 5.1指示灯扩展原理3.实验程序流程图四、实验步骤:1.实验准备关闭实验箱上扩展模块和信号源电源开关。

2.设置Code Composer Studio 3.3 在硬件仿真(Emulator)方式下运行3.启动Code Composer Studio 3.3选择菜单Debug→Reset CPU。

4.打开工程文件工程文件为:C:\ICETEK\F2812\DSP281x_examples\Lab0301-LED\LED.pjt打开源程序LED.c 阅读程序,理解程序内容。

DSP实验报告

DSP实验报告

装订线实验报告课程名称:微机原理及其应用指导老师:徐习东成绩:实验名称:实验一二三综合实验报告实验类型:同组学生姓名:一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求1、了解DSP的基本原理和实验过程。

完成实验一、二、三。

完成4段程序的运行过程。

2、了解DSP的编程方法,学习TI资源文件的使用方法,3、认识中断、GPIO、定时器等的编程使用方法。

二、实验内容和原理实验一LED绿灯的控制:共阳极发光二极管原理图如下图1 发光二极管原理图通过GPIO控制发光二极管DS20~DS25的亮灭。

当GPIOFx=0时,对应的发光二极管被点亮。

GPIO端口:GPIOF13~GPIOF8实验二实验名称:DSP实验综合报告姓名:学号:装订线利用CPU定时器和中断实现点亮了4盏规定的绿灯,同时控制灯分别以1s,100ms,10ms,1ms为周期交替亮灭。

通过设置CPU定时器,使1ms产生1个中断输出,再通过循环计数控制当分别产生1ms、10ms、100ms、1s的时间间隔进入中断,控制相应LED亮灭。

实验三分别用两种TI资源的方法编程,实现控制绿灯和红灯的要求。

方法一是仅仅使用TI规定的变量编程,方法二是使用TI资源的内置文件,初始化文件和.c文件等中的自带函数。

把6盏绿灯及16盏红灯有规律地控制点亮。

红灯的控制:LED接口如图:1、一端接电源高电平红灯的控制:2、一端接锁存器的输出;3、由两个锁存器控制16盏灯;两个锁存器:1、输入数据为实验名称:DSP实验综合报告姓名:学号:装订线GPIOB8 ~GPIOB15;2、锁存信号由GPIOE0 ~GPIOE2 控制;点灯控制:1、先确定第几组,第几盏;2、GPIOE输出组号,GPIOB输出位号;3、延时,GPIOE输出锁存信号三、主要仪器设备TMS实验板、PC机、程序烧写器四、操作方法和实验步骤1、实验一(1)学习DSP的相关内部元件的使用方法。

DSP技术实验报告-实验1开发环境及流水灯

DSP技术实验报告-实验1开发环境及流水灯

电子科技大学电子工程学院标准实验报告(实验)课程名称DSP技术实验题目开发环境及流水灯电子科技大学实验报告1.实验目的1.熟悉BF609开发板WL-BF609-EDU;2.熟悉CCES开发平台的使用;3.掌握CCES集成开发环境的基本操作和常用功能;4.掌握CCES工程的创建、程序编写、编译和调试;5.熟悉CCES集成开发环境工具的使用。

2.实验环境1.预装开发环境Cross Core Embedded Studio 1.0.2的计算机;2.BF609开发板一套;3.ADDS HPUSB-ICE仿真器一套。

3.实验内容1.了解BF609开发板WL-BF609-EDU;2.学习CCES集成开发环境的基本操作和常用功能;3.改写程序,实现开发板上的流水灯显示。

4.实验原理1.BF609开发板WL-BF609-EDU简介·CPUADSP-BF609 2个Blackfin内核,性能达500MHz/1000MMAC552K字节的片内SRAM,每个内核148KB的L1 SRAM流水线视觉处理器(PVP),支持HD存储器·存储器NOR FLASH:SST38VF3201 32MbitSPI FLASH:AT45DB161D 16MbitDDR2 SDRAM:MT47H64M16HR-25E 128MB ·LCD显示屏:480x272 TFT LCD TM043NDH02·视频:视频解码:CH7024通过i2c总线控制·C MOS SENSOR可连接CMOS OV9650摄像头进行视频采集可连接CMOS OV3640摄像头进行视频采集通过EPPI与CMOS MODULE链接,通过TWI控制摄像头·音频SSM2603音频Codec24-bit立体声模数和数模转换器高效率耳机放大器立体声线路输入和单声道麦克风输入音频采样速率最高达96kHz·USB OTGMini USB支持USB2.0串行接口:两个RS232串行接口MMC接口:可外接SD存储卡Link Port接口链路端口可连接到其他DSP或处理器的Link Port双向端口具有8条数据线、1条应答线和1条时钟线·键盘:4*4键盘·外部扩展口:4个扩展TWI接口、16-PIN扩展GPIO接口·其他:8个可编程LED灯·JTAG调试接口系统调试单元(SDU)通过JTAG接口提供IEEE-1149.1支持通过仿真器与PC机相连,实现JTAG调试功能ES开发环境简介CrossCore® Embedded Studio是针对ADI公司Blackfin®和SHARC®处理器系列的一流集成开发环境(IDE)。

DSP28035的GPIO配置流程-(重要资料)

DSP28035的GPIO配置流程-(重要资料)

配置流程To plan configuration of the GPIO module, consider the following steps: Step 1. Plan the device pin-out:00Through a pin multiplexing scheme, a lot of flexibility is provided for assigning functionality to the GPIO-capable pins. Before getting started, look at the peripheral options available for each pin, and plan pin-out for your specific system. Will the pin be used as a general purpose input or output (GPIO) or as one of up to three available peripheral functions? Knowing this information will help determine how to further configure the pin.通过一个管脚复用的计划,可以给GPIO管脚组的功能赋予更多灵活性。

在开始之前,先查看每个管脚的外设可用的选项,然后为你特定的系统计划管脚的用途。

管脚是被用于输入输出的通用用途还是用作三个外设功能中的一个?搞清楚信息能够帮助你更好的配置管脚。

Step 2. Enable or disable internal pull-up resistors: 00To enable or disable the internal pullup resistors, write to the respective bits in the GPIO pullup disable (GPAPUD and GPBPUD) registers. For pins that can function as ePWM output pins, the internal pullup resistors are disabled by default. All other GPIO-capable pins have the pullup enabled by default. The AIOx pins do not have internal pull-up resistors.通过向GPIO取消上拉寄存器(GPAPUD和GPBPUD)特定为写0/1,来使能或者取消内部上拉电阻。

GPIO的操作规则和步骤

GPIO的操作规则和步骤

GPIO的操作规则和步骤⼀个名词,GPIO,英⽂全称是general purpose input/output,意为通⽤输⼊输出⼝。

DSP最终都是通过程序和外部模块或者设备产⽣数据交换的,所以,必须了解她的输⼊输出端⼝。

都还记得51单⽚机的输⼊输出⼝吧,虽然我好久没有给51编制过程序了,但是还记得51的输⼊输出端⼝是可以直接拿来赋值使其输出,或者直接⽤⼀条if语句去检测有⽆数据输⼊,相⽐⽽⾔,DSP的输⼊输出端⼝在这⽅⾯就复杂的多了。

⼀点要记住,DSP的GPIO端⼝,必须先设置后使⽤,具体需要⾃⼰编程设置某⼀个⼝线以下的⼏个点:1,该⼝是使能它的第⼀功能还是第⼆功能(因为很多端⼝都有复⽤的第⼆功能);2,该⼝如果使⽤输⼊输出功能,那么到底是⽤作输⼊,还是⽤作输出;以上两项设置完毕之后,就可以对GPIO⼝进⾏读或者写的操作了,不管读还是写⼀个⼝,都有相关的数据寄存器来存放你写到该⼝的值,或者外部输⼊给了这个端⼝,你需要通过读取这个数据寄存器得到这个外部输⼊的数据,仅此⽽已。

TI把GPIO分成了6组,这六组分别是GPIOA,GPIOB,GPIOD,GPIOE,GPIOF,GPIOG,这其中的每⼀组都包含了⼀个DSP实实在在的展⽰给外界的多个引脚,我们以GPIOA为例来看看仅仅是第⼀组GPIOA她究竟是包含了那些引脚。

可以看到,仅仅GPIOA这⼀组,包含了16个引脚,图⽚中第⼆列即为TI在出⼚时给这款DSP引脚所命的名称,通过查阅2812的176针LQFP封装定出了这16个引脚分别对应了92,93,94,95,98,101,102,104,106,107,109,116,117,122,123,124脚。

下⾯我们以GPIOA这⼀组为例,来看看相关寄存器的设置以及使⽤。

寄存器包含两⼤类,第⼀类叫控制寄存器,第⼆类叫数据寄存器。

控制寄存器包含三个:GPAMUX,GPADIR,GPAQUAL----功能选择,⽅向设置,输⼊限定;数据寄存器包含4个:GPADAT,GPASET,GPACLEAR,GPATOGGLE----数据,置⼀,清零,取反;前已述及,通过控制寄存器去设置GPIO的功能,通过数据寄存器去获取或者写⼊数据。

tms320f28335的gpioa组控制原理

tms320f28335的gpioa组控制原理

tms320f28335的gpioa组控制原理TMS320F28335的GPIOA组控制简介TMS320F28335是德州仪器(Texas Instruments)推出的一款高性能数字信号处理器(DSP)。

作为一名资深的创作者,学习如何利用TMS320F28335的GPIOA组进行控制是十分重要的。

GPIO(General Purpose Input Output)是通用输入输出口,可以连接外部设备和传感器,用于数据的输入和输出。

本文将深入浅出地介绍TMS320F28335的GPIOA组控制的相关原理,帮助读者了解如何使用这个强大的功能。

GPIOA组GPIOA组是TMS320F28335芯片的一部分,它提供了32个独立的GPIO引脚,可以通过编程将其配置为输入或输出。

这些引脚可以连接到外部设备,例如LED灯、开关、传感器等。

引脚配置在开始控制GPIOA组之前,首先需要将引脚配置为输入或输出模式。

可以通过设置特定的寄存器来实现。

输入模式将引脚配置为输入模式时,可以读取外部设备或传感器的信号。

下面是配置引脚为输入模式的示例代码:= 0; // 设置GPIO0为普通IO口= 0; // 设置GPIO0为输入上述代码将将GPIO0配置为输入模式。

通过修改GPIO0的GPAMUX1和GPADIR寄存器的特定位,可以实现配置其他引脚为输入模式的操作。

输出模式将引脚配置为输出模式时,可以向外部设备发送信号。

下面是配置引脚为输出模式的示例代码:= 0; // 设置GPIO1为普通IO口= 1; // 设置GPIO1为输出上述代码将将GPIO1配置为输出模式。

通过修改GPIO1的GPAMUX1和GPADIR寄存器的特定位,可以实现配置其他引脚为输出模式的操作。

读取输入一旦将引脚配置为输入模式,就可以读取与之连接的外部设备或传感器的信号。

下面是读取输入信号的示例代码:Uint16 input = ; // 读取GPIO0的输入信号上述代码将GPIO0的输入信号读取到变量input中。

数字信号处理 通用输入输出口(GPIO)

数字信号处理 通用输入输出口(GPIO)

GPIO配置
GPIO配置步骤
• ①规划引脚功能,即规划引脚作为通用输入或输出I/O口,或复用为特殊功 能外设引脚。
• ②使能或禁止内部上拉功能(通过配置GPxPUD相应位)。 • ③对输入引脚进行限制(通过配置GPxCTRL、GPxQSELn)。 • ④配置引脚的功能(通过配置GPxMUXn)。 • ⑤对于通用数字I/O口,配置引脚的方向(通过配置GPxDIR)。 • ⑥选择低功耗模式唤醒源。若需用I/O口将器件从低功耗模式下唤醒,则需
• 引脚以它们的通用I/O名称来命名(GPIO0~GPIO87)。这些引脚可 以被单独地选为数字I/O进行操作,简称为GPIO;或者被连接到不 超过三个外设I/O信号中的一个信号上(通过GPxMUXn寄存器)。
• 如果引脚工作在数字I/O模式,可通过寄存器配置引脚方向(通过 GPxDIR寄存器),也可以限制输入信号的脉宽以消除不必要的噪声 (通过GPxQSELn、GPACTRL和GPBCTRL寄存器)。
通过配置GPIOLPMSEL寄存器来指定实现唤醒功能的I/O口。 • ⑦选择外部中断源。若需用I/O口作为外部中断源的输入引脚,则需配置
GPIOINTxSEL和GPIOXNMISEL寄存器来指定I/O口。
GPIO数据控制
GPIO数据控制:GPxDAT、GPxSET、GPxCLEAR、GPxTOGGLE寄存器
GPxCLEAR寄存器:
• GPxCLEAR寄存器用来将特定GPIO引脚驱动为低电平,而不干扰其它引脚。 • 如果引脚被配置成通用I/O输出功能,向GPxCLEAR寄存器中的相应位写1,将
会使输出GPIO输出,那么值将会被锁存,但是引脚不被驱动。
• 三组32位的输入/输出端口。端口A包含GPIO0~GPIO31,端口B包含 GPIO32~GPIO63,端口C包含GPIO64~GPIO87。

DSP28035的GPIO配置流程

DSP28035的GPIO配置流程

To plan configuration of the GPIO module, consider the following steps: Step 1. Plan the device pin-out:Through a pin multiplexing scheme, a lot of flexibility is provided for assigning functionality to the GPIO-capable pins. Before getting started, look at the peripheral options available for each pin, and plan pin-out for your specific system. Will the pin be used as a general purpose input or output (GPIO) or as one of up to three available peripheral functions? Knowing this information will help determine how to further configure the pin.通过一个管脚复用的计划,可以给GPIO管脚组的功能赋予更多灵活性。

在开始之前,先查看每个管脚的外设可用的选项,然后为你特定的系统计划管脚的用途。

管脚是被用于输入输出的通用用途还是用作三个外设功能中的一个?搞清楚信息能够帮助你更好的配置管脚。

Step 2. Enable or disable internal pull-up resistors:To enable or disable the internal pullup resistors, write to the respective bits in the GPIO pullup disable (GPAPUD and GPBPUD) registers. For pins that can function as ePWM output pins, the internal pullup resistors are disabled by default. All other GPIO-capable pins have the pullup enabled by default. The AIOx pins do not have internal pull-up resistors.通过向GPIO取消上拉寄存器(GPAPUD和GPBPUD)特定为写0/1,来使能或者取消内部上拉电阻。

DSP实验应用GPIO控制

DSP实验应用GPIO控制

DSP实验应用GPIO控制实验一 GPIO控制一.实验基本原理 1. 程序功能:通过对GPIO的设置来实现对实验板上LED(3D0)的亮灭的控制具体可分为对DPLL 和GPIO的控制.(1)时钟电路 a) C5509的时钟电路由一个DPLL和一个时钟模式寄存器CLKMD组成b) 在CLKMD的控制下,DPLL对外部输入时钟进行分频、倍频和锁相,为CPU及外设提供工作时钟CLKIN pin DPLL CLKOUT pinCLKMD CLKMD pin (2)时钟模式寄存器CLKMD相关控制字含义:IAI:退出省电状态后如何进行跟踪,是继续省电状态之前的设定还是重新进行整个跟踪锁定IOB:发生失锁时时钟电路的动作,是继续输出时钟信号还是切换到旁路模式PLLMULT:锁定模式下的倍频次数 PLLDIV:锁定模式下的分频次数(3)GPIO -C5509有8个相互独立的可编程GPIO管脚(IO0 ~IO7)构成 -各个GPIO管脚的方向控制(输入或输出)由方向寄存器IODIR设定-各个GPIO管脚上的输入/输出电平由寄存器IODATA控制 2.芯片支持库(1)DSP片上外设种类及其应用日趋复杂(2)提供一组标准的方法(APIs:函数、数据类型、宏)用于配置、控制和管理DSP 片上外设(3)免除用户编写配置和控制片上外设所必需的定义和代码(4)CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化(5)CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中(6)CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响二.实验所用到的硬件资源和在片外围电路硬件资源CPU、LED、蜂鸣器、电阻、电容等在片外围电路时钟发生器、通用输入/输出口等三.参数设置CPU时钟:PLL multiply value=24; PLL divide value =1;CLKOUT=PLLMULT/(PLLDIV+1)*CLKIN =24/2*12M=144MHZ小灯亮或灭的时间:N*13*16*65536/(144*10^6)=1.1s(N为指令周期) 四.实验流程图五.程序 #include #include#include void delay(); /*锁相环的设置*/PLL_Config myConfig = {0, //IAI: the PLL locks using the same process that was underway //before the idle mode was entered 1, //IOB: If the PLL indicates a breakin the phase lock,//it switches to its bypass mode and restarts the PLL phase-locking//sequence24, //PLL multiply value; multiply 24 times1 //Divide by2 PLL divide value; it can be either PLL dividevalue//(when PLL is enabled), or Bypass-mode divide value//(PLL in bypass mode, if PLL multiply value is set to 1) }; main() {/*初始化CSL库*/CSL_init();/*设置系统的运行速度为144MHz*/PLL_config(&myConfig); /*确定方向为输出*/ // ioport unsigned int*IODIR; // IODIR=(unsigned int *)0x3400; // ioport unsigned int *IODATA;// IODATA=(unsigned int *)0x3401;// *clkmd =0x21f3; // 晶振12Hz,9Hz=0x21f3;// 144MHz=0x2613 GPIO_RSET(IODIR,0xFF); while(1) {GPIO_RSET(IODATA,0x0c0); delay();GPIO_RSET(IODATA,0x000); delay();} }void delay() {Uint32 j = 0,k = 0; for(j = 0;j<0xc0;j++) {for(k = 0;k<0xffff;k++)}}{}感谢您的阅读,祝您生活愉快。

14-2812DSP-07XINTF及GPIO

14-2812DSP-07XINTF及GPIO

具有多达56个独立 可编程复用的通用 双向的数字 I/O端 2 口
如果是数字I/O模式,方向控制寄存器 (GPxDIR)用来配置引脚的信号传输 方向,并通过限制寄存器( GPxQUAL)限制输入信号的脉冲宽 度以消除噪声
当DSP复位时,所有的GPIO引脚被配 置为输入引脚
电气与信息工程学院
C28x GPIO Pin Assignment
GPIO F
GPIOF0 / GPIOF1 / GPIOF2 / GPIOF3 / GPIOF4 / GPIOF5 / GPIOF6 / GPIOF7 / GPIOF8 / GPIOF9 / GPIOF10 / GPIOF11 / GPIOF12 / GPIOF13 / GPIOF14 /
GPIO G
• • •
1
MUX Control Bit 0 = I/O Function 1 = Primary Function GPxMUX
Pin
15 - 8
7-0
Some digital I/O and peripheral I/O input signals include an Input Qualification feature
•时基由内部时钟XTIMCLK 决定;
•XINTF 配置参数的改变可以引起处理时间的变化,所以用于配 置参数的代码不能放在XINTF 区域中执行。 电气与信息工程学院
F2812 外部 接口分区示 意图
DSP技术及应用
281x XINTF及GPIO
XINTF时钟
所有的XINTF 总线周期都从XCL KOUT 的上升沿开始,所有的定 时和事件都是从XTIMCLK 的上 升沿开始。
GPIO D
GPIOD0 GPIOD1 GPIOD5 GPIOD6 / / / / T1CTRIP_PDPINTA T2CTRIP / EVASOC T3CTRIP_PDPINTB T4CTRIP / EVBSOC

DSPGPIO口实验

DSPGPIO口实验

DSPGPIO口实验实验三通用输入输出GPIO实验一、实验目的1、通过实验学习使用TMS320F2812DSP的通用输入输出管脚直接控制外围设备的方法。

2、了解发光二极管的控制编程方法。

3、了解直流电机的控制编程方法。

二、预习要求TMS320F2812有56个通用输入输出管脚,这些管脚既可以作为外设的引脚,也可以作为通用输入输出口使用。

GPIO AGPIOA0/PWM1GPIOA1/PWM2GPIOA2/PWM3GPIOA3/PWM4GPIOA4/PWM5GPIOA5/PWM6GPIOA6/T1PWM_T1CMP GPIOA7/T2PWM_T2CMP GPIOA8/CAP1_QEP1 GPIOA9/CAP2_QEP2 GPIOA10/CAP3_QEPI1 GPIOA11/TDIRAGPIOA12/TCLKINA GPIOA13/C1TRIPGPIOA14/C2TRIPGPIOA15/C3TRIP GPIO BGPIOB0/PWM7GPIOB1/PWM8GPIOB2/PWM9GPIOB3/PWM10 GPIOB4/PWM11 GPIOB5/PWM12 GPIOB6/T3PWM_T3CMP GPIOB7/T4PWM_T4CMP GPIOB8/CAP4_QEP3 GPIOB9/CAP5_QEP4 GPIOB10/CAP6_QEPI2GPIOB11/TDIRBGPIOB12/TCLKINB GPIOB13/C4TRIPGPIOB14/C5TRIPGPIOB15/C6TRIPGPIO DGPIOD0/T1CTRIP_PDPINTA GPIOD1/T2CTRIP/EVASOC GPIOD5/T3CTRIP_PDPINTB GPIOD6/T4CTRIP/EVBSOC GPIO E GPIOE0/XINT1_XBIO GPIOE1/XINT2_ADCSOC GPIOE2/XNMI_XINT13GPIO F GPIOF0/SPISIMOA GPIOF1/SPISOMIA GPIOF2/SPICLKA GPIOF3/SPISTEA GPIOF4/SCITXDA GPIOF5/SCIRXDA GPIOF6/CANTXA GPIOF7/CANRXA GPIOF8/MCLKXA GPIOF9/MCLKRA GPIOF10/MFSXA GPIOF11/MFSRA GPIOF12/MDXA GPIOF13/MDRA GPIOF14/XFGPIO G GPIOG4/SCITXDB GPIOG5/SCIRXDB三、实验原理与参考电路1、发光二极管控制ICETEK-CTR 板上有一个LED 直接受DSP 的GPIO 控制,它是交通灯模块“南”侧的红色指示灯,电路原理图如下图所示。

第9章 通用输入输出多路复用器GPIO-张蕾——DSP原理及应用课件PPT

第9章 通用输入输出多路复用器GPIO-张蕾——DSP原理及应用课件PPT

名称
GPFDAT GPFSET GPFCLEAR GPFTOGGLE GPGDAT GPGSET GPGCLEAR GPGTOGGLE
地址 0x000070F4 0x000070F5 0x000070F6 0x000070F7 0x000070F8 0x000070F9 0x000070FA 0x000070FB
若要读取当前引脚输入的电平,读取GPIOA数据寄存器 GPADAT的D0位。
判断引脚输入电平的高低
if(GpioDataRegs.GPADAT.bit.GPIOA0==1) //PWM1引脚输入的电平是高电平 {
…… }
if(GpioDataRegs.GPADAT.bit.GPIOA0==0) //PWM1引脚输入的电平是低电平 {
地址 0x000070E0 0x000070E1 0x000070E2 0x000070E3 0x000070E4 0x000070E5 0x000070E6 0x000070E7 0x000070EC 0x000070ED 0x000070EE 0x000070EF 0x000070F0 0x000070F1 0x000070F2 0x000070F3
通过寄存器设置其应用
X281X的通用输入/输出多路复用器GPIO就是I/O引脚的 管理机构,它将56个引脚分成了6组来进行管理,其中 GPIOA和GPIOB各管理16个引脚,GPIOD管理4个引脚, GPIOE管理3个引脚,GPIOF管理15个引脚,GPIOG管理 2个引脚。
GPIO多路功能复用的原理
…… }
GPIO数据寄存器-GPxDAT寄存器不受EALLOW保护,可读/写, 写此寄存器将把对应的状态作为设置的I/O引脚的信号输出, 写2输出高电平,写0输出低电平。

基本外设及其应用开发GPIO模块应用实验

基本外设及其应用开发GPIO模块应用实验

基本外设及其应⽤开发GPIO模块应⽤实验基本外设及其应⽤开发GPIO模块应⽤实验姓名学号031130217学院⾃动化学院专业测控技术与仪器⼆〇⼀四年⼗⼆⽉基本外设及其应⽤开发GPIO模块应⽤实验031130217(南京航空航天⼤学⾃动化学院)⼀、实验内容(1) GPIO00~GPIO03作为输出引脚,控制4只发光⼆极管。

编写程序,使发光⼆极管循环点亮。

(2) GPIO50~53作为输⼊引脚,采样四个开关的输⼊状态;GPIO00~GPIO03作为输出引脚控制4只发光⼆极管。

编写程序读取开关状态,将此状态,在发光⼆极管上显⽰出来。

⼆、实验原理图【DSP的引脚输出和输⼊排列】输出输⼊三、实验源程序(1)流⽔灯IO控制部分源程序void main(void){// Step 1. Initialize System Control:// PLL, WatchDog, enable Peripheral ClocksInitSysCtrl();// Step 2. Initalize GPIO:InitGpio();// Step 3. Clear all interrupts and initialize PIE vector table:// Disable CPU interruptsDINT;// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000;IFR = 0x0000;EALLOW;GpioCtrlRegs.GPADIR.all = 0xFFFF;GpioDataRegs.GPADAT.bit.GPIO0= 0x1;GpioDataRegs.GPADAT.bit.GPIO3= 0x1;for(;;){GpioDataRegs.GPATOGGLE.bit.GPIO0= 0x1;DELAY_US(0x40000);GpioDataRegs.GPATOGGLE.bit.GPIO1= 0x1;DELAY_US(0x40000);GpioDataRegs.GPATOGGLE.bit.GPIO2= 0x1;DELAY_US(0x40000);GpioDataRegs.GPATOGGLE.bit.GPIO3= 0x1;DELAY_US(0x40000);}EDIS;}(2)读取开关状态实验,IO部分源程序void main(void){// Step 1. Initialize System Control:// PLL, WatchDog, enable Peripheral Clocks InitSysCtrl();// Step 2. Initalize GPIO:InitGpio();// Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interruptsDINT;// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000;IFR = 0x0000;EALLOW;GpioCtrlRegs.GPADIR.bit.GPIO0 = 0x1; GpioCtrlRegs.GPADIR.bit.GPIO1 = 0x1; GpioCtrlRegs.GPADIR.bit.GPIO2 = 0x1; GpioCtrlRegs.GPADIR.bit.GPIO3 = 0x1; GpioCtrlRegs.GPBDIR.bit.GPIO50 = 0x0; GpioCtrlRegs.GPBDIR.bit.GPIO51 = 0x0;for(;;){GpioDataRegs.GPADAT.bit.GPIO0= GpioDataRegs.GPBDAT.bit.GPIO50;DELAY_US(0x40000);GpioDataRegs.GPADAT.bit.GPIO1= GpioDataRegs.GPBDAT.bit.GPIO51;DELAY_US(0x40000);GpioDataRegs.GPADAT.bit.GPIO2= GpioDataRegs.GPBDAT.bit.GPIO52;DELAY_US(0x40000);GpioDataRegs.GPADAT.bit.GPIO3= GpioDataRegs.GPBDAT.bit.GPIO53;DELAY_US(0x40000);}EDIS;}四、实验结果分析(1)流⽔灯实验GPIO00~GPIO03作为输出引脚,控制4只发光⼆极管。

(完整版)DSPGPIO相关寄存器的设置最详细的一份资料了

(完整版)DSPGPIO相关寄存器的设置最详细的一份资料了

(完整版)DSPGPIO相关寄存器的设置最详细的一份资料了每个通用I/O 端口都受多路复用(MUX),方向(DIR),数据(DAT),置位(SET),清除(CLEAR),以及切换(TOGGLE)寄存器的控制。

下面介绍这些寄存器的功能。

GPxMUX 寄存器(x=A,B,D,E,F,G)每个I/O 端口都有一个MUX(多路复用)寄存器。

这个寄存器用来在每个引脚(PIN)的外设操作及I/O 操作之间进行选择。

复位时所有通用I/O 引脚都配置成数字I/O 功能。

任何一个引脚都可通过16 位的多路复用寄存器 GPxMUX 进行外设或GPIO 功能的设置:当GPxMUX.bit = 0,相应的一个引脚配置成I/O 功能;当GPxMUX.bit = 1,相应的一个引脚配置成外设功能。

GPxDIR 寄存器(x=A,B,D,E,F,G)每个I/O 端口都有一个方向控制寄存器。

不论是将相应的I/O 引脚配置成输入还是输出,都由方向寄存器控制。

复位时,所有通用I/O 引脚均配置成输入。

当GPxDIR.bit = 0,引脚配置成输入;当GPxDIR.bit = 1,引脚配置成输出。

在采用GPxDIR 寄存器位将输入端口改变成输出端口之前,引脚的当前电平反映到GPxDAT 寄存器中。

当端口的方向从输入改变成输出时,GPxDAT 寄存器的值用来确定引脚的电平。

例如,如果引脚已经从内部上拉,则复位后上拉将致使GPxDAT 寄存器对应位为1用于反映引脚的当前高电平。

当端口的方向从输入改变成输出时,GPxDAT 寄存器已经为1 的位强迫该引脚为同一高电平。

这样,在电平不变的情况下,引脚能够从输入转换为输出。

GPxDAT 寄存器(x=A,B,D,E,F,G)。

DSP28335GPIO输入引脚信号跳变

DSP28335GPIO输入引脚信号跳变

DSP28335GPIO输⼊引脚信号跳变程序中时常需要将GPIO引脚配置为输⼊引脚,从⽽接收外部的开关量信号,当开关信号变化时执⾏相应操作或给相应标志位置位。

这本⾝很常见,但是最近在调试的过程中却遇到了明明外部信号(例如按钮并未按下)并未改变,GPIO输⼊引脚信号确发⽣跳变,导致程序执⾏步骤出现错误。

在CCS⾥将相应GPIO引脚的GPxDAT寄存器添加到变量监视窗⼝,可以明显看到信号偶尔出现跳变(变量所在⾏变黄⾊),考虑应该是现场电磁⼲扰导致的信号跳变。

重新检查调整物理接线,偶尔跳变现象依旧存在。

问题发⽣时因为正在现场调试,急着尽快解决问题,想了⼀个“⼟办法”,由单层if判断语句1if(GpioDataRegs.GPxDAT.bit.GPIOxx==0)//已使能内部上拉,0代表按钮按下2 {3标志位置位;4 }变成双层if判断语句,两层if判断语句之间带10ms延迟1if(GpioDataRegs.GPxDAT.bit.GPIOxx==0)//已使能内部上拉,0代表按钮按下2 {3 DELAY_US(10000);//延时保持45if(GpioDataRegs.GPxDAT.bit.GPIOxx==0)6 {7标志位置位;8 }9 }使⽤这样的“⼟办法”确实解决了现场调试遇到的GPIO输⼊引脚信号跳变问题,实验了⼀天再没有出现程序执⾏步骤出错的问题。

回酒店之后继续思考这个问题,⼜读了⼀遍TI的寄存器⼿册。

发现有两个GPIO引脚相关寄存器GPxCTRL:The GPxCTRL registers specify the samping period for input pins when configured for input qualification using a window of 3 or 6 samples .The sampling period is the amount of time between qualification samples relative to the period of SYSCLKOUT . The number of samples is specified in the GPxQSELn registers.Value Description0x00 Samping period = T(SYSCLKOUT ) x 10x01 Samping period = T(SYSCLKOUT ) x 20x02 Samping period = T(SYSCLKOUT ) x 4......0xFF Samping period = T(SYSCLKOUT ) x 510GPxQSELn:Select input qualification type for GPIO. The input qualification of each GPIO input is controlled by two bits .Value Description00 Synchronize to SYSCLKOUT only .01 Qualification using 3 samples .10 Qualification using 6 samples .11 Asynchronous .(no synchronization or qualification) .简单点说,GPxCTRL 决定了输⼊引脚的指定采样周期,也就是采样相对于系统时钟的周期,⽽GPxQSELn则决定了采样个数。

DSP对LED控制实训指导书

DSP对LED控制实训指导书

DSP对LED控制实训指导书1.实验目的(1)学会打开一个工程(2)学会编译、调试(3)了解DSP IO口的使用2.实验设备(1)PC机一台(2)HKTY-1型离网/并网逆变系统实验箱一台3.实验内容控制开发箱内实验板上的LED指示灯闪烁,学习DSP的IO口作为输出管脚使用。

上图为LED驱动电路图。

此电路中采用倒灌式输入方式,其目的是为了增加IO的驱动电流。

本实验我们配置DSP的GPIO60和GPIO61为普通IO口模式,方向为输出。

当IO口电平为低时LED亮,IO口电平为高时LED熄灭。

使用DSP的IO口和单片机的IO口有许多的不同之处。

首先,在DSP 使用IO 口之前,要先配置GPXMUX 寄存器,将该寄存器的利用的相应位置为0;既然配置为通用IO 口后就要配置器方向是作为输入还是作为输出的,这些都要在初始化中配置。

具体实例看实验代码。

4.实验步骤(1)在仿真器USB接口连接到PC机以后,将仿真器的JTAG接头与开发板JTAG接口相连,闭合开发箱左上角的红色电源开关。

核心板上的电源指示灯亮。

(2)运行CCStudiov3.3,如下图所示。

窗口左下角会显示表示还没有与目标板建立连接。

(3)选择Project->Open,打开需要运行的实验工程,本实验代码的路径为D:\DSP28335_Code\GPIO_LED。

(注:代码路径不能出现任何的中文字符)如下图:(4)打开工程后,可以在左边的files窗口中查看工程里的文件,如下图:(5)选择Project->RebuildAll编译源程序,当你只是修改了一个文件,可以只是单独编译这个文件,这样可以提高调试速度,点下图中的incrementalbuild。

(6)编译完成后连接目标板,选择Debug->Connect(或按组合键ALT+C),程序窗口左下角会显示,表示已经与目标板连接成功。

(7)下载程序,选择File->LoadProgram..(或按CTRL+L),打开LoadProgram 窗口,打开Debug文件夹选择xxx.out文件下载。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 GPIO 控制
一. 实验基本原理
1. 程序功能:
通过对GPIO 的设置来实现对实验板上LED (3D0)的亮灭的控制 具体可分为对DPLL 和GPIO 的控制.
(1)时钟电路
a) C5509的时钟电路由一个DPLL 和一个时钟模式寄存器CLKMD 组成
b) 在CLKMD 的控制下,DPLL 对外部输入时钟进行分频、倍频和锁相,为CPU 及外设提供工作时钟
(2)时钟模式寄存器
CLKMD
相关控制字含义:
IAI :退出省电状态后如何进行跟踪,是继续省电状态之前的设定还是重新进行整个跟踪锁定
IOB:发生失锁时时钟电路的动作,是继续输出时钟信号还是切换到旁路模式 DPLL CLKMD CLKIN pin CLKOUT pin
CLKMD pin
PLLMULT:锁定模式下的倍频次数
PLLDIV:锁定模式下的分频次数
(3)GPIO
-C5509有8个相互独立的可编程GPIO管脚(IO0 ~IO7)构成
-各个GPIO管脚的方向控制(输入或输出)由方向寄存器IODIR设定
-各个GPIO管脚上的输入/输出电平由寄存器IODATA控制
2.芯片支持库
(1)DSP片上外设种类及其应用日趋复杂
(2)提供一组标准的方法(APIs:函数、数据类型、宏)用于配置、控制和管理DSP片上外设
(3)免除用户编写配置和控制片上外设所必需的定义和代码
(4)CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化
(5)CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中
(6)CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响
二.实验所用到的硬件资源和在片外围电路
硬件资源
CPU、LED、蜂鸣器、电阻、电容等
在片外围电路
时钟发生器、通用输入/输出口等
三.参数设置
CPU时钟:PLL multiply value=24;PLL divide value =1;
CLKOUT=PLLMULT/(PLLDIV+1)*CLKIN
=24/2*12M=144MHZ
小灯亮或灭的时间:N*13*16*65536/(144*10^6)=1.1s(N为指令周期) 四.实验流程图
五.程序
#include <csl_pll.h>
#include <csl_chip.h>
#include <csl_gpio.h>
void delay();
/*锁相环的设置*/
PLL_Config myConfig = {
0, //IAI: the PLL locks using the same process that was underway
//before the idle mode was entered
1, //IOB: If the PLL indicates a break in the phase lock,
//it switches to its bypass mode and restarts the PLL phase-locking
//sequence
24, //PLL multiply value; multiply 24 times
1 //Divide by
2 PLL divide value; it can be either PLL divide value
//(when PLL is enabled), or Bypass-mode divide value
//(PLL in bypass mode, if PLL multiply value is set to 1)
};
main()
{
/*初始化CSL库*/
CSL_init();
/*设置系统的运行速度为144MHz*/
PLL_config(&myConfig);
/*确定方向为输出*/
// ioport unsigned int *IODIR;
// IODIR=(unsigned int *)0x3400;
// ioport unsigned int *IODATA;
// IODATA=(unsigned int *)0x3401;
// *clkmd =0x21f3; // 晶振12Hz,9Hz=0x21f3;// 144MHz=0x2613 GPIO_RSET(IODIR,0xFF);
while(1)
{
GPIO_RSET(IODATA,0x0c0);
delay();
GPIO_RSET(IODATA,0x000);
delay();
}
}
void delay()
{
Uint32 j = 0,k = 0;
for(j = 0;j<0xc0;j++)
{
for(k = 0;k<0xffff;k++)
{}
}
}。

相关文档
最新文档