TCPWM輸入脈寬擷取資料異常

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,最近嘗試使用TCPWM實現脈寬捕獲的時候遇到了奇怪的問題,我將通道配置成了捕獲模式,並且配置CC0為上升沿捕獲,CC1為下降沿捕獲,但觀察實際值卻是CC0和CC1一同刷新了,這是為什麼呢?

xxwyxj_0-1703841557140.png

這個是暫存器值

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/td-p/668668

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

我想知道這種行為的原因是否在於觸發器多路復用器的配置而不在 TCPWM。

也許是這樣的:觸發多工器具有一個從邊緣生成脈衝的功能,請參閱註冊器 PERI_TR_GR_TR_CTL。

JJack_0-1704286934237.png

因此,如果 TR_EDGE == 1,則 TCPWM 觸發輸入而不是原始信號,則會看到存在邊緣的短脈衝。 而且這些短脈衝中的每一個都有正邊和負邊。 這使 TCPWM 觸發輸入的邊緣靈敏度對您的目的無用。

結論:使 SHURE TR_EDGE 為 0,以便原始邊緣通過觸發多工器傳播。

也許您可以詳細說明您的觸發信號和觸發多工器的配置。

BR

傑克

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM-input-pulse-width-capture-data-abnormal/m-p/670242

在原始文章中檢視解決方案

0
8 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

請問您使用的SDL的版本是多少?用的是哪個sample code?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/668697

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,我用的應該算半個HAL庫,單片機用的CYT4BF,不知道為什麼HAL庫限制了只能使用上升沿,但寄存器描述是可以的,所以用了HAL庫的時脈初始化部分,其他是自己寫的暫存器值,最終效果就是能正確觸發擷取中斷且計數值正確(時脈1M,測試脈衝為1K、50%佔空比,為了方便截圖改成了1hz),唯一的問題就是CC0和CC1同步更新了,看起來像是配置的下降沿觸發CC1捕獲並沒有生效,但EDGE_SEL寄存器是將CC1配置成下降沿更新的

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/668701

0
Translation_Bot
Community Manager
Community Manager
Community Manager

還有測試腳位是使用的P7_6

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/668702

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

請問您目前開發使用的IDE是什麼?

我們一般還是推薦客戶使用SDL函式庫來做開發,是專門針對Traveo II這個系列的。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/669130

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,我用的MDK5.38a,沒有用SDL函式庫是因為沒找到SDL函式庫的例行工程😥

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/669133

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

我想知道這種行為的原因是否在於觸發器多路復用器的配置而不在 TCPWM。

也許是這樣的:觸發多工器具有一個從邊緣生成脈衝的功能,請參閱註冊器 PERI_TR_GR_TR_CTL。

JJack_0-1704286934237.png

因此,如果 TR_EDGE == 1,則 TCPWM 觸發輸入而不是原始信號,則會看到存在邊緣的短脈衝。 而且這些短脈衝中的每一個都有正邊和負邊。 這使 TCPWM 觸發輸入的邊緣靈敏度對您的目的無用。

結論:使 SHURE TR_EDGE 為 0,以便原始邊緣通過觸發多工器傳播。

也許您可以詳細說明您的觸發信號和觸發多工器的配置。

BR

傑克

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM-input-pulse-width-capture-data-abnormal/m-p/670242

0
Translation_Bot
Community Manager
Community Manager
Community Manager

Translation_Bot,
您好!
剛剛嘗試驗證了一下確實是觸發器設置為邊緣的原因,TCPWM的配置是正常的,觸發器的短脈衝讓CC0和CC1同時刷新了數據,感謝您的回复,成功解決了這個問題。不過單純使用HAL庫貌似是無法實現脈寬捕獲功能的,或者說HAL庫並不支援脈寬捕獲,因為在HAL庫中有兩個限制的地方:1.非邊緣觸發則不能配置TCPWM為邊緣採樣;2.TCPWM邊緣採樣只開放了上升沿,這樣就意味著難以實現脈寬捕獲,只能通過額外配置寄存器或者修改HAL庫函數來實現脈寬捕獲功能,最後再次感謝您提供的解決方案!


smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM%E8%BE%93%E5%85%A5%E8%84%89%E5%AE%BD%E6%8D%95%E8%8E%B7%E6%95%B0%E6%8D%AE%E5%BC%82%E5%B8%B8/m-p/670368

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 xxwy-xj,

如果您對我帖子的答案感到滿意,請將其標記為您問題 🙂 的解決方案

BR

傑克

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/TCPWM-input-pulse-width-capture-data-abnormal/m-p/671504

0