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.

[FAQ] [参考译文] 【常见问题解答】TDA4VH:计时器处于捕获模式。

Guru**** 2578945 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1575590/faq-tda4vh-timer-in-capture-mode

器件型号:TDA4VH


工具/软件:

如何在 Linux 中的捕获模式下启用计时器?

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

    我附加了使用计时器 IO 启用捕获的补丁:

    U-Boot 驱动程序更改:

    0001-patch.patch TIMER-CAPTURE-DTBO-ENV-OVERLAY

    Linux 驱动程序更改:

    0001-patch.patch TIMER-CAPTURE-DRIVER-CHANGES

    Linux 器件树更改:

    1072.0002-changes.patch TIMER-CAPTURE-DTS

    DTBO:

    k3-j784s4-dmtimer-cap.dtbo

    问题

    • 应用上述所有修补程序。
    • 应用这些补丁后、通过从运行以下命令来重新编译 uboot 和 Linux SDK 目录中找到
      • >make u-boot
        >make linux
    • 将以下文件复制到 SD 卡的引导目录中:
      • /board-support/ /build/r5/tiboot3.bin
      • /board-support/ /build/a72/tispl.bin
      • /board-support/ /build/a72/u-boot.img
    • 将以下文件复制到 /boot
      • /board-support/ /arch/arm64/boot/Image
    • 将以下文件复制到 /boot/dtb/ti
      • /board-support/ /arch/arm64/boot/dts/ti/k3-j784s4-evm.dtb
      • 上面附加了 k3-j784s4-dmtimer-cap.dtbo 文件。
    • 运行以下脚本以开始捕获
      • #!/bin/bash
        
        #set -x
        
        cd /sys/class/pwm/pwmchip0
        echo 0 > export #Will export pwm0 device 
        cd pwm0/
        echo 100000000 > period #In nanoseconds
        echo 30000000 > duty_cycle #In nanoseconds
        echo "normal" > polarity
        echo 1 > enable
        
        while true
         do
          cat capture
          sleep 2
         done
    • 设置 TIMER_TCLR 寄存器的 GPO_CFG 位 TIMER0 为 1 (捕获模式)  使用以下命令:

    注意:  

    确保 uENV.txt 文件“ name_overlays “参数(如果存在) 不会覆盖  patch 0001-global.patch 中提供的 name_overlays 参数 TIMER-CAPTURE-DTBO-ENV-OVERLAY 

    限制:

    正确捕获时间段值。

    但是、占空比值可能不准确、因为计时器只有 2 个捕捉寄存器、这些寄存器可在上升时使用 CAP1 进行捕获、在下降时使用 CAP2 进行捕获、反之亦然。 因此、将捕获(占空比)或 (1-DUTY_CYCLE)。 这实际上是 IP 的硬件限制。

    此致

    Gokul