CH1 嵌入式系统概述

1、嵌入式系统的定义

以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、安全性、成本、体积、重量、功耗、环境等方面有严格要求的专用计算机系统。

2、嵌入式系统和通用计算机系统的比较(共同点和不同点)、嵌入式系统的特点

共同点:都属于计算机系统,由硬件和软件组成;工作原理相同,都属存储程序机制;从硬件上看,嵌入式系统和通用计算机系统都是由 CPU、存储器、I / O 接口和中断系统等部件组成;从软件上看,嵌入式系统软件和通用计算机软件都可以划分为系统软件和应用软件两类。

不同点:形态,功能,资源,价值,功耗,开发方式。

特点:专用性强、可裁剪性、实时性好、可靠性高、生命周期长、不易被垄断

3、嵌入式系统的架构:冯・诺依曼结构和哈佛结构

冯・诺依曼结构:采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备)

哈佛结构(存储器结构):程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

4、嵌入式系统处理器:MPU、MCU、DSP、SoC

分别为微处理器 (MPU)、微控制器(MCU,俗称单片机)、数字信号处理器 (DSP) 和嵌入式片上系统(System on Chip ,简称 SoC)

MCU 的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。

5、MCU 的基本组成:CPU、时钟、存储器、通用 I/O、定时器/计数器、外设等组成。

单片机的 CPU 由运算器和控制器组成,有运算和控制的功能。单片机的指令代码就是通过 CPU 执行的。

时钟时钟本质上就是固定频率的脉冲信号,为 MCU 工作提供基准时序。时钟频率直接决定了 MCU 的执行速度。

单片机的存储器包括存放代码指令的 ROM(或 Flash),以及存放变量、数据的 SRAM

通用 I/O 口 (GPIO) 可以当作输入或输出接口。大部分单片机为了减少引脚数量,I/O 口还复用作为其它特殊功能引脚,比如 PWM 输出、捕获输入、串行通信、外部中断输入等。

定时器 / 计数器能够提供精确定时,或者对外部事件进行计数。内部硬件本质是计数器,当计数器脉冲来源是固定频率脉冲时,可通过计数来实现计时。

MCU 常用的外设模块有:模数转换模块 (ADC)、PWM 模块、捕获模块 (CAP)、通信模块等等。不同芯片有不同的外设配置

6、CPU 功能

CPU 有运算和控制的功能。单片机另外增设了 “面向控制” 的处理功能,如位处理、查表、跳转、乘除法运算、状态检测、中断处理等,增强了实用性。

7、总线 BUS:地址总线、数据总线、控制总线

总线是一组相关逻辑信号的集合。不同芯片有不同的总线标准。

地址总线 (Address Bus, AB):单向,用于传递地址信息。地址线的数目决定了可寻址的存储空间。一根地址线有两种状态,即可以区分两个不同的存储单元,或者说可以寻址两个存储单元;如果有 nn 根地址线,则可以寻址 2n2n 个存储单元。

数据总线 (Data Bus, DB):一般为双向,用于 CPU 与存储器、CPU 与外设、或外设与外设之间传送数据信息。我们平常说的 8 位、16 位或 32 位单片机,指的就是 CPU 一次能够处理的数据位数,这也决定了单片机数据总线的根数(宽度)。

控制总线 (Control Bus, CB):是单片机系统中所有控制信号线的总称,用来传递控制信息。

CH2 C2000 系列微控制器及硬件平台

1、F28027 主要资源:32 位 CPU、时钟(40MHz/50MHz/60MHz)、哈佛总线架构、3.3V 单电源供电、外设资源(GPIO、中断 PIE、CPU 定时器、ePWM、eCAP、ADC、SCI、SPI、I2C)

2、引脚。功能复用、引脚有效符号等

F28027 的引脚按其功能进行分类,可以分为 JTAG 接口、Flash、时钟信号、复位引脚、ADC 模拟输入信号、CPU 和 I / O 电源引脚、电压调节控制引脚 、GPIO 和外设信号。

3、MCU 硬件功能概述

F28027 有一个 32 位的 CPU 内核(TMS320C28x),主频高达 60MHz,同时它具有 GPIO、模数转换器 ADC、增强型 PWM 模块、增强型捕获模块、串口通信接口、串行外设接口等外设。功能丰富强大,用户可以方便地用它来开发高性能的微控制系统。片内集成了 Flash 存储器,程序可以直接烧写到 Flash 中,实现脱机运行。

