随笔分类 -  FPGA

摘要:这次设计一个RGB灯的控制器,该控制器具有如下特点: 每个灯的颜色可调,亮灭可控 可以设置参数来修改RGB的数目 WS2812B的数据时序如下图所示: (图片来源自网络、侵权删) 为了方便设计我把T1H和T0L的时间值设为0.8us,为了稳定将RES设置为60us。 设计的思路是,设置一个400ns 阅读全文
posted @ 2023-03-03 10:53 Lclone 阅读(1776) 评论(0) 推荐(0)
摘要:这次设计一个DDS信号发生器。该设计的特点有: 双通道的DA输出,可以调节幅度(通过旋转板子上的电位器)、频率、相位、和波形(正弦波、方波、三角波)。 拥有相位重置的功能,能够同时重置两个输出波形的相位。 本次采用的是小梅哥的ACM2108模块。该模块有两个通道的ADC和两个通道的DAC。 本次设计 阅读全文
posted @ 2023-02-19 19:04 Lclone 阅读(692) 评论(0) 推荐(0)
摘要:这次设计一个VGA、TFT显示模块,其特点如下: 行同步信号、场同步信号、数据有效信号的延迟数可调。(应用时方便与存储模块数据对齐) 分辨率可以通过调整参数来改变。 数据格式为RGR565,可简单修改位宽来修改成其他数据格式。 TFT的接口时序和VGA的时序相似,但是TFT接口比VGA多了数据有效信 阅读全文
posted @ 2023-02-07 18:36 Lclone 阅读(650) 评论(0) 推荐(0)
摘要:一、DDS工作原理 以正弦信号为例,DDS大概就是将M个点的一个周期的正弦序列存入ROM中,序列数据的地址就是正弦信号的相位; 通过修改频率控制字(Fword)来改变每隔多少个地址取ROM里的数据进行输出。频率控制字越大,从ROM取出的数据点就越少,点数越少,输出一个周期信号的时间就越短,从而改变了 阅读全文
posted @ 2023-01-31 19:17 Lclone 阅读(555) 评论(0) 推荐(0)
摘要:1、创建工程后点击IP Catalog 2、在搜索栏搜索ROM,并选择Block Memory Generator 3、在弹出来的界面中选择单口ROM 4、然后修改位宽和深度(这里根据我的需求设置为8位宽,4096深度);并把使能端口取消;勾上Core Output Register,使数据延迟一个 阅读全文
posted @ 2023-01-30 16:46 Lclone 阅读(1086) 评论(0) 推荐(0)
摘要:这次设计一个通用的多字节SPI接口模块,特点如下: 可以设置为1-128字节的SPI通信模块 可以修改CPOL、CPHA来进行不同的通信模式 可以设置输出的时钟 状态转移图和思路与多字节串口发送模块一样,这里就不给出了,具体可看该随笔。 一、模块代码 1、需要的模块 通用8位SPI接口模块 `tim 阅读全文
posted @ 2023-01-26 18:45 Lclone 阅读(1062) 评论(0) 推荐(0)
摘要:本次设计一个八位的SPI的接口模块,可以修改输出的频率,也可以通过修改参数来设置通信模式。 本模块是设定生成一个目标输出频率的二倍的计数器,然后通关计数的值来输出响应的信号,从而进行SPI通信。 本模块既可以发送数据也可以接收数据,给Send_en信号使开始发送数据,在接收到8位数据后会生成Read 阅读全文
posted @ 2023-01-23 20:31 Lclone 阅读(1340) 评论(0) 推荐(0)
摘要:基于状态机的按键消抖模块本次案例是按着小梅哥的思路来写的,部分截图和文字来自其教学视频。 这次设计的是一个能把按键信号输入转换为一个按键信号下降沿和上升沿检测输出。 1、状态机的设定 空闲态:等待按键信号的下降沿,若出现则进入下一个状态。 按下滤波状态:进行20ms的计时,若在20ms的计时内出现的上升沿则表示按键还在抖动 阅读全文
posted @ 2023-01-15 00:18 Lclone 阅读(348) 评论(0) 推荐(0)
摘要:这次设计一个可以接收多字节(通过修改例化时的位宽实现)的串口接收模块。 当接收到9个字节的数据,但是我们只需要8个字节的数据时候,我们需要的是前八位的数据还是后八位的数据我们无法确定。 所以我们需要设定一种传输协议,这种协议我们可以自定义规则。我们就设定前缀为8'h55+8'hA5,后缀为8'hF0 阅读全文
posted @ 2022-12-27 17:37 Lclone 阅读(831) 评论(0) 推荐(0)
摘要:1、设计想法 原理与之前的串口发送模块一样,1位的起始位和8位的数据位再加上1位的停止位。唯一不同的是在接收的时候要考虑到有干扰的情况下,为了避免干扰,我们对每位数据进行多次采样,按出现概率大的值为该数据位的值。 如果按照通常想法在每bits位中间取值的话,bit3位出现图中的干扰很有可能会读出错误 阅读全文
posted @ 2022-12-17 01:04 Lclone 阅读(754) 评论(0) 推荐(0)
摘要:这次设计一个多字节(8-256位)且波特率可更改(通过修改例化模块的参数)的串口发送模块。 1、状态机的设定 状态机的设定有空闲、发送、和数据移位三个状态,其中空闲状态为等待多字节发送的信号; 发送状态为给8位串口发送模块传输待发送的8位数据,同时判断是否发送完数据回到空闲状态; 数据移位状态为等到 阅读全文
posted @ 2022-12-13 22:50 Lclone 阅读(759) 评论(1) 推荐(0)
摘要:1、串口原理 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART) 是一种异步收发传输器,其在数据发送时将并行数据转换成串行数据来传输, 在数据接收时将接收到的串行数据转换成并行数据,可以实现全双工传输和接收。 它包括了 RS232、 阅读全文
posted @ 2022-12-10 21:47 Lclone 阅读(1511) 评论(1) 推荐(0)