This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:使用外部时钟源而不是内部 ePWM 模块的 SDFM

Guru**** 2012440 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE, TIDA-00080, CDCE906
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1128950/tms320f28379d-sdfm-using-external-clock-source-not-internal-epwm-module

器件型号:TMS320F28379D
主题中讨论的其他器件: C2000WARETIDA-00080CDCE906

你好。  

我已经研究了 TMS320F28379D 上的模块 SDFM。  

首先、我用280049c 调查了 SDFM、因为它在 c2000ware 中有许多示例。  

在这些示例中、我使用自己的 ePWM 为 SDFM 创建高达20MHz 的时钟。

它可以正常工作、我可以在 CCS 调试窗口中看到滤波器结果。   

我的最终目标是评估将 SDFM 与 TMS320F278379D 结合使用的 TIDA-00080参考设计。  

在此设计中、CDCE906用作 SDFM 的时钟发生器、而不是 ePWM。  

我成功地对 CDCE906进行了编程、从而为 SDFM 生成20MHz 时钟

通过使用该时钟信号、我可以看到来自 AMC1306的数据流。  

下图是 AMC1306的时钟信号和数据流信号。  

使用这些信号、我想在 CCS 调试窗口中获取并查看 SDFM 的滤波器结果数据。  

但我可以获取标志数据、这些信号的 mfx 已设置。   

以下是我检查的要点。  

我可以从 GPBDAT.GPIO48/49中看到专用于 SD-D1、SD-C1的正确二进制数据。  

因此、我确信时钟信号和数据流信号分别很好地传递到 SD-C1和 SD-D1。  

2.我禁用了 mfx 中断。 但仍然没有设置 AFX 标志。    

3. PIEIER5.INTx9设置为 I 编码,但  PIEIFR5.INTx9 保持“0”状态。  

从这些检查点看、我认为 SDFM 中断无法正常工作、这就是问题所在。   

我可以 在28379D 的技术参考手册中找到 MFx 中断的原因。  

第1818页、"当 SD-CX 丢失时生成调制器故障(mfx)。 考虑调制器时钟
如果针对64个 SYSCLK 未切换 SD-Cx、则缺失。"  

"当主滤波器准备好使用新的滤波器数据时、将生成 AFX 事件。 AFX 事件
四个主滤波器模块可配置为触发 CPU 中断。"  

因此、在我的案例中、SD-Cx 不会丢失、因为我可以看到专用 GPIO 端口上的值。   

但我认为"对于64个 SYSCLK 不进行切换"有问题  

使用 ePWM 时、PWM 时钟信号自由运行并与 SYSCLK 同步。

但我不知道外部时钟信号。  

总之、我的问题如下所示。  

当 SDFM 使用一个外部时钟信号时(在我的例子中、使用 CDCE906、时钟合成器)

1、我应该配置什么来使64个 SYSCLK 的 SD-Cx 切换、如设置标志、mfx、 "0"的手册中所述?  

2、MCU 表示 SDFM 数据已准备好生成 AFX 事件的原因是什么?  

 我附上了以下代码。 代码最初来自 c2000ware 文件夹、我配置了一些内容。  

(我尝试禁用 mfx 并启用)  

感谢您的进一步帮助。  

此致。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//###########################################################################
//
// FILE: sdfm_ex1_filters.c
//
// TITLE: SDFM Filter sync CPU Example.
//
//! \addtogroup driver_example_list
//! <h1> SDFM Filter Sync CPU</h1>
//!
//! In this example, SDFM filter data is read by CPU in SDFM ISR routine. The
//! SDFM configuration is shown below:
//! - SDFM used in this example - SDFM1
//! - Input control mode selected - MODE0
//! - Comparator settings
//! - Sinc3 filter selected
//! - OSR = 32
//! - HLT = 0x7FFF (Higher threshold setting)
//! - LLT = 0x0000(Lower threshold setting)
//! - Data filter settings
//! - All the 4 filter modules enabled
//! - Sinc3 filter selected
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Miles、

    [~ userid="506901 " URL"/support/microriers/C2000-microriers-group/C2000/f/C2000-microriers-forum/1128950/tms320f28379d-sdfm-using-external-clock-source-no-internal-ePWM-MODULE"]。 我应该配置什么来使64个 SYSCLK 的 SD-CX 切换、如设置标志、mfx、 "0"的手册中所述?  [/报价]

     配置 SDFM 后、外部时钟可能会打开、这样 SDFM 就会最初看到外部时钟关闭了? 您是否尝试通过 SDIFLGCLR 寄存器清除 MF 标志? 是否再次设置该标志?

    [~ userid="506901 " URL"/support/microriers/C2000-microriers-group/C2000/f/C2000-microriers-forum/1128950/tms320f28379d-sdfm-using-external-clock-source-no-internal-ePWM-module]2. MCU 表示 SDFM 数据准备好生成 AFX 事件的原因是什么?  [/报价]

    AF 位在过滤器中有新数据可用时置位。 AFX 位的逻辑如下所示。