C2837x入门指南(六) — 系统初始化
Loading the player...
将在30s后自动为您播放下一课程
欢迎回来 本章我们来讨论系统初始化 这个章节讲解的内容相对偏多 包括时钟 看门狗 通用IO 外部中断 低功耗模式 寄存器保护等 系统相关的模块 首先我们来讨论时钟 28X7X系列的时钟系统 与之前的PQ系列非常相似 它可以接受内部的两个10兆的时钟 或者外部时钟作为时钟沿 单独提供给看门狗或者系统时钟 系统时钟经过PLL锁相环 被分频得到 另外 它提供专用的GPIO73作为输出管脚 可以用于检测测试时钟是否正常 它的输入源可以来自内部时钟 辅助时钟 CPU的系统时钟 和锁相环时钟 辅助时钟源 则来自于外部时钟 或者内部时钟 都有自己独立的分频计数器 锁相环部分可以设置倍频和分频 倍频的比例 以四分之一为单位 分为整数和小数部分 从1到128 而分频只支持偶数 另外 系统时钟提供给低速的设备 还可以进一步分频 同样 值是偶数 最高到14分频 这个是2837XD 双核时钟系统 从锁相环出来的系统时钟 可以分配给各自的CPU和各自的低速通讯设备 也可以分配给对应的外设 需要注意 EPWM时钟 不能超过100兆 所以它可能需要1分频 2分频 看门狗的时钟源独立 可以来自内部或外部 CAN的时钟源比较特别 可以来自外部 或者是外设 另外 CPUtimer 可以来自不同的时钟源 包括内部外部 和系统时钟 时钟源的控制寄存器 可以有三个 可以配置各个模块的时钟选择 上电初始化以后 所以外设都默认分配个CPU1 所以CPU2需要控制任意一个外设 首先需要将外设分配给CPU2 通过CPUSELCT寄存器来配置 然后 分配给CPU2的外设 需要CPU2提供系统时钟 从而让该外设工作 同理 CPU1也需要对自己的外设做时钟处理 接下来讨论看门狗 看门狗的时钟 是独立的 所以在上电复位后独立于CPU运行 如果它的计数器溢出 将产生复位或中断 因此用户需要定时喂狗 通过清零达到寄存器不溢出的目的 在默认情况下 看门狗在13万个指令周期后 溢出 并达到复位状态 如果时钟使用内部十兆进制 对应时间是13.1毫秒 这个是看门狗的系统框图 时钟进来后 有一个固定的512分频 然后用户可以配置分频指数 经过看门狗始门位 它的8位计数器开始计数 在8位计数器抑制前 我们需要对WDK寄存器 进行0xm0xaa顺序写入的 清除寄存器 否则 看门狗技术一出 就会默认复位 或者有用户配置中断 人为写入一个错误的WDCHK的值 将会立即产生一个看门狗技术抑制事件 从而产生复位或中断 看门狗设计可以参考收据手册或者这个表格 需要注意的是 看门狗复位以后 立即开始计数 对应于10兆内部 时间是13.11毫秒 看门狗的控制寄存器非常简单 只有分频和使能位 K值是用于清楚寄存器 要求用户按顺序写入 0X55和0XAA 这表格列举的 写入0X55和0XAA 清除看门狗寄存器的示例 另外 系统控制和状态寄存器 可以设置 看门狗的中断使能 和看门狗本身使能 接下来 我们讨论GPIO 由于资源增多 28X7X的GPIO 最多支持192个 从A组到F组 所有GPIO仍然支持输入滤波功能 但在功能分配上 需要进入两个分组 一个是group分组 而个是mux分组 GPIO的系统框图 可以明确看到 首先引脚进来 是一个 内部上拉使能电路 对于可以复位为PLM功能的GPIO0到11 上拉不使能 其他GPIO上拉使能 信号进来后可以设置内部的反向 和输入滤波 在设置GPIO的功能方面 首先需要进入group分组 group mux 将会分成四组 每一组的一个将作为GPIO功能 剩下三个可以配置为外设功能 在GPIO的数据寄存器方面 建议使用GPTOGGLE进行数据的输出 GPDAT数据输入 读取 GPDIR可以设定GPIO的方向 作为输入或输出 GPIO的数据配置功能可以配置为同步 异步 和三个和六个采样点 每个采样点的时间单独配置 为系统时钟的2到510分频 GPXQSEL寄存器用于配合同步异步或三和六的采样点 而GPXCTRL寄存器用于配置具体L口配置的系统分频数 与所有外设一样 GPIO默认有CPU1控制 CPU2和CRA需要对GPIO 进行数据操作 需要GPIO的控制寄存器 Call select进行配置 在此之后 该CPU可以通过GPIOdata set clear toggle来进行数据处理 这个表格罗列了GPIO的主要寄存器 GPIO还有两个非常重要的功能 是它的输入和输出x-bar x-bar的增加丰富了GPIO的功能选择 其中input x-bar 可以选择任意一个GPIO 作为内部输入源选择 这14个输入源可以分配到外部中断 capture 和同步信号 以及EPM output x-bar 这个表格列举了14个input信号 分别对应的功能 GPIO output x-bar可以将任意一个信号或脉冲 输入到任何一个GPIO管脚上面 包括模拟寄存器的高低电平信号 PWM和capture的同步信号 ADC的SOC信号 中断信号 capture信号 西格玛的滤波信号 和input x-bar的信号 这个系统框图表格列举了32个输出源的选择 32个输出源有4个选项 所以根据各自的片选功能 可以将某个信号输入到任意一个GPIO管脚上面 同时 在输出前 还可以索存和反向 外部中断 2837XD最多支持5个外部中断 如前所示 任意一个外部中断 可以通过GPIO的input x-bar 任意选择一个GPIO作为来源 而外部中断1到3 保留了原来的16位寄存器 用于检测时间差 配置外部中断时 我们首先要使能外部中断 然后配置极性 然后通过input x-bar配置需要的GPIO口 外部中断1到5 分别使用input x-bar Input 4 5 6 13 14 作为来源 再通过配置寄存器 设置其中断和极性 计数器可应用于检测时间 低功耗模式 F 2837XD支持更多低功耗模式 包括halt 和休眠 分别对应CPU的逻辑时钟 外设时钟 看门狗时钟 以及锁相环状态组合 低功耗模式的控制寄存器 将配置芯片继续进入某个模式 以及由哪些外设或中断唤醒 唤醒源可以来自复位 A组GPIO信号 看门狗中断和其他任何中断 GPIO唤醒低功耗模式 可以支持AB组 通过GPIOPMSEL寄存器来配置 寄存器保护 新增的lock 锁住寄存器配置 寄存器 可以有效防止寄存器被误改写 一旦lock寄存器生效 所有lock住的寄存器 将不能通过软件更改 除此之外 F2837XD保留了之前 CR8x的EALLOW保护功能 它可以防止代码的非法访问 只能通过汇编语言 指令来配置 被EALLOW保护的寄存器包括device配置寄存器 flash和加密模块 PIE DMA CLA PWM和系统寄存器等等 本章节我们主要讨论了 与系统相关的模块 从时钟 看门狗 GPIO 外部中断 低功耗模式 到寄存器保护等等 接下来我们继续讨论模拟外设和控制外设
欢迎回来 本章我们来讨论系统初始化 这个章节讲解的内容相对偏多 包括时钟 看门狗 通用IO 外部中断 低功耗模式 寄存器保护等 系统相关的模块 首先我们来讨论时钟 28X7X系列的时钟系统 与之前的PQ系列非常相似 它可以接受内部的两个10兆的时钟 或者外部时钟作为时钟沿 单独提供给看门狗或者系统时钟 系统时钟经过PLL锁相环 被分频得到 另外 它提供专用的GPIO73作为输出管脚 可以用于检测测试时钟是否正常 它的输入源可以来自内部时钟 辅助时钟 CPU的系统时钟 和锁相环时钟 辅助时钟源 则来自于外部时钟 或者内部时钟 都有自己独立的分频计数器 锁相环部分可以设置倍频和分频 倍频的比例 以四分之一为单位 分为整数和小数部分 从1到128 而分频只支持偶数 另外 系统时钟提供给低速的设备 还可以进一步分频 同样 值是偶数 最高到14分频 这个是2837XD 双核时钟系统 从锁相环出来的系统时钟 可以分配给各自的CPU和各自的低速通讯设备 也可以分配给对应的外设 需要注意 EPWM时钟 不能超过100兆 所以它可能需要1分频 2分频 看门狗的时钟源独立 可以来自内部或外部 CAN的时钟源比较特别 可以来自外部 或者是外设 另外 CPUtimer 可以来自不同的时钟源 包括内部外部 和系统时钟 时钟源的控制寄存器 可以有三个 可以配置各个模块的时钟选择 上电初始化以后 所以外设都默认分配个CPU1 所以CPU2需要控制任意一个外设 首先需要将外设分配给CPU2 通过CPUSELCT寄存器来配置 然后 分配给CPU2的外设 需要CPU2提供系统时钟 从而让该外设工作 同理 CPU1也需要对自己的外设做时钟处理 接下来讨论看门狗 看门狗的时钟 是独立的 所以在上电复位后独立于CPU运行 如果它的计数器溢出 将产生复位或中断 因此用户需要定时喂狗 通过清零达到寄存器不溢出的目的 在默认情况下 看门狗在13万个指令周期后 溢出 并达到复位状态 如果时钟使用内部十兆进制 对应时间是13.1毫秒 这个是看门狗的系统框图 时钟进来后 有一个固定的512分频 然后用户可以配置分频指数 经过看门狗始门位 它的8位计数器开始计数 在8位计数器抑制前 我们需要对WDK寄存器 进行0xm0xaa顺序写入的 清除寄存器 否则 看门狗技术一出 就会默认复位 或者有用户配置中断 人为写入一个错误的WDCHK的值 将会立即产生一个看门狗技术抑制事件 从而产生复位或中断 看门狗设计可以参考收据手册或者这个表格 需要注意的是 看门狗复位以后 立即开始计数 对应于10兆内部 时间是13.11毫秒 看门狗的控制寄存器非常简单 只有分频和使能位 K值是用于清楚寄存器 要求用户按顺序写入 0X55和0XAA 这表格列举的 写入0X55和0XAA 清除看门狗寄存器的示例 另外 系统控制和状态寄存器 可以设置 看门狗的中断使能 和看门狗本身使能 接下来 我们讨论GPIO 由于资源增多 28X7X的GPIO 最多支持192个 从A组到F组 所有GPIO仍然支持输入滤波功能 但在功能分配上 需要进入两个分组 一个是group分组 而个是mux分组 GPIO的系统框图 可以明确看到 首先引脚进来 是一个 内部上拉使能电路 对于可以复位为PLM功能的GPIO0到11 上拉不使能 其他GPIO上拉使能 信号进来后可以设置内部的反向 和输入滤波 在设置GPIO的功能方面 首先需要进入group分组 group mux 将会分成四组 每一组的一个将作为GPIO功能 剩下三个可以配置为外设功能 在GPIO的数据寄存器方面 建议使用GPTOGGLE进行数据的输出 GPDAT数据输入 读取 GPDIR可以设定GPIO的方向 作为输入或输出 GPIO的数据配置功能可以配置为同步 异步 和三个和六个采样点 每个采样点的时间单独配置 为系统时钟的2到510分频 GPXQSEL寄存器用于配合同步异步或三和六的采样点 而GPXCTRL寄存器用于配置具体L口配置的系统分频数 与所有外设一样 GPIO默认有CPU1控制 CPU2和CRA需要对GPIO 进行数据操作 需要GPIO的控制寄存器 Call select进行配置 在此之后 该CPU可以通过GPIOdata set clear toggle来进行数据处理 这个表格罗列了GPIO的主要寄存器 GPIO还有两个非常重要的功能 是它的输入和输出x-bar x-bar的增加丰富了GPIO的功能选择 其中input x-bar 可以选择任意一个GPIO 作为内部输入源选择 这14个输入源可以分配到外部中断 capture 和同步信号 以及EPM output x-bar 这个表格列举了14个input信号 分别对应的功能 GPIO output x-bar可以将任意一个信号或脉冲 输入到任何一个GPIO管脚上面 包括模拟寄存器的高低电平信号 PWM和capture的同步信号 ADC的SOC信号 中断信号 capture信号 西格玛的滤波信号 和input x-bar的信号 这个系统框图表格列举了32个输出源的选择 32个输出源有4个选项 所以根据各自的片选功能 可以将某个信号输入到任意一个GPIO管脚上面 同时 在输出前 还可以索存和反向 外部中断 2837XD最多支持5个外部中断 如前所示 任意一个外部中断 可以通过GPIO的input x-bar 任意选择一个GPIO作为来源 而外部中断1到3 保留了原来的16位寄存器 用于检测时间差 配置外部中断时 我们首先要使能外部中断 然后配置极性 然后通过input x-bar配置需要的GPIO口 外部中断1到5 分别使用input x-bar Input 4 5 6 13 14 作为来源 再通过配置寄存器 设置其中断和极性 计数器可应用于检测时间 低功耗模式 F 2837XD支持更多低功耗模式 包括halt 和休眠 分别对应CPU的逻辑时钟 外设时钟 看门狗时钟 以及锁相环状态组合 低功耗模式的控制寄存器 将配置芯片继续进入某个模式 以及由哪些外设或中断唤醒 唤醒源可以来自复位 A组GPIO信号 看门狗中断和其他任何中断 GPIO唤醒低功耗模式 可以支持AB组 通过GPIOPMSEL寄存器来配置 寄存器保护 新增的lock 锁住寄存器配置 寄存器 可以有效防止寄存器被误改写 一旦lock寄存器生效 所有lock住的寄存器 将不能通过软件更改 除此之外 F2837XD保留了之前 CR8x的EALLOW保护功能 它可以防止代码的非法访问 只能通过汇编语言 指令来配置 被EALLOW保护的寄存器包括device配置寄存器 flash和加密模块 PIE DMA CLA PWM和系统寄存器等等 本章节我们主要讨论了 与系统相关的模块 从时钟 看门狗 GPIO 外部中断 低功耗模式 到寄存器保护等等 接下来我们继续讨论模拟外设和控制外设
欢迎回来 本章我们来讨论系统初始化
这个章节讲解的内容相对偏多
包括时钟 看门狗 通用IO 外部中断 低功耗模式 寄存器保护等
系统相关的模块
首先我们来讨论时钟
28X7X系列的时钟系统 与之前的PQ系列非常相似
它可以接受内部的两个10兆的时钟
或者外部时钟作为时钟沿
单独提供给看门狗或者系统时钟
系统时钟经过PLL锁相环
被分频得到 另外 它提供专用的GPIO73作为输出管脚
可以用于检测测试时钟是否正常
它的输入源可以来自内部时钟 辅助时钟
CPU的系统时钟 和锁相环时钟
辅助时钟源 则来自于外部时钟
或者内部时钟 都有自己独立的分频计数器
锁相环部分可以设置倍频和分频
倍频的比例 以四分之一为单位
分为整数和小数部分
从1到128
而分频只支持偶数
另外 系统时钟提供给低速的设备
还可以进一步分频
同样 值是偶数 最高到14分频
这个是2837XD 双核时钟系统
从锁相环出来的系统时钟 可以分配给各自的CPU和各自的低速通讯设备
也可以分配给对应的外设
需要注意 EPWM时钟 不能超过100兆
所以它可能需要1分频 2分频
看门狗的时钟源独立
可以来自内部或外部
CAN的时钟源比较特别 可以来自外部
或者是外设
另外 CPUtimer 可以来自不同的时钟源
包括内部外部 和系统时钟
时钟源的控制寄存器 可以有三个
可以配置各个模块的时钟选择
上电初始化以后
所以外设都默认分配个CPU1
所以CPU2需要控制任意一个外设
首先需要将外设分配给CPU2
通过CPUSELCT寄存器来配置
然后 分配给CPU2的外设
需要CPU2提供系统时钟
从而让该外设工作
同理 CPU1也需要对自己的外设做时钟处理
接下来讨论看门狗
看门狗的时钟
是独立的 所以在上电复位后独立于CPU运行
如果它的计数器溢出 将产生复位或中断
因此用户需要定时喂狗
通过清零达到寄存器不溢出的目的
在默认情况下 看门狗在13万个指令周期后
溢出 并达到复位状态
如果时钟使用内部十兆进制
对应时间是13.1毫秒
这个是看门狗的系统框图
时钟进来后 有一个固定的512分频
然后用户可以配置分频指数
经过看门狗始门位
它的8位计数器开始计数
在8位计数器抑制前 我们需要对WDK寄存器
进行0xm0xaa顺序写入的
清除寄存器
否则 看门狗技术一出 就会默认复位
或者有用户配置中断
人为写入一个错误的WDCHK的值
将会立即产生一个看门狗技术抑制事件
从而产生复位或中断
看门狗设计可以参考收据手册或者这个表格
需要注意的是 看门狗复位以后
立即开始计数 对应于10兆内部
时间是13.11毫秒
看门狗的控制寄存器非常简单
只有分频和使能位
K值是用于清楚寄存器
要求用户按顺序写入
0X55和0XAA 这表格列举的
写入0X55和0XAA 清除看门狗寄存器的示例
另外 系统控制和状态寄存器 可以设置
看门狗的中断使能 和看门狗本身使能
接下来 我们讨论GPIO
由于资源增多 28X7X的GPIO 最多支持192个 从A组到F组
所有GPIO仍然支持输入滤波功能
但在功能分配上 需要进入两个分组
一个是group分组 而个是mux分组
GPIO的系统框图 可以明确看到
首先引脚进来 是一个 内部上拉使能电路
对于可以复位为PLM功能的GPIO0到11
上拉不使能
其他GPIO上拉使能
信号进来后可以设置内部的反向
和输入滤波
在设置GPIO的功能方面 首先需要进入group分组
group mux 将会分成四组
每一组的一个将作为GPIO功能
剩下三个可以配置为外设功能
在GPIO的数据寄存器方面
建议使用GPTOGGLE进行数据的输出
GPDAT数据输入 读取
GPDIR可以设定GPIO的方向
作为输入或输出
GPIO的数据配置功能可以配置为同步 异步
和三个和六个采样点
每个采样点的时间单独配置
为系统时钟的2到510分频
GPXQSEL寄存器用于配合同步异步或三和六的采样点
而GPXCTRL寄存器用于配置具体L口配置的系统分频数
与所有外设一样 GPIO默认有CPU1控制
CPU2和CRA需要对GPIO 进行数据操作
需要GPIO的控制寄存器
Call select进行配置
在此之后 该CPU可以通过GPIOdata
set clear toggle来进行数据处理
这个表格罗列了GPIO的主要寄存器
GPIO还有两个非常重要的功能
是它的输入和输出x-bar
x-bar的增加丰富了GPIO的功能选择
其中input x-bar 可以选择任意一个GPIO
作为内部输入源选择
这14个输入源可以分配到外部中断 capture
和同步信号 以及EPM output x-bar
这个表格列举了14个input信号
分别对应的功能
GPIO output x-bar可以将任意一个信号或脉冲
输入到任何一个GPIO管脚上面
包括模拟寄存器的高低电平信号
PWM和capture的同步信号
ADC的SOC信号 中断信号
capture信号 西格玛的滤波信号
和input x-bar的信号
这个系统框图表格列举了32个输出源的选择
32个输出源有4个选项
所以根据各自的片选功能
可以将某个信号输入到任意一个GPIO管脚上面
同时 在输出前 还可以索存和反向
外部中断 2837XD最多支持5个外部中断
如前所示 任意一个外部中断 可以通过GPIO的input x-bar
任意选择一个GPIO作为来源
而外部中断1到3 保留了原来的16位寄存器
用于检测时间差
配置外部中断时 我们首先要使能外部中断
然后配置极性
然后通过input x-bar配置需要的GPIO口
外部中断1到5 分别使用input x-bar
Input 4 5 6 13 14 作为来源
再通过配置寄存器
设置其中断和极性
计数器可应用于检测时间
低功耗模式 F 2837XD支持更多低功耗模式
包括halt 和休眠
分别对应CPU的逻辑时钟 外设时钟 看门狗时钟
以及锁相环状态组合
低功耗模式的控制寄存器 将配置芯片继续进入某个模式
以及由哪些外设或中断唤醒
唤醒源可以来自复位 A组GPIO信号
看门狗中断和其他任何中断
GPIO唤醒低功耗模式 可以支持AB组
通过GPIOPMSEL寄存器来配置
寄存器保护
新增的lock 锁住寄存器配置
寄存器 可以有效防止寄存器被误改写
一旦lock寄存器生效
所有lock住的寄存器 将不能通过软件更改
除此之外 F2837XD保留了之前 CR8x的EALLOW保护功能
它可以防止代码的非法访问 只能通过汇编语言
指令来配置
被EALLOW保护的寄存器包括device配置寄存器
flash和加密模块 PIE
DMA CLA PWM和系统寄存器等等
本章节我们主要讨论了 与系统相关的模块
从时钟 看门狗 GPIO 外部中断
低功耗模式 到寄存器保护等等
接下来我们继续讨论模拟外设和控制外设
欢迎回来 本章我们来讨论系统初始化 这个章节讲解的内容相对偏多 包括时钟 看门狗 通用IO 外部中断 低功耗模式 寄存器保护等 系统相关的模块 首先我们来讨论时钟 28X7X系列的时钟系统 与之前的PQ系列非常相似 它可以接受内部的两个10兆的时钟 或者外部时钟作为时钟沿 单独提供给看门狗或者系统时钟 系统时钟经过PLL锁相环 被分频得到 另外 它提供专用的GPIO73作为输出管脚 可以用于检测测试时钟是否正常 它的输入源可以来自内部时钟 辅助时钟 CPU的系统时钟 和锁相环时钟 辅助时钟源 则来自于外部时钟 或者内部时钟 都有自己独立的分频计数器 锁相环部分可以设置倍频和分频 倍频的比例 以四分之一为单位 分为整数和小数部分 从1到128 而分频只支持偶数 另外 系统时钟提供给低速的设备 还可以进一步分频 同样 值是偶数 最高到14分频 这个是2837XD 双核时钟系统 从锁相环出来的系统时钟 可以分配给各自的CPU和各自的低速通讯设备 也可以分配给对应的外设 需要注意 EPWM时钟 不能超过100兆 所以它可能需要1分频 2分频 看门狗的时钟源独立 可以来自内部或外部 CAN的时钟源比较特别 可以来自外部 或者是外设 另外 CPUtimer 可以来自不同的时钟源 包括内部外部 和系统时钟 时钟源的控制寄存器 可以有三个 可以配置各个模块的时钟选择 上电初始化以后 所以外设都默认分配个CPU1 所以CPU2需要控制任意一个外设 首先需要将外设分配给CPU2 通过CPUSELCT寄存器来配置 然后 分配给CPU2的外设 需要CPU2提供系统时钟 从而让该外设工作 同理 CPU1也需要对自己的外设做时钟处理 接下来讨论看门狗 看门狗的时钟 是独立的 所以在上电复位后独立于CPU运行 如果它的计数器溢出 将产生复位或中断 因此用户需要定时喂狗 通过清零达到寄存器不溢出的目的 在默认情况下 看门狗在13万个指令周期后 溢出 并达到复位状态 如果时钟使用内部十兆进制 对应时间是13.1毫秒 这个是看门狗的系统框图 时钟进来后 有一个固定的512分频 然后用户可以配置分频指数 经过看门狗始门位 它的8位计数器开始计数 在8位计数器抑制前 我们需要对WDK寄存器 进行0xm0xaa顺序写入的 清除寄存器 否则 看门狗技术一出 就会默认复位 或者有用户配置中断 人为写入一个错误的WDCHK的值 将会立即产生一个看门狗技术抑制事件 从而产生复位或中断 看门狗设计可以参考收据手册或者这个表格 需要注意的是 看门狗复位以后 立即开始计数 对应于10兆内部 时间是13.11毫秒 看门狗的控制寄存器非常简单 只有分频和使能位 K值是用于清楚寄存器 要求用户按顺序写入 0X55和0XAA 这表格列举的 写入0X55和0XAA 清除看门狗寄存器的示例 另外 系统控制和状态寄存器 可以设置 看门狗的中断使能 和看门狗本身使能 接下来 我们讨论GPIO 由于资源增多 28X7X的GPIO 最多支持192个 从A组到F组 所有GPIO仍然支持输入滤波功能 但在功能分配上 需要进入两个分组 一个是group分组 而个是mux分组 GPIO的系统框图 可以明确看到 首先引脚进来 是一个 内部上拉使能电路 对于可以复位为PLM功能的GPIO0到11 上拉不使能 其他GPIO上拉使能 信号进来后可以设置内部的反向 和输入滤波 在设置GPIO的功能方面 首先需要进入group分组 group mux 将会分成四组 每一组的一个将作为GPIO功能 剩下三个可以配置为外设功能 在GPIO的数据寄存器方面 建议使用GPTOGGLE进行数据的输出 GPDAT数据输入 读取 GPDIR可以设定GPIO的方向 作为输入或输出 GPIO的数据配置功能可以配置为同步 异步 和三个和六个采样点 每个采样点的时间单独配置 为系统时钟的2到510分频 GPXQSEL寄存器用于配合同步异步或三和六的采样点 而GPXCTRL寄存器用于配置具体L口配置的系统分频数 与所有外设一样 GPIO默认有CPU1控制 CPU2和CRA需要对GPIO 进行数据操作 需要GPIO的控制寄存器 Call select进行配置 在此之后 该CPU可以通过GPIOdata set clear toggle来进行数据处理 这个表格罗列了GPIO的主要寄存器 GPIO还有两个非常重要的功能 是它的输入和输出x-bar x-bar的增加丰富了GPIO的功能选择 其中input x-bar 可以选择任意一个GPIO 作为内部输入源选择 这14个输入源可以分配到外部中断 capture 和同步信号 以及EPM output x-bar 这个表格列举了14个input信号 分别对应的功能 GPIO output x-bar可以将任意一个信号或脉冲 输入到任何一个GPIO管脚上面 包括模拟寄存器的高低电平信号 PWM和capture的同步信号 ADC的SOC信号 中断信号 capture信号 西格玛的滤波信号 和input x-bar的信号 这个系统框图表格列举了32个输出源的选择 32个输出源有4个选项 所以根据各自的片选功能 可以将某个信号输入到任意一个GPIO管脚上面 同时 在输出前 还可以索存和反向 外部中断 2837XD最多支持5个外部中断 如前所示 任意一个外部中断 可以通过GPIO的input x-bar 任意选择一个GPIO作为来源 而外部中断1到3 保留了原来的16位寄存器 用于检测时间差 配置外部中断时 我们首先要使能外部中断 然后配置极性 然后通过input x-bar配置需要的GPIO口 外部中断1到5 分别使用input x-bar Input 4 5 6 13 14 作为来源 再通过配置寄存器 设置其中断和极性 计数器可应用于检测时间 低功耗模式 F 2837XD支持更多低功耗模式 包括halt 和休眠 分别对应CPU的逻辑时钟 外设时钟 看门狗时钟 以及锁相环状态组合 低功耗模式的控制寄存器 将配置芯片继续进入某个模式 以及由哪些外设或中断唤醒 唤醒源可以来自复位 A组GPIO信号 看门狗中断和其他任何中断 GPIO唤醒低功耗模式 可以支持AB组 通过GPIOPMSEL寄存器来配置 寄存器保护 新增的lock 锁住寄存器配置 寄存器 可以有效防止寄存器被误改写 一旦lock寄存器生效 所有lock住的寄存器 将不能通过软件更改 除此之外 F2837XD保留了之前 CR8x的EALLOW保护功能 它可以防止代码的非法访问 只能通过汇编语言 指令来配置 被EALLOW保护的寄存器包括device配置寄存器 flash和加密模块 PIE DMA CLA PWM和系统寄存器等等 本章节我们主要讨论了 与系统相关的模块 从时钟 看门狗 GPIO 外部中断 低功耗模式 到寄存器保护等等 接下来我们继续讨论模拟外设和控制外设
欢迎回来 本章我们来讨论系统初始化
这个章节讲解的内容相对偏多
包括时钟 看门狗 通用IO 外部中断 低功耗模式 寄存器保护等
系统相关的模块
首先我们来讨论时钟
28X7X系列的时钟系统 与之前的PQ系列非常相似
它可以接受内部的两个10兆的时钟
或者外部时钟作为时钟沿
单独提供给看门狗或者系统时钟
系统时钟经过PLL锁相环
被分频得到 另外 它提供专用的GPIO73作为输出管脚
可以用于检测测试时钟是否正常
它的输入源可以来自内部时钟 辅助时钟
CPU的系统时钟 和锁相环时钟
辅助时钟源 则来自于外部时钟
或者内部时钟 都有自己独立的分频计数器
锁相环部分可以设置倍频和分频
倍频的比例 以四分之一为单位
分为整数和小数部分
从1到128
而分频只支持偶数
另外 系统时钟提供给低速的设备
还可以进一步分频
同样 值是偶数 最高到14分频
这个是2837XD 双核时钟系统
从锁相环出来的系统时钟 可以分配给各自的CPU和各自的低速通讯设备
也可以分配给对应的外设
需要注意 EPWM时钟 不能超过100兆
所以它可能需要1分频 2分频
看门狗的时钟源独立
可以来自内部或外部
CAN的时钟源比较特别 可以来自外部
或者是外设
另外 CPUtimer 可以来自不同的时钟源
包括内部外部 和系统时钟
时钟源的控制寄存器 可以有三个
可以配置各个模块的时钟选择
上电初始化以后
所以外设都默认分配个CPU1
所以CPU2需要控制任意一个外设
首先需要将外设分配给CPU2
通过CPUSELCT寄存器来配置
然后 分配给CPU2的外设
需要CPU2提供系统时钟
从而让该外设工作
同理 CPU1也需要对自己的外设做时钟处理
接下来讨论看门狗
看门狗的时钟
是独立的 所以在上电复位后独立于CPU运行
如果它的计数器溢出 将产生复位或中断
因此用户需要定时喂狗
通过清零达到寄存器不溢出的目的
在默认情况下 看门狗在13万个指令周期后
溢出 并达到复位状态
如果时钟使用内部十兆进制
对应时间是13.1毫秒
这个是看门狗的系统框图
时钟进来后 有一个固定的512分频
然后用户可以配置分频指数
经过看门狗始门位
它的8位计数器开始计数
在8位计数器抑制前 我们需要对WDK寄存器
进行0xm0xaa顺序写入的
清除寄存器
否则 看门狗技术一出 就会默认复位
或者有用户配置中断
人为写入一个错误的WDCHK的值
将会立即产生一个看门狗技术抑制事件
从而产生复位或中断
看门狗设计可以参考收据手册或者这个表格
需要注意的是 看门狗复位以后
立即开始计数 对应于10兆内部
时间是13.11毫秒
看门狗的控制寄存器非常简单
只有分频和使能位
K值是用于清楚寄存器
要求用户按顺序写入
0X55和0XAA 这表格列举的
写入0X55和0XAA 清除看门狗寄存器的示例
另外 系统控制和状态寄存器 可以设置
看门狗的中断使能 和看门狗本身使能
接下来 我们讨论GPIO
由于资源增多 28X7X的GPIO 最多支持192个 从A组到F组
所有GPIO仍然支持输入滤波功能
但在功能分配上 需要进入两个分组
一个是group分组 而个是mux分组
GPIO的系统框图 可以明确看到
首先引脚进来 是一个 内部上拉使能电路
对于可以复位为PLM功能的GPIO0到11
上拉不使能
其他GPIO上拉使能
信号进来后可以设置内部的反向
和输入滤波
在设置GPIO的功能方面 首先需要进入group分组
group mux 将会分成四组
每一组的一个将作为GPIO功能
剩下三个可以配置为外设功能
在GPIO的数据寄存器方面
建议使用GPTOGGLE进行数据的输出
GPDAT数据输入 读取
GPDIR可以设定GPIO的方向
作为输入或输出
GPIO的数据配置功能可以配置为同步 异步
和三个和六个采样点
每个采样点的时间单独配置
为系统时钟的2到510分频
GPXQSEL寄存器用于配合同步异步或三和六的采样点
而GPXCTRL寄存器用于配置具体L口配置的系统分频数
与所有外设一样 GPIO默认有CPU1控制
CPU2和CRA需要对GPIO 进行数据操作
需要GPIO的控制寄存器
Call select进行配置
在此之后 该CPU可以通过GPIOdata
set clear toggle来进行数据处理
这个表格罗列了GPIO的主要寄存器
GPIO还有两个非常重要的功能
是它的输入和输出x-bar
x-bar的增加丰富了GPIO的功能选择
其中input x-bar 可以选择任意一个GPIO
作为内部输入源选择
这14个输入源可以分配到外部中断 capture
和同步信号 以及EPM output x-bar
这个表格列举了14个input信号
分别对应的功能
GPIO output x-bar可以将任意一个信号或脉冲
输入到任何一个GPIO管脚上面
包括模拟寄存器的高低电平信号
PWM和capture的同步信号
ADC的SOC信号 中断信号
capture信号 西格玛的滤波信号
和input x-bar的信号
这个系统框图表格列举了32个输出源的选择
32个输出源有4个选项
所以根据各自的片选功能
可以将某个信号输入到任意一个GPIO管脚上面
同时 在输出前 还可以索存和反向
外部中断 2837XD最多支持5个外部中断
如前所示 任意一个外部中断 可以通过GPIO的input x-bar
任意选择一个GPIO作为来源
而外部中断1到3 保留了原来的16位寄存器
用于检测时间差
配置外部中断时 我们首先要使能外部中断
然后配置极性
然后通过input x-bar配置需要的GPIO口
外部中断1到5 分别使用input x-bar
Input 4 5 6 13 14 作为来源
再通过配置寄存器
设置其中断和极性
计数器可应用于检测时间
低功耗模式 F 2837XD支持更多低功耗模式
包括halt 和休眠
分别对应CPU的逻辑时钟 外设时钟 看门狗时钟
以及锁相环状态组合
低功耗模式的控制寄存器 将配置芯片继续进入某个模式
以及由哪些外设或中断唤醒
唤醒源可以来自复位 A组GPIO信号
看门狗中断和其他任何中断
GPIO唤醒低功耗模式 可以支持AB组
通过GPIOPMSEL寄存器来配置
寄存器保护
新增的lock 锁住寄存器配置
寄存器 可以有效防止寄存器被误改写
一旦lock寄存器生效
所有lock住的寄存器 将不能通过软件更改
除此之外 F2837XD保留了之前 CR8x的EALLOW保护功能
它可以防止代码的非法访问 只能通过汇编语言
指令来配置
被EALLOW保护的寄存器包括device配置寄存器
flash和加密模块 PIE
DMA CLA PWM和系统寄存器等等
本章节我们主要讨论了 与系统相关的模块
从时钟 看门狗 GPIO 外部中断
低功耗模式 到寄存器保护等等
接下来我们继续讨论模拟外设和控制外设
视频报错
手机看
扫码用手机观看
收藏本课程
视频简介
C2837x入门指南(六) — 系统初始化
所属课程:C2837x入门指南
发布时间:2016.06.06
视频集数:28
本节视频时长:00:11:41
C2837x概述;芯片架构; 开发环境;外设寄存器操作;复位和中断;系统初始化;模拟子系统 ADC DAC CMP SDFM;控制类外设PWM CAP QEP。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>