TMS320F2806X学习笔记(一)—— 了解片上资源

📅 2026/8/19 14:41:56
TMS320F2806X学习笔记(一)—— 了解片上资源
系统架构处理器和计算单元CPUC28x属于32位定点架构内含32x32 MAC用于整数乘法的高效运算FPU能够进行浮点数运算。需要注意的是能够加速整数除法运算的FINTDIV仅在较新的器件上包含因此在F2806X中整数除法运算反而会比浮点除法运算慢一些。CLAC28x CLA 是一个单精度32 位浮点单元通过增加并行处理能力来扩展 C28x CPU 的功能。CLA 是一个独立的处理器拥有自己的总线结构、取指机制和流水线。可以指定八个独立的 CLA 任务或例程。每个任务可以由软件或外设如 ADC、ePWM、eCAP、eQEP 或 CPU Timer 0启动。CLA 会一次执行一个任务直到完成。当任务完成时主 CPU 会通过 PIE 中断收到通知CLA 会自动开始下一个最高优先级的待处理任务。CLA 可以直接访问 ADC 结果寄存器、ePWM HRPWM、eCAP 和 eQEP 寄存器。专用消息 RAM 提供了一种在主 CPU 和 CLA 之间传递额外数据的方法。VCUC28x VCU 通过增加额外的汇编指令来处理复杂的数学运算、Viterbi 解码和 CRC 计算从而增强了 C2000 设备的处理能力。总线内存总线C28X采用哈佛架构内存总线架构包含程序读取总线、数据读取总线和数据写入总线。程序读取总线由 22 条地址线和 32 条数据线组成。数据读取和写入总线各由 32 条地址线和 32 条数据线组成。C28x 能在单个周期内获取指令、读取数据值并写入数据值。外设总线外设总线由16条地址线、16或32条数据线以及相关控制信号组成TI将所有外设依据特性划分到四个外围寄存器空间命名为“Peripheral Frames”外设帧。目前我们只需要注意到不同外设帧之间的读写速度和数据位宽等是有差异的。片上存储FLASH和OTPF2806X嵌入式闪存有128K × 16和64K × 16两种 128K × 16 的嵌入式闪存分为八个 16K × 16 的扇区 64K × 16 的嵌入式闪存分为八个 8K × 16 的扇区。所有设备还在地址范围 0x3D7800 到 0x3D7BF9 中包含一个 1K × 16 的 OTP 内存。用户可以单独擦除、编程和验证一个闪存扇区而不会影响其他扇区。不过不能使用某个闪存扇区或 OTP 来执行擦除或编程其他扇区的闪存算法。闪存操作指令需要加载至RAM中运行防止闪存操作异常闪存/OTP 映射到程序和数据空间因此可以用于执行代码或存储数据信息。地址 0x3F7FF0 到 0x3F7FF5 是为数据变量保留的不应包含程序代码。闪存和 OTP 等待状态可以由应用程序配置这允许根据运行频率配置闪存达到更好的性能。闪存具有可配置的流水线模式启用此模式后线性代码执行的实际性能会比仅凭等待状态配置显示的原始性能快得多。使用闪存流水线模式的具体性能提升取决于具体应用。RAM设备都包含M0, M1这两个单访问内存块SARAMs每个大小为 1K × 16。在复位时堆栈指针指向 M1 块的起始位置。M0 和 M1 块与所有其他 C28x 设备的内存块一样都映射到程序空间和数据空间。因此用户可以使用 M0 和 M1 执行代码或存储数据变量。分区是在链接器中进行的。C28x 设备向程序员呈现统一的内存映射这让用高级语言编程更加容易。设备最多包含 48K × 16 的单访问 RAM。要确定具体设备的确切大小请参阅设备特定内存映射图。这个块映射到程序空间和数据空间。L0 大小为 2K。L1 和 L2 的大小都是 1K。L3 的大小为 4K。L4、L5、L6、L7 和 L8 的大小都是 8K。L0、L1 和 L2 与 CLA 共享CLA 可以用这些块作为数据空间。L3 与 CLA 共享CLA 可以用这个块作为程序空间。L5、L6、L7 和 L8 与 DMA 共享DMA 可以用这些块作为数据空间。DPSARAM 指的是这些块的双端口配置。Boot ROMBoot ROM 出厂时就已经预装了启动加载软件。用户可以通过启动模式信号选择正常启动、从外部连接下载新软件或者选择内部 Flash/ROM 中预装的启动软件。Boot ROM 还包含一些标准表格比如用于数学相关算法的正弦/余弦波形表。安全功能CSM代码安全模块CSM用于保护闪存/OTP和L0/L1 SARAM块以防止用户固件被逆向工程破解。用户将一个128位密码编程到闪存中要访问安全块用户必须写入与闪存密码位置中存储的值匹配的正确128位KEY值。ECSL调试代码安全逻辑ECSL以防止未授权用户逐步调试安全代码。在调试探针连接时对CSM安全内存的任何代码或数据访问都会触发ECSL并断开调试探针连接。为了在保持CSM对安全内存读取保护的同时调试安全代码用户必须将正确的值写入KEY寄存器的低64位KEY0 – KEY3该值要与闪存密码位置低64位中存储的值匹配。仍然必须进行对闪存中128位密码的虚拟读取。如果密码位置的低64位PWL0 – PWL3都是1未编程则KEY值不必匹配。中断CPU有12条中断线INT1 到 INT12外设中断模块PIEPIE模块支持将96个外设中断8个一组复用为12个中断输入集INT1至INT12输入到CPU。在F2806x中96个中断中的72个由外设使用。中断向量存储在可由用户覆盖的专用RAM模块中。在处理中断时CPU会自动获取这些向量。获取向量并保存关键的CPU寄存器需要8个CPU时钟周期。中断的优先级由硬件和软件共同控制每个单独的中断都可以在PIE模块内启用或禁用。外部中断三个带屏蔽功能的外部中断XINT1–XINT3均可选择为负边沿触发、正边沿触发或同时选择负边沿和正边沿触发并且可以启用或禁用。这些中断还包含一个16位的自运行递增计数器当检测到有效中断边沿时该计数器将重置为零。该计数器可用于为中断精确地打上时间戳。外部中断没有专用引脚。XINT1、XINT2和XINT3中断可接受来自GPIO0–GPIO31引脚的输入。系统时钟时钟和锁相环时钟源可以选择两种内部振荡器、外部振荡器、外部晶体中的任意一种。设备中提供了一个可以旁路的PLL支持最多16种输入时钟缩放比。PLL的比率可以在软件中即时更改使用户在想要降低功耗时可以降低运行频率。第二个PLLPLL2为HRCAP模块提供时钟。外设时钟每个独立外设的时钟均可启用或禁用以在外设未使用时降低功耗。此外串行端口I2C除外的系统时钟可相对于CPU时钟进行缩放。看门狗CPU看门狗CPU看门狗负责监控核心用户软件必须在特定时间内重置CPU看门狗计数器喂狗否则CPU看门狗会对处理器发出复位信号。如果需要CPU看门狗可以被禁用。NMI看门狗NMI看门狗是一个缺失时钟检测电路只在时钟故障时启动可以产生中断或复位设备。低功耗模式在尝试将设备置于HALT或STANDBY状态之前CPU时钟OSCCLK和看门狗时钟源应来自同一时钟源。空闲IDLE模式使CPU进入低功耗模式。可以选择性地关闭外设时钟仅保留那些在空闲模式下必须运行的外设继续运行。来自活动外设或看门狗定时器的已启用中断会将处理器从空闲模式唤醒。待机STANDBY模式关闭CPU和外围设备的时钟。此模式保留振荡器和锁相环PLL的功能。外部中断事件将唤醒处理器和外围设备。处理器将在检测到中断事件后的下一个有效周期开始执行。暂停HALT模式关闭设备并将其置于最低功耗模式。此模式会关闭内部振荡器和片上晶体振荡器外部晶振。内部振荡器可用于为CPU看门狗提供时钟为防止内部振荡器关闭可使用CLKCTL寄存器中的INTOSCnHALTI位。复位、外部信号通过GPIO引脚或CPU看门狗可将设备从该模式唤醒。通用输入/输出GPIO多路复用器大多数引脚可配置为外设信号或通用输入/输出GPIO复位时GPIO引脚被配置为输入。用户还可以配置部分引脚的采样和筛选以过滤掉不必要的噪声干扰。GPIO信号还可以用于使设备退出特定的低功耗模式。CPU定时器CPU定时器0、1和2是相同的32位定时器具有可预设的周期和16位时钟预分频功能。这些定时器配备了一个32位倒计数寄存器当计数器达到零时会生成一个中断并自动重新加载一个32位的周期值。CPU定时器0用于通用连接到PIE模块。CPU定时器1也用于通用可连接到CPU的INT13。CPU定时器2专为SYS/BIOS预留。CPU定时器2连接到CPU的INT14。如果未使用SYS/BIOS则CPU定时器2可用于通用。CPU定时器2可以由系统时钟/内部振荡器1/内部振荡器2/外部时钟源驱动。控制外设增强型占空比调制器ePWM增强型PWM外设支持独立/互补PWM生成、前沿/尾沿可调死区生成以及锁存/逐周期跳转机制。部分PWM引脚支持HRPWM高分辨率占空比和周期特性。2806x设备上的1型模块还支持更高的死区分辨率、增强的SOC和中断生成以及包括基于比较器输出的跳转功能在内的先进触发功能。增强型捕获器eCAP增强型捕获外设采用32位时基可在连续/单次捕获模式下注册多达四个可编程事件。该外设还可以配置为生成辅助PWM信号。增强型正交编码器脉冲模块eQEP增强型QEP外设采用32位位置计数器支持使用捕获单元进行低速测量和使用32位单元定时器进行高速测量。该外设具有一个看门狗定时器用于检测电机失速并具有输入错误检测逻辑用于识别QEP信号中的同时边缘转换。模数转换器ADCADC模块是一个12位转换器。根据设备不同ADC最多可引出16个单端通道。此外ADC还包含两个采样保持单元用于同时采样。比较器Comparator每个比较器模块均包含一个模拟比较器以及一个内部10位基准电压源用于为比较器提供一个输入。高分辨率捕获器HRCAP高分辨率捕获外设通过HCCAPCLK的16位计数器以正常捕获模式运行或通过结合使用内置校准逻辑和TI提供的校准库以高分辨率捕获模式运行。串行端口外设串行外设接口SPISPI是一个高速、同步的串行输入/输出端口它允许以可编程的位传输速率将具有编程长度1至16位的串行位流移入和移出设备。SPI的主/从操作支持多设备通信。SPI包含一个四级接收和发送FIFO以减少中断服务开销。串行通信接口SCIUART串行通信接口是一个2线异步串行端口通常称为UART。SCI包含一个4级接收和发送FIFO用于减少中断服务开销。内部集成电路总线I2C内部集成电路总线可发送或接收多达8位的数据。I2C包含一个4级接收和发送FIFO以减少中断服务开销。增强型控制器局域网eCAN这是CAN外设的增强版。eCAN支持32个邮箱对消息进行时间戳处理并符合ISO 11898-1CAN 2.0B标准。多通道缓冲串行端口McBSP多通道缓冲串行端口McBSP可连接至E1/T1线路、用于调制解调器应用的电话级编解码器或高品质立体声音频数模转换DAC设备。DMA支持McBSP的接收和发送寄存器从而显著减少为该外设提供服务的开销。每个McBSP模块可根据需要配置为SPI。通用串行总线USB符合USB 2.0规范的USB外设可用作全速12-Mbps设备控制器或全速12-Mbps或低速1.5-Mbps主机控制器。该控制器支持总共六个用户可配置端点——除端点零的专用控制端点外所有端点均可通过DMA访问。所有发送或接收的数据包均在4KB的专用端点内存中进行缓冲。USB外设支持三种传输类型控制、中断和批量。由于USB外设的复杂性以及相关协议的开销C2000Ware中提供了一个包含应用示例的完整软件库。