嵌入式实验报告

嵌入式实验报告

姓名:邓庆

学号:1075490019 学院:通信工程学院

实验一 电源、复位、时钟管理单元

(一) 实验目的

1. 了解如何配置不同的时钟。

2. 如何使用MRCC的功能而读取芯片上不用的时钟的当前状态和频率。

3. 如何处理外部4MHZ的石英振荡器损坏情况的检测。

(二) 实验原理

STR750的时钟输入源共有5个,这些时钟源为MCU系统提供时钟,从而得到HCLK和PCLK。

1. 内部自由运行的振荡器可以提供1~10MHZ的时钟,他们作为应急时钟。它由配置在自由云子那种模式下的PLL组成。

2. OSC4M:4MHZ主振荡器。

3. OSC32K:32.768KMZ振荡器即可以驱动系统时钟,也可以驱动RTC。

4. LPOSC:内部的提耗能RC振荡器,所提供的频率大约为300KMZ,该时钟可以驱动系统时钟,也可以驱动RTC。

5. USB_CK:可以专门为USB提供48KHZ的时钟。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_cfg.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

引脚P0.12上连接了一个灯,它会随着系统时钟不断的闪烁。如果再OSC4M上没有时钟的话该灯就会停止闪烁。

(五) 心得

缺少了时钟,就好像人的脉搏不在跳动一样,可以想象时钟的作用很大,通过本次实验使我了解到STR750的时钟配置,以及相应的寄存器的使用,对于STR750的时钟分配以及产生应用有了进一步的熟悉。

实验二 通用输入/输出端口(GPIO)

(一) 实验目的

1. 通过实验,理解通用输入输出端口的工作过程和作用。

2. 学习在软件系统的设计中输入使用输入输出的端口。

(二) 实验原理

1. GPIO介绍:它是相对于芯片本身而言的,如某个引脚是芯片的GPIO脚,则该引脚可以作为输入输出高低电平使用,当然某些引脚具有复位功能,既可以用作GPIO也可以用作其他功能。

2. GPIO的工作过程

1) 每个通用IO端口都有3个32为的配置寄存器、1个32位的数据寄存器和1个32位的可屏蔽寄存器。根据Datasheet中所列的通用IO端口的特殊硬件特征,通用IO端口的每一位都可以由软件单独配置成下面的几种模式: a) 输入悬空;

b) 输入上拉;

c) 输入下拉;

d) 模拟输入;

e) 输出开漏;

f) 输出推免;

g) 可选功能;

2) 虽然每个IO端口位都可以自由编程,但是IO端口寄存器只能进行32位访问,不允许进行字节或者比特访问。

3) 在刚复位之后,可选功能还处于无效状态,IO端口配置为输入悬空模式。

4) 当被配置为输出时,写入到IO数据寄存器中的数据就加载到输出寄存器中。输出锁存器所有的输出的值,可以在推免模式或者开漏模式使用输出驱动。

5) 在每个APB时钟周期里输入锁存器IO引脚的数据。读IO数据寄存器是读输入寄存器还是输出寄存器是由端口的配置决定。

6) 在除Standby模式外的所有电源模式中,GPIO的状态是保留的,Standby模式中所有GPIO引脚为高祖状态。

(三) 实验步骤

1. 在IAR集成开发环境下新建一个名为GPIO的工程,然后保存。

2. 向工程里添加文件:

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序后观察到,LED1、LED2、LED3、LED4依次轮流闪烁。

(五) 收获心得

通过本次实验,学习了GPIO的功能和编程过程,深刻理解了GPIO的端口的输入输出模式及端口寄存器是如何配置,同时也学习到了GPIO相关寄存器的种类和地址等工作方式,为以后的学习增加了知识储备,打下了基础。

实验三 EIC增强型中断控制器

(一) 实验目的

1. 通过实验,了解增强型中断控制的工作过程和作用。

2. 了解EIC对多通道中断处理机制和实现方法。

3. 学习使用EIC的寄存器设置流程和编程方法。

(二) 实验原理

