回覆列表
  • 1 # 跟我學微控制器

    作為一個攻城老獅子,回答一下這個問題!

    首先,ws2812的規格

    ws2812是一個集控制電路與發光電路於一體的智慧外控 LED 光源。 其外型與一個 SMD5050 側發光 LED 燈珠相同, 每個元件即為一個畫素點。 畫素點內部包含了智慧數字介面資料鎖存訊號整形放大驅動電路, 電源穩壓電路, 內建恆流電路, 高精度 RC 振盪器, 輸出驅動採用 PWM 技術, 有效保證了畫素點內光的顏色高一致性。

    ● IC控制電路與LED點光源共用一個電源。

    ● 控制電路與RGB晶片整合在一個5mm直徑的圓頭四腳直插封裝的燈珠中, 構成一個完整的外控畫素點。

    ● 內建訊號整形電路, 任何一個畫素點收到訊號後經過波形整形再輸出, 保證線路波形畸變不會累加。

    ● 內建上電覆位和掉電覆位電路。

    ● 每個畫素點的三基色顏色可實現256級亮度顯示, 完成16777216種顏色的全真色彩顯示。

    ● 掃描頻率 2kHz/s。

    ● 序列級聯介面, 能透過一根訊號線完成資料的接收與解碼。

    ● 任意兩點傳傳輸距離在不超過 2 米時無需增加任何電路。

    ● 當重新整理速率 30 幀/秒時, 級聯數不小於 2048 點。

    ● 資料傳送速度可達 800Kbps

    其次,WS2812的通訊協議

    資料協議採用單線歸零碼的通訊方式, 畫素點在上電覆位以後, DIN端接受從控制器傳輸過來的資料, 首先送過來的24bit資料被第一個畫素點提取後, 送到畫素點內部的資料鎖存器, 剩餘的資料經過內部整形處理電路整形放大後透過DO埠開始轉發輸出給下一個級聯的畫素點, 每經過一個畫素點的傳輸, 訊號減少24bit。 畫素點採用自動整形轉發技術, 使得該畫素點的級聯個數不受訊號傳送的限制, 僅僅受限訊號傳輸速度要求。

    第三、ws2812的資料傳輸第四、rtos的影響因素

    rtos的影響主要是任務排程,其實本質上是中斷的影響。也就是說你在驅動ws2812的時候,不能被rtos任務排程或者其他中斷打斷,這樣ws28121驅動時序就被打亂了。

    第五、rtos的原子操作(劃重點)

    原子(atom)本意是“不能被進一步分割的最小粒子”,而原子操作(atomic operation)意為"不可被中斷的一個或一系列操作" 。

    因此,驅動ws2812只要驅動序列週期採用rtos的原子操作,保證一個完整的驅動週期完整執行,就可以了,驅動程式碼和不使用rtos是一樣的。

    採用rtos時尤其要主要原子操作、任務排程、任務優先順序等問題,否則可能導致莫名其妙的問題出現,從程式碼上怎麼看都是正確的,但是到執行的時候總是混亂的,問題的根因就是任務排程的問題。

  • 中秋節和大豐收的關聯?
  • 地球真的在維度轉換越級提升嗎?