4、内存映射(数据空间 / 地址空间,空间大小与地址的转换)

M0 SARAM 和 M1 SARAM 大小均为 1K×16 位,地址范围分别为0x000000 `0x0003FF`、`0x000400`0x0007FF。当复位后,堆栈指针指向 M1 块的起始地址,堆栈指针向上生长。M0、M1 可以映射到程序区和数据区

L0 SARAM 的大小为 4K×16 位,即可以映射到程序区,也可以映射到数据区。L0 SRAM 地址为双映射,可以映射到0x008000 `0x008FFF`,也可以映射到 `0x03F8000`0x3F8FFF

用户 OTP 区的大小为 1K×16 位,地址范围为 0x3D7800~0x3D7BFF,即可以映射到程序区,也可以映射到数据区。

5、复位向量地址(0x3FFFC0)
6、时钟信号 SYSCLKOUT

由锁相环模块输出。为了达到节能目的,TI 对时钟提供一种管理机制,每个外设模块都可以对时钟输入进行使能或禁止(CLK ENABLE),只对需要工作的模块提供时钟信号,不工作的模块不提供时钟信号。系统时钟可以再次被处理,生成低速时钟信号 LSPCLK,用于低速外设模块,如 SCI 模块和 SPI 模块。

7、看门狗电路(本质是定时器,“喂狗”:0x55AA)

F28027 提供了看门狗模块。该模块本质上是一个计数器,在计数器溢出时,它会产生一个复位信号,来复位 CPU 或者产生看门狗中断。为了不让它产生复位信号,那就需要在计数器溢出前对它清零,俗称 “喂狗”。

时钟源 OSCCLK 经过 512 分频后再进行可编程的预分频(Watchdog Prescaler),输出脉冲作为看门狗计数器(Watchdog Counter)的计数脉冲。Watchdog 55+AA Key Detector 是看门狗的 “喂狗” 操作。“喂狗” 时,需要先写入数据 “55” 给寄存器 WDKEY,接着写入 “AA” 给寄存器 WDKEY,硬件就会发出有效的信号 Good Key,用于复位看门狗计数器。

当程序运行出现问题,比如 “死机” 或进入 “死循环”,那么设定的 “喂狗 ” 程序将无法执行,看门狗计数器将溢出并发出触发信号,通过 Generate Output Pulse 模块输出 512 个时钟周期的低电平信号。

8、片内上电复位 / 欠电压复位

上电复位电路(POR)的目的是在整个上电过程,对器件产生一个有效的复位信号。器件上电过程结束后,欠压复位电路(BOR)对 VDDIO 进行监测,如果使能片内电压稳压器,还对 VDD 进行监测。POR 的电压保护点比 BOR 低。当电压低于相应的保护点时,复位电路把 XRS 拉至低电平引起复位过程。

CH3 微控制器程序设计基础

1、编程语言:机器语言、汇编语言、高级语言

机器语言就是用二进制代码表示的计算机能直接识别和执行的一种机器指令集合,每一条机器指令在计算机内部都有相应的电路来完成它,是唯一的计算机能够直接识别和执行的语言。CPU 的所有指令集构成该计算机的指令系统

汇编语言是面向机器的程序设计语言。由汇编语言编写的程序,计算机无法直接识别,需把汇编语言翻译成机器语言,这种具有翻译功能的程序叫做汇编程序。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言的指令一般都由操作码和操作数组成,操作码也被称为指令助记符。

机器语言和汇编语言都是低级语言。高级语言是一种贴合人类逻辑思维、便于直观理解的计算机语言,高级语言既接近自然语言又可以使用数学表达式,并且相对独立于计算机,可以跨计算机使用。编译的程序代码通常比用汇编语言设计的程序代码更长、执行更慢。

2、CPU 执行指令 5 个过程:取指令、指令译码、取操作数、执行指令、结果写回

取指令:将指令从程序存储器取出。程序计数器 PC 中的数值指示当前指令在程序存储器中的位置。当一条指令被取出后,PC 中的数值将根据指令长度自动递增,指向下一条指令。

指令译码:指令译码器按照预定的指令格式,对取回的指令进行译码,识别出不同的指令类别以及各种获取操作数的方法。

