ZHCACV2 july   2023

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2硬件要求
    1. 2.1 所需的硬件和测试仪器
    2. 2.2 设计中使用的微控制器资源
    3. 2.3 TIDA-01606 REV-6 的硬件更改
    4. 2.4 TMDSCNCD263 controlCARD™ 更改
  6. 3软件
    1. 3.1 固件入门
      1. 3.1.1 打开 Code Composer Studio 工程
      2. 3.1.2 软件架构
      3. 3.1.3 工程文件夹结构
    2. 3.2 SysConfig 设置
      1. 3.2.1  EPWM 配置
      2. 3.2.2  EPWM 事件触发中断
      3. 3.2.3  计时器配置
      4. 3.2.4  SDFM 配置
      5. 3.2.5  ADC 配置
      6. 3.2.6  CMPSS 配置
      7. 3.2.7  EPWM XBAR 配置
      8. 3.2.8  ECAP 配置
      9. 3.2.9  输出 XBAR 配置
      10. 3.2.10 输入 XBAR 配置
    3. 3.3 中断和实验结构
      1. 3.3.1 ISR1
      2. 3.3.2 ISR1 - 实验 3
      3. 3.3.3 ISR2
    4. 3.4 保护方案
    5. 3.5 CPU 负载
    6. 3.6 构建、加载和调试固件
  7. 4实施优化
  8. 5测试和结果
    1. 5.1 实验 1
    2. 5.2 测试逆变器运行情况
      1. 5.2.1 实验 2 和实验 3
      2. 5.2.2 实验 3 性能
      3. 5.2.3 逆变器中断基准测试
      4. 5.2.4 实验 4
    3. 5.3 测试 PFC 运行情况
      1. 5.3.1 实验 5
        1. 5.3.1.1 Memory Browser - 持续刷新
      2. 5.3.2 实验 6
      3. 5.3.3 实验 7
      4. 5.3.4 实验 7 中的 PFC 运行测试结果
      5. 5.3.5 PFC 中断基准测试
  9. 6参考文献

PFC 中断基准测试

本节包含 PFC 实验中 ISR1 的中断执行时间,并介绍运行分析测试的过程。

在构建和加载代码之前,为所需的 ISR 添加分析代码。使用 API CycleCounterP_getCount32() 在 ISR 开始时捕获周期计数器的值。使用同一 API 在 ISR 结束时捕获周期计数器的值。现在,结束计数器值和开始计数器值之间的差异给出了执行 ISR1 代码所需的确切 CPU 时钟周期数。此分析代码在应用程序中进行了注释,因为它仅用于对 ISR1 执行时间进行基准测试。要使用此代码,请在工程中定义 PROFILING_ISR1_MAIN 宏。

通过 CCS 构建代码更改并在 AM263x controlCARD 中加载代码。在“Watch”窗口中添加变量 TINV_startPowerStageTINV_closeGiLoopMax_CPU_CyclesMin_CPU_Cycles。在 CCS 中运行应用程序,并设置 TINV_startPowerStage = 1 和 TINV_closeGiLoop = 1 的值,以启动电流和电压环路转换。暂停代码并查找 Max_CPU_CyclesMin_CPU_Cycles 的值以查看所记录的值。要复位 CPU 周期值,请将 Max_CPU_Cycles 设置为 0,将 Min_CPU_Cycles 设置为任意最大值。

此基准测试中未捕获 ISR 中断延迟,即从硬件中断触发 ISR 到软件应用程序中开始执行 ISR1 所用的时间。

表 5-4 中的 CPU 周期值在“Max”列中较高,因为未缓存代码并且为首次执行设置了一些标志。表的“Min”列中列出了 Control ISR1 在首次执行后的执行。“Min”列中的值用于捕获理想情况下的 ISR1 执行时间。

表 5-4 PFC 运行的中断基准测试
最小值 最大值
实验编号 CPU 周期数 执行时间 (μs) CPU 周期数 执行时间 (μs)
实验 5 599 1.4975 627 1.5675
实验 6 842 2.105 895 2.2375
实验 7 856 2.14 924 2.31