- 博客(7)
- 收藏
- 关注
原创 基于FPGA的SPI读写flash
①CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。②CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。④CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。
2024-05-21 22:04:42
2720
原创 基于FPGA的IIC读写EEPROM
主机进行数据读写时,I2C协议规定,数据传输时先发送寻址字节,即7位从机地址+0/1。写控制字节,从机接收到应答信号 -> 写数据地址,从机接收到应答信号,如果数据地址是2位的话,就继续写数据地址,从机接收到应答信号 -> 写数据,从机接收到应答信号 -> 继续写数据,直到写完全部的数据 -> 最后发停止位。控制字节,从机接收到发应答信号 -> 写数据地址,从机接收到发应答信号,如果数据地址是2位的话,就继续写数据地址,从机接收到发应答信号 -> 写数据,从机接收到发应答信号 -> 最后发停止位。
2024-05-20 17:00:41
1747
原创 URAT(通用异步收发串口)
是用来验证数据的正确性,在偶校验中,因为奇偶校验位会被相应的置 1 或 0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。异步串行通信则不需要时钟的干预,通信双方使用各种的时钟来控制数据的发送和接收。在通讯过程中,为了减少波特率的误差导致的问题,可以设置不同的停止位长度来适配。,起始位传输之后便是数据位开始,一般为8位,传输时低位(LSB) 在前,高位(MSB)在后。
2024-05-19 11:00:23
2555
1
原创 基于FPGA的WS2812
WS2812B是一种常见的RGB LED灯带,每个灯珠内部都有一个芯片控制,通过发送特定的时序数据来控 制其亮灭。其数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit;
2023-09-23 10:30:05
826
1
原创 verilog实现流水灯500ms(循环移位)
/ tb文件中,15行进行参数重定义的原因是,流水灯功能程序中DELAY_500MS的时间太长了,在modelsim进行波形仿真时,需要跑较长的时间,才能观察到波形的所有状态,所以这个时候,我们需要对计数器的参数进行重定义,格式为 (defparam 例化名.功能代码中的计数器参数 = 自己定义的新数值 )。比如,要设计一个流水灯,开始时LED0点亮,经过500ms后LED0熄灭,LEDO熄灭同时 LED1被点亮,再经过500ms后LED1熄灭,LED2点亮,依此类推。为低电平时,LED 灯熄灭。
2023-07-30 18:46:19
2470
原创 【无标题】Verilog语言实现任意奇偶分频器(奇偶均可实现)
3、两个奇数倍分频信号,两个奇数倍信号相获得到奇数分频器。注:在程序中我使用的名称较长,看起来有些繁琐。1、对端口说明和使用计数器。
2023-07-24 20:57:23
481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人