會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



(1) 2 »


關於Curiosity pic32mx470 Timer 問題
新會員
註冊日期:
2015/12/28 16:20
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 161
離線
各位好,小弟目前在使用的是pic32mx470開發板,想控制 WS2812B 的 RGB燈色變化和一些特效,根據WS2812B Datasheet了解要如何控制之後,打算用PWM方式來做,遇到的問題如下:

1.根據MCU Datasheet 寫道 TMRy = PRy , TMRy resets , 個人解讀是送出一個PWM訊號的high、low 是由 TMRy 計數至與 PRy相等產生的。
假設 PRy = 60 , 意旨 TMRy 計數至 60 時便是產生一個PWM的訊號送出,小弟想精確控制送出的PWM訊號個數,就要能精準抓到每次計數到60的瞬間,可是程式執行上,我用runtime watch 去看暫存器的狀態,發現每執行一行程式,TMRy計數的累加不是+1+1而是更快,所以在判斷式無法準確取得TMRy = 60 的瞬間,請教各路高手有無解法?

使用 timer 中斷嗎? 或是 使用 OC 的中斷~

感謝指教。

6月25日 19:19:54
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74619
離線
WS2812B 這顆三原色的 LED 是採高速單腳串入串出的控制方式。
用 PIC32 來做是可以做到的蛋是比較辛苦一點。
之前我是用 PIC16F1619 + CIP 來完成 WS2812B 的控制的。

可以先參考一下 "CIP102v2.00 進階獨立式週邊(Adv. CIP)的應用 New!" 教材裡的 Lab 2 - RGB 三色 LED 使用 CLC 的串列控制

教材裡有詳細的控制說明與範例。

http://www.microchip.com.tw/Data_CD/

6月26日 10:27:08
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74619
離線
基本上傳輸一個位元時間需 1.2uS,且一次以 8-bit 為一組,一次要傳送三個 Bytes 出去。所以考慮用 SPI 的傳輸模式。因為 SPI 傳輸速度可以達 10MHz 大大符合我們 800KHz 的傳輸速度。所以 SPI 的設定其 CLK 為 800KHz,其 CLK 的 Hi 週期為 0.75uS,Low 週期也為 0.75uS。
至於最小的脈波 0.35uS 考慮用 PWM 固定來產生,此脈波主要是為了資料 位元為 0 時的調變。所以設定 PWM Hi Duty 為 0.35uS,週期為 0.75uS,並與 SCK 的上升緣同步。
到現在基本波都有了,在過來就要使用 CLC 的組合邏輯功能透過積之和的運算(先 AND 在 OR 運算)基本少就可以產生資料的編碼。
基本波的組合,將 SCK 與 SDO 做 AND 運算後的得到位元 1 的編碼。將 SCK, /SDO , PWM 三個訊號做 AND 運算後的得到位元 0 的編碼。後將位元 1 與位元 0 的編碼輸出再做 OR 運算即可獲得正確的編碼輸出。

附加檔案:



jpg  擷取.JPG (53.87 KB)
16_5b31a5fb38257.jpg 895X385 px

6月26日 10:33:31
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
新會員
註冊日期:
2015/12/28 16:20
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 161
離線
Hi Ryang :

關於提到的CLC串列控制這個部分我有參考過,因為基於其他因素考量,所以要用此pic32mx470做到控制的功能,還請高手們給予指教與建議方向~~

6月26日 15:23:09
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74619
離線
依據 WS2812 資料手冊所示,其傳輸的速率不可以低於 400kps ,建議使 用800Kbps 的速度,也就是傳輸 1 bit 的時間只有 1.25uS。
又在位元為 0 的編碼,最短的需求 Hi 週期時間為 0.35uS。所以用一般的 I/O 腳是很難模擬出來的。

建議可以使用 SPI 以 800KHz 的速度送出資料。0.35uS 的脈衝用 PWM 方式來產生。這兩個訊號自腳位輸出後再用邏輯閘電路來產生合併的串列控制訊號。

要不然使可以使用一顆 PIC16F161x 的設計專門產生 WS2118B 的控制訊號去控制 LED。主 CPU 則用 UART 方式重送資料給 PIC16F161x 來顯示。

6月27日 11:01:59
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
新會員
註冊日期:
2015/12/28 16:20
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 161
離線
Hi Ryang :

如果不考慮用邏輯閘電路合併訊號,請問還有其他解套方法嗎??

感謝指教。

6月29日 14:21:36
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74619
離線
串列訊號最短周期為 0.35uS,這訊號 I/O 腳的轉態很難做到。

6月29日 15:02:11
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
新會員
註冊日期:
2015/12/28 16:20
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 161
離線
Hi Ryang

我目前爬文參考過後,如果使用 DMA 的方式有可能解套PWM訊號調變的週期變化嗎 ?

感謝。

7月03日 13:51:11
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74619
離線
請問一下 DMA 要傳給誰來做這 0.35uS 的串列訊號?

7月03日 16:28:02
轉換PDF檔 列印


Re: 關於Curiosity pic32mx470 Timer 問題
新會員
註冊日期:
2015/12/28 16:20
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 161
離線
Hi Ryang :

0.35uS串列訊號,由調變 PWM 的 Duty cycle產生,一開始本來打算由 MCU 去做0.9uS 及 0.35uS 調變輸出,但是我發現這樣MCU 與 Timer沒辦法同步,Timer在程式執行時計數的速度太快,無法準確取得TMR2 = PR2的瞬間,這個問題我目前沒有確切答案,不過我認為是因為每一個PWM訊號輸出間隔的時間太短,對於MCU來說會吃不消,所以用DMA的方式,不經由MCU,直接改SRF的值,達到調變。

不知這樣的假設有沒有可行性?

感謝。

7月03日 17:39:28
轉換PDF檔 列印



(1) 2 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project