1. EIC介绍:ARM内核提供两种中断级别:FIQ主要永固快速、低反应时间的中断处理;IRQ主要用于其它的普通中断处理。STR750中断管理系统提供了两个中断管理模块;增强型中断控制器EIC和外部中断控制EXTIT。EIC实现了对多个中断通道的硬件处理、中断优先级决策并计算中断向量。

2. EIC的工作过程:

1) 根据相关的通道屏蔽位接受或者拒绝响应的中断要求。

2) 将所有挂起的IRA中断请求的优先级与当前的优先级比较,如果中断请求的优先级高于当前优先级,则这个IRQ请求会传给ARM7内核。如果中断请求的优先级低于当前的优先级,则根据实际情况讲中断请求挂起或者屏蔽。

3) 将最高优先级的IRQ中断的地址向量加载熬中断向量寄存器中。

4) 一旦ARM内核响应了一个新的IRQ中断请求,EIC就会将以前的优先级保存在硬件优先级栈中。

5) 当ARM内核响应了一个新的IRQ中断请求中,用新的优先级更新当前中断优先级寄存器。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_time.c

+75x_eic.c

+75x_cfg.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序后观察到LED4、LED3和LED2分别隔一定时间闪烁,LED4频率最高,LED3次之,LED2闪烁频率最低。

(五) 获得心得

通过本次实验,学习了EIC的功能和编程过程,对中断子程序的调用和返回有了更具体

的理解。

实验四 EXTIT外部中断控制器

(一) 实验目的

1. 通过实验,学习EXTIT对外设中断请求响应和处理的工作工程。

2. 学习使用EXTIT的寄存器设置流程和编程方法。

(二) 实验原理

1. EXTIT介绍:外部中断控制器可以对外来自外设的中断进行响应。EXTIT包括16个用于产生中断请求的边缘检测器。每个中断都能给独自的设置触发事件也可以独立的被屏蔽。

2. EXTIT的功能描述:

1) 中断请求可以通过硬件和软件两种方式,要产生硬件中断,中断线要被设置并时能,这个需要将触发器设置成需要的极性,通过将屏蔽寄存器中相应位置1使能中断请求。当选择的边沿在外部中断线上发生时,中断请求就产生,这个中断请求在挂起寄存器被设置1后复位。

2) 本实验使用软件模拟产生中断,过程如下:

配置16条中短线的屏蔽位(EXTIT_MR);

置位软件中断寄存器中需要的位(EXTIT_SWIR)

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_extit.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验现象

运行程序后发现LED4灯每隔一定时间开始闪烁。

(五) 收获心得

由EIC的结构原理图可以看到,EXTIT控制器的16条中短线作为EIC的一个中断源,在使用时必须要初始化和使能EIC。从此次实验中还学会了软件中断产生的方法。

实验五 TB基准时间定时器

(一) 实验目的

通过实验了解TB定时器的功能和工作原理,学习TB计时器的编程应用。

(二) 实验原理

1. TB介绍:TB定时器可以作为自由时钟过来产生一个标准时间,也可以使用输出捕获模式测量RTC时钟。TB定时器与PWM定时器、TIM定时器一样具有同样的结构。TB定时器主要有时钟源、触发控制器、计时器以及自动重装器组成。

2. TB的工作过程

1) 主要工作工程:选择时钟,通过分频器得到一定频率的处罚时钟处罚计数器按照某种方式计数,计数完毕后自动重载初始值并产生中断。

2) 计数器时钟的选择

TB可供选择的时钟包括:

CK_TIM :内部时钟;

CK_RTC :外部时钟;

选择的时钟通过一个16位的分频器进行1~65536分频后送入计数器。

3) 计数器模式

计数器共有3种工作模式:

向上计算模式 向下计数模式 中心对齐模式

4) 计数器初始化

在程序运行中,可以重新初始化计数器和分频器,设置方法为:修改TB_CR寄存器的CNT_RST=1。根据TB_CR寄存器的CMS位和UD位的设置,计数器复位,计数器立即开始计数。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_tb.c

+75x_cfg.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序,发现LED4、LED3、LED2三个灯以不同的频率闪烁。

(五) 收获心得

通过此次实验,我学习了TB计时器的结构原理和工作流程。

