• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: SAME54 - 請教測量外部輸入的方波頻率
#8
資深會員
資深會員


查看用戶資訊
long long time ago, 我用 pic 一個帶lcd 的簡易demo board ,做過一個 測速器

單純用16f pic mcu,pwm輸出給 ir led, 再由另一隻pin 接ir 接收器,

從反射回來的波形,可以精確量測0~99999 rpm。

(實測過 20000rpm,在4000rpm的5葉片上,都貼上反射鋁箔,反射的頻率就會變成5倍,利用這樣的方式,模擬出 20000rpm的機器,驗證程式)

當時主要是要做 led 恒溫控制,要監控/測試 散熱風扇的轉速變化/性能。

市售的測速器無法接電腦記錄,只好自己動手做。



以6000 rpm為例, 相當於 1秒 100次,=10ms 一個pulse

以60000 rpm為例,相當於1秒 1000次,=1ms 1個pulse

16次= 16ms 處理一次。不是什麼大問題

但是 240rpm, =1秒4次 一次250ms

如果抓 16次,就要 4sec。這時就要調整 capture 的數量。




實作羅輯並不難

time0_isr{
定時觸發 uart 將資料丟出。
}


32768 osc 輸入 timer1
time1_isr{
timer1 中斷,表示2秒內沒有軟體重置計數器 =>轉速為0

capture prescale =1, 2秒=>理論可抓到 >30rpm
}

capture_isr{

reset timer1 (timer1=0)( 這要以asm 寫,才能夠精確計算重置timer1的誤差)

跟據 capture prescale 調整ccpr的值,然後輸出顯示。 (用左移,計算出一個 pulse = 多少 timer1)

更新 time0_uart 的資料 (利用 定時器,定時輸出 轉速值)


跟據 capture的時間,調整 capture prescale
if bit7=1 or bit6=1 capture prescale =1
else if bit5=1 capture prescale =4
else capture prescale =16

}

發表於: 2021/5/27 14:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#7
資深會員
資深會員


查看用戶資訊
long long time ago, 我用 pic 一個帶lcd 的簡易demo board ,做過一個 測速器

單純用16f pic mcu,pwm輸出給 ir led, 再由另一隻pin 接ir 接收器,

從反射回來的波形,可以精確量測0~99999 rpm。

(實測過 20000rpm,在4000rpm的5葉片上,都貼上反射鋁箔,反射的頻率就會變成5倍,利用這樣的方式,模擬出 20000rpm的機器,驗證程式)

當時主要是要做 led 恒溫控制,要監控/測試 散熱風扇的轉速變化/性能。

市售的測速器無法接電腦記錄,只好自己動手做。



以6000 rpm為例, 相當於 1秒 100次,=10ms 一個pulse

以60000 rpm為例,相當於1秒 1000次,=1ms 1個pulse

16次= 16ms 處理一次。不是什麼大問題

但是 240rpm, =1秒4次 一次250ms

如果抓 16次,就要 4sec。這時就要調整 capture 的數量。




實作羅輯並不難

time0_isr{
定時觸發 uart 將資料丟出。
}


32768 osc 輸入 timer1
time1_isr{
timer1 中斷,表示2秒內沒有軟體重置計數器 =>轉速為0

capture prescale =1, 2秒=>理論可抓到 >30rpm
}

capture_isr{

reset timer1 (timer1=0)( 這要以asm 寫,才能夠精確計算重置timer1的誤差)

跟據 capture prescale 調整ccpr的值,然後輸出顯示。 (用左移,計算出一個 pulse = 多少 timer1)

更新 time0_uart 的資料 (利用 定時器,定時輸出 轉速值)


跟據 capture的時間,調整 capture prescale
if bit7=1 or bit6=1 capture prescale =1
else if bit5=1 capture prescale =4
else capture prescale =16

}

發表於: 2021/5/27 14:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#6
資深會員
資深會員


查看用戶資訊
感謝回覆

我在發問時提到的"Timer的Capture範例",就是您說的
\csp_apps_sam_d5x_e5x\apps\tc\tc_capture_mode

從說明檔:/csp_apps_sam_d5x_e5x/docs/apps/tc/tc_capture_mode/readme.html

這個範例用了兩個Timer,一個用來產生800Hz的輸入(compare),來接到另一個capture Timer

