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.

[参考译文] CC2340R5:Zephyr LP_em_cc2340r53.dts 为 PWM_RED 定义了错误的 PWM 通道

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1624740/cc2340r5-zephyr-lp_em_cc2340r53-dts-defines-wrong-pwm-channel-for-pwm_red

器件型号: CC2340R5

您好:

我迷惑了 Zephyr 中用于 CC2340 的 PWM 计时器、 在 lp_em_cc2340r53.dts 中我注意到我们定义了 pwmleds 节点、如下所示:

	pwmleds {
		compatible = "pwm-leds";

		pwm_green: pwm_led_0 {
			pwms = <&pwm6 0 1000 PWM_POLARITY_NORMAL>;
			label = "Green PWM LED";
		};

		pwm_red: pwm_led_1 {
			pwms = <&pwm5 0 1000 PWM_POLARITY_NORMAL>;
			label = "Red PWM LED";
		};
	};

但是、pwm5 为 lgpt1_chan2、因此通过器件树引用 PWM_RED 不会导致正确更新计时器捕获比较寄存器。

为此、我们需要将.dts 更改为以下格式、以便 PWM 驱动程序更新正确的通道:

	pwmleds {
		compatible = "pwm-leds";

		pwm_green: pwm_led_0 {
			pwms = <&pwm6 0 1000 PWM_POLARITY_NORMAL>;
			label = "Green PWM LED";
		};

		pwm_red: pwm_led_1 {
			pwms = <&pwm5 2 1000 PWM_POLARITY_NORMAL>;
			label = "Red PWM LED";
		};
	};

Munan

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

    尊敬的 Munan:

     您是否能够验证此解决方案是否符合您的预期、或者是否仍有任何问题? 如果是、我将与开发团队一起处理、以便在下一个版本中解决问题。 当然、我会先自行测试。

    此致、

    Ging

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

    嘿、Ging、

    是的、将通道编号更改为 2 会按预期启用 PWM_RED。

    Munan

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

    感谢您的确认。 我创建了一个内部 TT 和一个包含该解决方案的 PR。 我还在我这边确认解决方案有效。 该修复程序应在下一个版本中进行。 但现在、您可以使用覆盖文件覆盖通道。

    此致、

    Ging