使用 NXP LPC55S06 驅動 Awinic AW20198 點亮彩虹燈的基本程式範例

  • AW20198 簡介
           1.    AW20198 是一款具 18x11 矩陣的 RGB LED 驅動器,可透過 SPI 編程。
           2.    SPI 設定,SCLK 應為 1 MHz ~ 10 MHz,傳輸數據為 8-bit。
           3.    SPI 協議為 1 個 command byte + 1 byte 暫存器位址 + 1 byte 傳輸資料。
           4.    Command byte 由 4-bit 的 chip id 加上 3-bit 的 page id 再加 1-bit 的 Read/Write 組成。
           5.    AW 20198 SPI 寫入協議。
           6.    AW 20198 SPI 讀取協議。
           7.    LED 位置圖。
           8.    LED 亮燈控制:GCC 全局電流控制,PWM 亮度控制,SL 恆流控制,PAT 模式控制。
                 
  • 設置 LPC55S06 SPI 功能
                 

          1.    
透過 sysclk() 函式將 system clock 設為 96 MHz。並由 clkout () 函式輸出 system clock 確認 mcu 工作頻率。
          2.    透過 gpio_init() 函式和 gpio_set() 函式來啟動 IOCON 的 clock,並設置 SPI 的 4 個通道腳位。
          3.    Ctimer_delay_1ms(2) 函式做 2 ms 的延遲,等待 AW20198 power ready。
          4.    spi_master_init() 函式將 Flexcomm 啟動並配置成 SPI,且設置 SPI 為 master mode0 的功能初始化。

  • 設置 AW20198 初始化
                 

          1.    對 Page0 的 0x2F 暫存器寫入 0xAE 將 AW20198 重啟。
          2.    設置 Page0 的 0x00 暫存器,將 AW20198 的 SW1~SW11 和 chip 激活。
          3.    設置 Page0 的 0x01 暫存器,將 AW20198 的 GCC 開到最大。

  • 讀取 AW20198 暫存器資料,確保 SPI 溝通正常
                 

          1.    讀取 Page0 的 0x00 暫存器資料,確認值有被正確寫入。
          2.    讀取 Page0 的 0x01 暫存器資料,確認值有被正確寫入。
                 
  • 設置 Page 2 的 SL0~SL197 暫存器的 constant current
                 

                 
  • 彩虹呼吸燈設為 10 個燈號
          1.    紅→橙→黃→綠→青→淺藍→藍→淺紫→紫→紅。
          2.    依照 10 個燈號依序點亮整個縱排 LED 燈。
          3.    參數 x 為縱排 LED 燈號起始位置,給予 Page 1, PWM0~PWM197 的暫存器位址。
          4.    參數 y 為 PWM 控制 LED 亮度,給予 Page 1, PWM0~PWM197 暫存器的資料。

                 
                 

  • 點亮 LED 矩陣的彩虹呼吸燈
          1.    將第一縱排亮紅燈,每當 PWM 的 LED 亮度 +1 則延遲 8 ms,呈現呼吸感。
                 

          2.    將第一縱排亮橙燈,第二排亮紅燈。
                 

          3.    將第一縱排亮黃燈,第二排亮橙燈,第三排亮紅燈。
                 

          4.    以此類推,到第 9 步驟時,第 9 縱排至第 1 縱排的燈號將會是:紅→橙→黃→綠→青→淺藍→藍→淺紫→紫。

                 

          5.    第 10 步驟,第 1 縱排將會變為紅色重新一個燈號循環。

                 

          6.   第 11 步驟,第 2 縱排將會變為紅色重新一個燈號循環,第 1 縱排則變為橙色。以此類推,重複循環。

                 
                 
                 

  • 實作圖片
           

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論