我把Timer產生的800Hz換成信號產生器,振幅調成與timer輸出一樣(約3.3V),但量起來有誤差,輸入800Hz只量到795Hz,且頻率上升後誤差還會變大

再來是capture的用法須先註冊callback
void capture_handlerTC_CAPTURE_STATUS statusuintptr_t context)
{
    if ((
status  TC_CAPTURE_STATUS_CAPTURE0_READY) == TC_CAPTURE_STATUS_CAPTURE0_READY)
    {
        
tc_buffer_ready true;
    }
}


如果外面沒有pulse輸入時,它就不會被觸發,主程式中偵測的地方就會停下來,我希望這個量測是連續的,即沒有變化時應量到值為0Hz

所以看起來SAM系列並沒有辦法設定Timer的clock source來做counter?
(就是說Ryang提到的External Clock,其實並沒有這個功能?)

(在plib看到一個FREQM,很高興開起來,結果是用來量internal RC Oscillator的頻率...,有什麼應用會須要用到這個?)

發表於: 2021/5/25 14:42
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#5
管理員
管理員


查看用戶資訊
SAM系列使用TC 或是 TCC Module來進行Capture
SAME54 有 Harmony TC Capture的範例
\csp_apps_sam_d5x_e5x\apps\tc\tc_capture_mode
這個範例會用到 TC, EXINT, Event System三個Module

主要是用外部中斷腳EXINT, 監測的輸入波型的Rise/Failing edge,
由內部觸發Event System, 來HW Trigger我們的TC or TCC進行count的計數,
因此輸入波型的頻率與TC/TCC的參考頻率之間要有適當的比率,
如果要數慢的頻率時, 則須注意16-bit TC/TCC是否會溢位, 需要降低頻率來對應,
因為使用Event System, 過程中沒有Core軟體介入計算, 計數誤差應該不大.

目前沒有提供使用TCC Capture的範例, 但是用法差不多

發表於: 2021/5/25 14:08
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#4
版主
版主


查看用戶資訊
其實 MCU 的基本周邊功能大同小異,SAME54 的 Timer/Count 是比較複雜了點。建議使用 2KHz 作為 External Clock 的輸入給 Count 來計數。

當然你需要一個 0.5Sec 的 Timer 中斷當作計時的基底,每當 0.5Sec 中斷時就先抓取 2KHz 計數值出來,立即將計數值歸零並設定一個旗號交給主程式計算頻率即可。

至於如何設定 TC 使用外部的 Clock (2KHz) 做為輸入源,我會找同事提供樹定資料的。

發表於: 2021/5/25 13:19
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#3
資深會員
資深會員


查看用戶資訊
呃,感謝回應啦

抓pulse我以前在PIC18F67K22上面做過啦,以前就是在INT遞增去數pulse,然後每秒拿出來看數了幾次

現在是因為程式裡要做的事比較多,想說看看是不是MCU自己有提供什麼比較方便的功能可以做到
(理論上要數的頻率也不高,應該也是用INT自己遞增一下counter就行了)

我第一次用Atmel的chip做產品,以前都是用PIC的,兩個功能不太一樣,想說看有沒有人知道MCU有什麼內建的功能可以做這個

發表於: 2021/5/25 10:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#2
資深會員
資深會員


查看用戶資訊
頻率 = plus / △t

一般人的羅輯是 一秒幾次

機器的運作則是 χ個plus 要幾秒。 χ 和輸入的頻率有關

輸入的頻率慢,χ 大 會導致反應太慢 ,

χ 小,在頻率快的情況下,又會一直計算。


你的羅輯一樣是 一秒幾次

發表於: 2021/5/25 9:44
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


SAME54 - 請教測量外部輸入的方波頻率
#1
資深會員
資深會員


查看用戶資訊
我想從外部輸入方波,頻率大概在2K Hz以下

大概500ms取一次頻率值

以前使用PIC18時Timer中有像是T0CKI,參考
(或是直接找可當INT的pin來輸入,再用Timer定時取值)

但在SAME54的Timer中沒有看到類似的腳,參考

請問SAME54有類似的功能嗎?我試著用Timer的Capture範例接信號產生器,值有些誤差,輸入800Hz時值會差到5Hz左右,且沒有信號時因不會觸發中斷,就沒辦法持續測量

請問在SAME54上要量pulse頻率一般是用什麼來做?

發表於: 2021/5/25 8:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------