取操作数:从存储器或者 CPU 寄存器中获取操作数。操作数指出了参与运算的数据或数据所在的地址,而如何得到就由芯片的寻址方式决定。C28x 支持四种基本寻址方式:直接寻址方式、间接寻址方式、堆栈寻址方式、寄存器寻址方式。同时,C28x 还支持一些特殊寻址方式,如数据/程序/IO 空间寻址方式、程序空间间接寻址方式等。

执行指令:完成指令所规定的操作,实现指令的功能。为此,CPU 的不同部分被连接起来,以执行所需的操作。

结果写回:把执行指令阶段的运行结果数据写回到存储器或 CPU 寄存器。

在结果数据写回之后,当条指令执行完毕。CPU 从程序计数器 PC 中取得下一条指令地址,开始新一轮的循环。

为了提高效率,C28x 采用 8 个独立阶段来完成以上 5 个过程。指令以流水线方式执行,在任何时候,最多可以执行八个指令,每个指令处于不同的完成阶段。

3、嵌入式 C 语言:几个特殊保留字(volatile、interrupt)

嵌入式 C 语言的四大要素就是数据及其处理、程序流程控制、函数与中断服务程序以及指针。

volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

Example

1
2
3
4
5
volatile int i=10;
int a = i;
...
// 其他代码,并未明确告诉编译器,对 i 进行过操作
int b = i;

volatile 指出 i 是随时可能发生变化的,每次使用它的时候必须从 i 的地址中读取,因而编译器生成的汇编代码会重新从 i 的地址读取数据放在 b 中。而优化做法是,由于编译器发现两次从 i 读数据的代码之间的代码没有对 i 进行过操作,它会自动把上次读的数据放在 b 中。而不是重新从 i 里面读。这样以来,如果 i 是一个寄存器变量或者表示一个端口数据就容易出错,所以说 volatile 可以保证对特殊地址的稳定访问。

interrupt/__interrupt 为编译器扩展的保留字,用于声明中断服务函数(ISR)。ISR 函数必须定义为 void 返回类型,且没有参数。例如:__interrupt void int_handler(void)。编译器会在编译时执行特殊的操作:自动保存和恢复寄存器;生成特殊的中断返回指令 IRET

CH4 软件架构与 CCS 集成开发环境

1、如何使用结构体指针操作寄存器

结构体指针的定义:

  • 第一步:声明结构体类型,结构体类型名为GPIO_Obj
    结构体成员包含了 GPIO 模块的所有寄存器,结构体成员严格按照寄存器的地址顺序排列,并保留没有用到的地址空间,
  • 第二步:声明结构体指针类型,结构体指针类型名为GPIO_Handle
    typedef GPIO_Obj * GPIO_Handle;
  • 第三步:定义结构体指针变量 myGpio。
    GPIO_Handle myGpio;
  • 第四步:结构体指针变量初始化。
    myGpio = (void*)GPIO_BASE_ADDR; //GPIO_BASE_ADDR为GPIO模块所有寄存器的首地址0x0000 6F80

接下来,以 GPADAT 寄存器为例介绍寄存器的读写操作方法。

1
2
myGpio->GPADAT = 5; // GPADAT寄存器值设置为5
data = myGpio->GPADAT; // 读取GPADAT寄存器值当前的值,保存到变量data中

2、寄存器位操作

寄存器位操作一般都是通过逻辑 “与” 和逻辑 “或” 来实现的。在对某个位操作的同时不能影响到寄存器的其他位。例如,对GPADATGPIO2这个位进行写和读操作:

1
2
3
4
5
myGpio ->GPADAT &= (~((uint32_t)1 << 2)); // 待操作位清零,其他位保持不变
myGpio ->GPADAT |= (uint32_t)1<< 2; // GPIO2位写1
// myGpio ->GPADAT |= (uint32_t)0<< 2; // GPIO2位写0

Bitdata= ((myGpio -> GPADAT >> 2) & 0x0001);// GPIO2位值保存到Bitdata变量中。

3、软件架构

分为主程序层、应用层、用户模块层和芯片模块层。

TI 公司为各系列 MCU 提供了丰富的固件库函数和技术支持。固件库是一个固件函数包,它由程序、数据结构和宏组成,包括 MCU 所有系统级和外设标准驱动函数 (接口)。对于初学者而言,可以直接调用这些驱动函数,快速实现需要的应用。

