【SemeDrive】【X9H】如何修改 SAFETY_FAULT 输出 PWM 频率


前言:

SAFETY_FAULT 也是 SEM_FAULT,在原理图上会有不同的标注,但意义一样。
默认的  SAFETY_FAULT 正常时输出 PWM 频率为 100 MHz,过高的频率有时会导致无法通过 EMI 测试,需要降低频率。以下描述如何将正常时的  SAFETY_FAULT 输出频率从 100 MHz 降低到 390  KHz。
以下操作参考了芯驰的文档《Kunlun SEM 模块 sem_fault 输出波形说明》。


一、SAFETY_FAULT 输出波形说明

SAFETY_FAULT 通过输出两种波形:WaveformA or WaveformB 来指⽰当前芯⽚的状态。芯⽚正常⼯作或者出现 recoverable error的时候,都会有波形输出;只有在发⽣ FatalError 的情
况下,才会没有任何波形输出。


1. WaveformA 、 WaveformB 和工作时钟的关系:

WaveformA = (SEM clock [pclk/2]) / (divider ratio)
WaveformB = WaveformA / 16
SEM clock = pclk / 2
Pclk = bus_clk_out_n of saf_plat (saf_plat / 4)


2. 寄存器  APB_SEM1_BASE 的 bit[11] 控制正常工作时输出 WaveformA or WaveformB:





3. 寄存器  APB_SEM1_BASE 的 bit[15~12] 控制分频值(divider ratio):

4 个 bit 值为 0~15,范围 1~16 分频


二、将  SAFETY_FAULT 正常工作输出 PWM 频率改为 390 KHz

在 freertos_safetyos/application/system/soc-init/safety_init.c 的 platform_clk_init 执行完成之后,在 safety 中修改寄存器 APB_SEM1_BASE 的值即可。

1. X9 sem_fault 的 默认配置为:

Register 0xf03200000(sem1), value 0x3E4

2. 在 safety_init 最后修改寄存器值:

writel(0xfbe4,APB_SEM1_BASE);

表示:无错误(nominal)时频率为 390.625 KKz,error 时频率为 6.25MHz,fatal error 时无波形输出

总结:只要在时钟初始化完成后的 safety 中修改 APB_SEM1_BASE 的 15~11 位即可。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论