实验六 看门狗定时器实验

(一) 实验目的

1. 通过实验,理解看门狗的工作过程和作用。

2. 学习在软件系统的设计中,如何使用看门狗。

(二) 实验原理

1. 看门狗介绍:看门狗的作用是防止程序进入死循环。看门狗每个一段时间读取某个存储单元,若读取的不是设定值则将系统复位重置,次次编写程序时一定要经常对相应存储单元写设定值以避免看门狗复位系统,人们习惯的把这个过程称“喂狗”。程序正常运行时,“喂狗”工作也可以正常运行,一旦程序进入死循环或者系统死机,看门狗就会复位系统。

2. 看门狗可以用作普通定时器,也可以作为解决处理软、硬故障的看门狗。主要具备以下功能:16位减1计数器,8位分频计数器,安全重载序列,普通定时器模式,计时器计数为零时产生中断。

1) 普通定时器模式

如果软件不重置WDG_CNT寄存器的WE位,该外设就进入普通定时器模式。该模式下,当WDG_CNT寄存器的SC位被置1,WDG_VR寄存器的值就被装载到计数器中,同时计数器开始减1计数。

2) 看门狗模式

如果WDG_CR寄存器的WE位被置1,则进入看门狗模式,这个模式不能被软件改变。程序运行后,计数器载入WDG_VR寄存器的值并开始减1计数,当计数器达到终值时,产生系统复位信号WDG_RESET。如果两个连续序列被写入WDG_VR,以防止进入计数器低端。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_wdg.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序后,观察到LED3点亮,过约4s后,LED3熄灭,板上所有灯都熄灭,然后LED3又点亮,可以判定,实验板进入复位状态,每次重启后点亮LED3。

(五) 收获心得

通过实验,更深刻的理解了看门狗的原理和使用方法,看门狗的软件系统中广泛的被使

用,用来对整个系统的监控,防止程序进入死锁或者死机状态,同时,为了防止看门狗被误操作以后错误的复位正常系统,喂狗程序应多考虑安全性和稳定性,看门狗多使用对相应寄存器连续写入。

实验七 模\数转换器(ADC)实验

(一) 实验目的

1. 了解模数转换器ADC的工作原理。

2. 学习ADC模拟“看门狗”功能的应用,了解如何设置ADC模式和通道,进一步学习模拟“看门狗”的选择与使用。

3. 学习并把握ADC在单通道模式下启动插入转换器,通过PWM定时器的TRGO信号来触发插入转换的功能也原理。

4. 学习并把握主程序中配置ADC的工作参数和模拟看门狗的参数的配置。

(二) 实验原理

1. 模数转换器(ADC)的主要特点:

1) 在最大的ADC时钟频率下转换时间有以下因素组成:采样时间、11个ADC时钟周期、转换时间、19个ADC时钟周期。

2) 分辨度:10Bits。

3) 单调性:好。

4) 无缺失码:有保证。

5) 输入为0是的读数:0000h。

6) 满刻度读数:03ffh。

7) 16*10位数据寄存器。

8) 单通道模式或者扫描模式。

9) 在定时器TIM00C2触发后开始转换。

10) 链式注入模式,由定时器PWM的TRGO触发。

11) 低功耗模式。

12) 当4个可选的模式看门狗通道的转换值超出软件程序预先设定的门限时,则产生中断。

13) 转换完成会自动产生DMA请求,可以由软件或者硬件使能DMA转换器。

2. 功能描述

下面分别介绍ADC的功能特性以及配置方法

1) 校准开始:为了达到目标精确度,在每次加电或者停止待命模式重启时,强制校准ADC。

2) 转换开始:用户由三种方法启动编程转换过程。

3) 运行模式:用户可以获得两种运行模式单通道模式和扫描模式。

4) 输入通道选择:定时器触发转换器使能转换器。

5) 模拟时钟预分频器:可以使用两个预分频器一个描述主要的ADC时钟频率,另一个只有在采样状态下可以被使能一提供ADC时钟。

6) 插入式转换链:用户可以通过定时器触发信号或者设置寄存器ADC_CLR3的JSTART位,来插入转换链。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所