用户模块层对 MCU 驱动函数进行封装,完成具体的功能操作。

应用层对用户函数进行封装。

主程序层主要是对 MCU 的初始化配置和应用层功能函数的调用,实现复杂的 MCU 功能。初始化部分包含系统和外设模块配置函数和初始化函数。

CH5 通用输入输出口

1、GPIO 基础知识

GPIO 是微控制器的数字输入输出模块,可以实现微控制器与外部设备的数字交换。数字输入功能主要是将外部设备的开关量信号转换成 CPU 可读取的数字信号 “1”、“0”,从而获知外部设备的运行状态;数字输出功能则是将 CPU 的数字控制信号 “1”、“0” 转换成引脚高、低电平信号,从而实现对外部设备运行状态控制。

GPIO 输出驱动器主要由多路选择器、输出控制和 MOS 管组成。

多路选择器根据用户配置决定该引脚是用于通用 GPIO 还是复用功能输出。通用输出时,该引脚的输出信号来自于 GPIO 输出数据寄存器。复用功能输出时,该引脚输出信号来自于片上外设,并且一个引脚输出可能来自多个不同外设。同一时刻,一个引脚只能使用一种输出功能

根据数字电路输出电平的 “强弱”,可将 IO 输出分为图腾柱输出、开漏输出、下拉电阻输出 3 种。

2、C2000 的 GPIO 模块(概述、软件架构)
3、软件思维导图:配置 GPIO 控制 LED 和按键

CH6 中断系统

1、中断基础知识(中断概念、中断处理过程、中断嵌套)

单片机的中断系统能够加强 CPU 对多任务事件的处理能力。中断是 CPU 对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向 CPU 提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU 暂停现行程序而转去响应中断请求的过程称为中断响应。中断响应的程序称为中断处理程序。CPU 执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现通过软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

中断服务程序的入口地址称为中断向量

中断的优先级主要用来描述不同事件的重要程度。如果在执行一个中断时又被另一个更重要的事件打断,暂停该中断处理过程转而去处理这个更重要的事件,处理完毕后再继续处理本中断的过程称为中断的嵌套

MCU 的中断处理过程包括中断请求、中断响应、中断服务、中断返回四个步骤。当外设发出中断请求时,如果从外设到 CPU 的中断使能被允许,那么进入中断响应阶段。由于 CPU 执行完中断处理程序之后要返回被中断的地方继续执行原来程序,因此在执行中断服务程序之前,要把断点处地址和现场进行保护。

单一中断请求时, CPU 暂停正在运行的主程序转而运行中断服务程序,中断处理完毕后运行原程序。当多个中断请求同时挂起且不允许中断嵌套时,CPU 首先处理高优先级中断事件,然后再处理低优先级中断事件,最后返回执行主程序。允许中断嵌套时,大多数 MCU 高优先级中断可以中断低优先级中断服务程序,低优先级中断不能中断高优先级中断服务程序

