基于FPGA的RGB灯WS2812B的控制器设计

打印 上一主题 下一主题

主题 546|帖子 546|积分 1638

这次设计一个RGB灯的控制器,该控制器具有如下特点:

  • 每个灯的颜色可调,亮灭可控
  • 可以设置参数来修改RGB的数目
     
    WS2812B的数据时序如下图所示:
     

     

     

    (图片来源自网络、侵权删)
     
    为了方便设计我把T1H和T0L的时间值设为0.8us,为了稳定将RES设置为60us。
     
    设计的思路是,设置一个400ns的计时器,然后再设置一个计400ns次数的计时器(每计三次清零),然后1码就是前两个400us为高电平,第三个400us为低电平;0码也是同理。
一、设计的代码

1、单像素控制模块

[code]`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: GDUT// Engineer: Lclone// // Create Date: 2023/03/01 12:04:28// Design Name: // Module Name: WS2812B_controller// Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //////////////////////////////////////////////////////////////////////////////////module WS2812B_controller(        input        Clk,          //时钟信号        input        Rst_n,        //复位信号        input [23:0] Disp_Data,    //像素点的数据        input        Data_valid,   //数据有效信号        output reg  Send_done,    //单像素发送完成信号        output reg   Data_out     //数据输出    );        parameter CNT_400NS = 20;       reg [4:0] cnt_400ns;          //40us计数器        always @(posedge Clk or posedge Rst_n) begin        if(Rst_n == 0)            cnt_400ns

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

络腮胡菲菲

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表