有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_adc.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进

行调试。

5. 运行程序,观察结果。

(四) 实验结果

转动VR1,逆转LD4亮,顺转LED3亮,中间有段时间灯都不亮。

(五) 收获心得

看门狗定时器是一个计时器,基本功能是在发生在软件问题和程序跑飞后使系统启动,看门狗计时器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或者跑飞,该定时器将溢出,并将进入中断,在定时器中断中执行一次复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时器时溢出归零,使处理器重新启动。由于模数转换十分广泛,我觉得掌握其原理和实际应用技巧是很有必要的。可是由于包含的知识面广,其内在原理感觉掌握不是非常透彻,期望在以后的学习中继续深入的学习。

实验八 UART通用异步收发器实验

(一) 实验目的

1. 通过实验,了解UART接口的内在结构,理解与计算机串口通信原理的工作原理。

2. 学习使用UART接口在超级终端中的输出信息的编程方法。

(二) 实验原理

1. UART介绍:UART(通用异步收发器)接口是STR750与其他控制器、微处理器以及外部设备之间通信的串口通信接口。UART支持全双工异步通信。数据传输可以是5~8位,数据传输长度、奇偶校验和停止位都可以通过编程配置。UART控制的奇偶校验、帧同步和溢出错误检测是数据传输的可靠性提供了保证。数据发送和接收方式可以简单的称作双缓冲模式,也可以称作使用两个深度为16的FIFO.可以通过设置回传选项,执行测试功能。另外,UART还有一个可编程的波特发射器为数据传输提供独立的暂停长度可编程控制的串行时钟信号。

2. UART的主要特性:

1) 独立的16*8TransmitFIFO和16*12ReceiveFIFO缓冲区以减少CPU中断。

2) 可编程禁止FIFO使其变为深度为1个字节的寄存器。

3) 可编程的波特率发生器。

4) 标准异步通信位。它们在传输前被置位,接受后被清零。

5) Lin控制器与传输中暂停长度以及接受中的断点检测相符合。

6) 相对独立的Transmit FIFO\Receive FIFO 。若接受时间超时,则清空发送状态位并产生错误中断。

7) 支持直接存储器访问(DMA)。

8) 错误开始位检测。

9) 可编程的硬件流控制。

10) 完全可编程的串口接口。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_uart.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序后发现,超级终端上会显示:IART Example :UART Hyperterminal communication

using Interruot.

(五) 收获心得

通过这次实验,我了解了UART的使用方式,方法,流程,并且学会了使用IAR工具来进行改写UART程序。

实验九 SMI串行存储器

(一) 实验目的

1. 通过实验,了解SMI串行存储器的工作工程和作用。

2. 了解SMI串行存储器的传输方式。

3. 学习使用SMi的存储器设置流程和编程方法。

(二) 实验原理

1. SMI的主要特性

1) 具有32位、16位、8位的AHB接口。

2) 具有可编程时钟与分频系数。

3) 在正常的读模式时速度可高达20MHZ,快速读模式可达48MHZ。

4) 写模式时速度可高达30MHZ。

5) 具有4个片选信号,可外扩4块共64MB的SMI存储器。

6) 外部存储器可配置为启动模式。

7) 写完成或者软件传递完成时可产生中断请求。

2. 功能描述

SMI接口一般为3线或者4线,分别为时钟信号线,数据输入输出以及片选信号线。STR75xfF外部可接4片共64MB的SMI芯片,故它有4个片选信号线。时钟信号和数据输入输出都是公用的,存储器通过SMI数据处理控制单元连接到AHB总线上。

(三) 实验步骤

1. 在IAR集成开发环境下创建工程,命名并保存。

2. 像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3. 从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_smi.c

+75x_cfg.c

4. 设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5. 运行程序,观察结果。

(四) 实验结果

运行程序后发现,在调试窗口的“Terminal I\O”中看到输出的一上串数据。

(五) 收获心得

通过这次实验,我了解到了SMI的使用方式、方法、流程、并且学会了使用IAR工具来进行改写SMI程序,学到了新的知识。

相关推荐