2、C2000 的中断系统(中断资源包含 1 个非可屏蔽中断 NMI 和 16 个可屏蔽中断(INT1-INT14、RTOSINT、DLOGINT)

可屏蔽中断(INT1~INT12)采用外设中断扩展(PeripheralInterrupt Expansion,PIE)来进行协助管理,定时器 1、2 对应的 INT13、INT14 中断和 NMI 不经过 PIE,直接与 CPU 相连。

PIE 模块参与管理的中断有以下四类:

  • TINT0:定时器 0 中断,可屏蔽中断;
  • 外部中断:XINT1、XINT2、XINT3;
  • 唤醒中断:WAKEINT,包括看门狗和低功耗唤醒;
  • 外设中断:SPI、SCI、I2C、EPWM、HRPWM、ECAP、ADC 等。

PIE 最多可管理 96 个独立中断源,这 96 个中断源分成 12 组、每组 8 个,分别对应 CPU 级 12 个可屏蔽中断(INT1~INT12)。96 个中断源具有独立的中断向量,均存储在专用 RAM 中,用户可以修改这些中断向量。

3、PIE 三级中断管理机制

F28027 的中断采用的是 3 级中断管理机制,分别是外设级、PIE 级和 CPU 级。对于某一个具体的外设中断请求,任意一级的不许可,CPU 最终都不会响应该外设中断。

外设模块产生中断事件时,相应外设模块寄存器的中断标志位 IF 被置位,如果对应的外设中断允许位 IE 被使能,则外设就向 PIE 发送一个中断请求。如果外设中断允许位 IE 未被使能,则该中断被屏蔽,不会向 PIE 发送中断请求。外设模块的中断标志位有的会在中断响应后自动清除,有的需要通过软件来清除。外部中断比较特殊,没有中断标志位,如果中断使能允许,外部中断请求信号直接送达 PIE。

PIE 控制器将每 8 个外设或外部中断汇集成 1 个 CPU 级中断。这样对于 96 个外设中断源,就被分成 12 组,分别是 PIE1~PIE12,每一组对应一个 CPU 级中断,即 PIE1 对应 INT1,PIE12 对应 INT12。一旦中断请求被送到 PIE 模块,相应的 PIE 中断标志位 PIEIFRx.y 被置位。如果对应的中断使能位PIEIERx.y=1,那么 PIE 模块将检查相应的 PIE 应答位PIEACKx,确认 CPU 是否准备好响应这个组的中断。如果这个组的 PIE 应答位PIEACKx=0,则 PIE 将该中断请求送至 CPU。如果 PIE 应答位PIEACKx=1,中断请求不会被 PIE 发送给 CPU,直到PIEACKx=0且该中断请求还存在时,PIE 才会将挂起的中断请求发送给 CPU。

软件清除中断应答位PIEACKx;而 CPU 响应 PIE 级中断后,自动清除相应的中断标志位PIEIFRx.y,后者不可通过软件进行清除。

当中断请求从 PIE 发送到 CPU 时,CPU 级的中断标志寄存器IFRx被置位,中断应答位PIEACKx被置位,同组的其他中断请求被挂起。如果IERx=1且中断总开关INTM=0,那么 CPU 将响应这个中断请求并自动清零对应的IFRx标志位

4、软件思维导图

CH7 CPU 定时器

1、定时器基础知识(本质是计数器、计数方式、定时时间计算)

定时器本质上是一个计数器,该计数器能对固定频率的脉冲进行计数,把时间的计量转化为对脉冲的计数。根据计数方向不同,有增计数、减计数、增减计数三种模式

增计数的工作模式是计数器按加 1 计数,也就是计数器在时钟脉冲的触发下连续加 1。当计数值与预先设置的周期值 PRD 相等时,计数器重新从 0 开始计数,由于计数是从 0 开始的,因此实际的计数周期要多加 1

减计数的计数方式与增计数相反,计数器从某个初始值开始减 1,减到 0 时回到初始值重新开始。

增、减计数工作模式下定时器的定时时间 T 为:T=Tclk×(PDR+1)T=T_{clk} × (PDR+1)

增减计数模式的计数方向由定时器自动设置,当计数器的值增加到周期值时,计数方向由增计数自动改为减计数,同样,当计数值减到 0 时,计数方向由减计数自动改为加计数。这种工作模式下定时器的定时时间 T 为:T=Tclk×(PDR×2)T=T_{clk} × (PDR×2)

2、C2000 的定时器(3 个定时器、时钟基准 SYSCLKOUT、减计数方式、预分频、周期、定时时间计算)

F28027 有 3 个 32 位的定时器 TIMER0、TIMER1 和 TIMER2,三个定时器均采用减计数工作模式。TIMER0 和 TIMER1 提供给用户使用,TIMER2 提供给实时操作系统使用。时钟基准默认为系统时钟 SYSCLKOUT。

定时器的工作流程是:每经过 (TDDRH:TDDR + 1) 个时钟周期计数器(TIMH:TIM)减 1,当计数器 TIMH:TIM 减到 0 后将产生一次中断请求信号送给 CPU。

Example

假设系统时钟是 1MHz(即 1 微秒一个脉冲)。

  • 如果 TDDRH:TDDR = 0,预分频系数是 1,则主计数器每 1 微秒减 1。
  • 如果 TDDRH:TDDR = 99,预分频系数是 100,则主计数器每 100 微秒才减 1。

定时时间:T=(TDDRH:TDDR+1)×(TIMH:TIM)×TclkT=(TDDRH:TDDR+1)×(TIMH:TIM)×T_{clk}

3、软件思维导图

CH8 增强型捕获模块

1、捕获模块基础知识

捕获模块可以捕获 MCU 引脚的电平跳变(上升沿、下降沿),并记录电平跳变的时刻。捕获模块也有对时间的处理,也是通过计数器来实现的。捕获模块可以用于外部事件的精确时间测量。只要被检测信号能够转换为脉冲信号,捕获模块就可以对该脉冲信号进行捕获。

2、计数器工作模式:增计数
3、C2000 的 eCAP(概述、功能(预分频、边沿极性、连续 / 单次模式、事件决策、捕获寄存器、中断控制)

单触发捕获模式:捕获 1-4 个事件后停止捕获
连续捕获模式:循环进行 1-4 个事件的捕获
中断功能:4 个捕获事件都可以触发中断
捕获模式不使用时,eCAP 模块可以配置为单通道 PWM 输出

输入信号经过事件预分频(Event prescale)、极性选择(Polarity select)后到达事件决策模块(Event qualifier)。事件决策模块根据捕获模式(Continuous / Oneshot Capture Control)的配置,产生装载捕获寄存器的触发信号(LD1~LD4),把捕获计数器(TSCTR)的当前值 CTR 装载到捕获寄存器中(CAP1、CAP2、CAP3、CAP4)。根据复位配置(CTRRSTx)可输出信号(Delta mode)复位捕获计数器。捕获事件(Capture events)可发出捕获事件中断信号(CEVT)给 PIE。另外,eCAP1~ eCAP4 可通过时钟同步信号(SYNCIn)进行计数器初始值(CTRPHS)的装载。

4、软件思维导图

CH9 增强型脉宽调制模块

1、PWM 基础知识

PWM 是 Pulse Width Modulation 的缩写,即脉冲宽度调制,也就是宽度可调节的方波脉冲。相关的参数:周期、频率和占空比

  • 周期 T:输出一次脉冲,即输出一次完整的高低电平的时间
  • 频率 f:周期的倒数,即 f=1Tf=\frac{1}{T}
  • 占空比 D:一个周期内,脉冲高电平时间与周期的比值(D=ThighTD=\frac{T_{high}}{T}

PWM 信号有两种产生方法:模拟电子方法和数字化方法。

模拟电子方法:由三角波或锯齿波发生器产生高频调制波,经比较器产生 PWM 信号。三角波或锯齿波与可调直流电源比较,产生占空比可调的 PWM 信号;与正弦基波比较,产生占空比按正弦规律变化的 SPWM 信号。

数字化方法(主流):与硬件构成 PWM 信号类似,数字逻辑将锯齿波发生器等效为一个计数器 Count,将可调直流电源等效为比较点 Compare。数字控制产生 PWM 需要 3 个寄存器:计数器、周期值和比较值。通过配置周期值和比较值就能够产生任意频率、占空比的 PWM 信号。

2、C2000 的 ePWM(TB 子模块、CC 子模块、AQ 子模块、ET 子模块)

时基子模块(TB)功能:每个 ePWM 单元都有一个独立的时基单元,用来决定该 ePWM 模块相关的事件时序。通过同步输入信号可以将所有的 ePWM 工作在同一时基信号下,即所有的 ePWM 级联在一起,处于同步状态,可以看成一个整体。

系统时钟预分频后作为 TB 子模块的时钟信号,分频系数由寄存器TBCTL[HSPCLKDIV]TBCTL[CLKDIV]决定。HSPCLKDIV的值为 x,则如果 x 为 0,则分频系数为 1,如果 x 不为 0,则分频系数为 2x;如果CLKDIV的值为 y,则分频系数为 2y。

Example

本书案例设置 SYSCLKOUT 为 60MHz,如果 HSPCLKDIV = 0,CLKDIV = 1,则 TBCLK = 30MHz。

3、软件思维导图

CH10 模 / 数转换器

1、ADC 基础知识
2、C2000 的 ADC(12 位 ADC 内核、量程、SOC)
3、软件思维导图

CH11 串行通信接口

1、串行通信的基础知识
2、C2000 的 SCI(波特率、数据帧)
3、软件思维导图

CH12 实验

1、智能车与本课程 F28027 模块
2、调试错误及处理