【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 位即可。

欢迎登录大大通,阅读原文,浏览更多该原厂系列技术内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值