摘要:
利用I2C总线控制器对RTC时钟芯片DS1337进行读写访问,以验证设计的I2C控制器的可靠性。这节课基于已编写的I2C控制器应用展开,侧重于实际应用,不再提供RTL级别的仿真结果,而是直接通过控制器访问DS1337芯片。在进行本实验之前,先确保已完成前面的实验,包括掌握了相关知识。这段内容强调了实践应用的重要性,为读者提供了一个轻松学习的机会,并为进一步探索I2C总线控制器的功能和性能打下基础。文章的重点在于实际操作和验证,让学习者通过与DS1337芯片的互动更好地理解和运用所学的知识。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-20 读写I2C接口的RTC时钟芯片](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729170105672-345604457.png)
摘要:
本文介绍了米联客I2C Master控制器的实现原理和功能。文章开始强调使用该控制器实现后续涉及的I2C总线相关内容,同时指出本实验使用该控制器对EEPROM进行访问。在这之前,读者需要完成一些前置实验,包括modelsim的安装、TD库的编译,以及通过do文件启动仿真。EEPROM作为一种带电可擦可编程只读存储器,与传统ROM不同之处在于它可以多次擦除和编程,并且在掉电后数据不会丢失。文章还提及了EEPROM的发展过程,从最初的ROM发展到目前的EEPROM,突出了其特殊的存储特性和应用前景。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-19 读写I2C接口EEPROM实验](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729165635389-975703451.png)
摘要:
本文讨论了I2C Master控制器的系统框图和关键信号,包括I2C操作请求、总线忙指示、时钟分频器、发送和接收移位模块等。通过SCL时钟和I2C状态机控制SCL和SDA的输出逻辑和时序。文章还介绍了状态机设计和总线错误指示模块。总的来说,文章主要涵盖了I2C通信协议的工作原理和关键部件的功能。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-18 I2C MASTER控制器驱动设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729165040801-1066567517.png)
摘要:
I2C总线是一种广泛应用的通信接口,可用于配置寄存器、EEPROM等操作,同时支持连接多种外设。其特点包括低速器件访问时节省IO资源、简便的标准总线接口以及OC开路、支持双向传输的特性。I2C总线由SDA(串行数据线)、SCL(串行时钟线)和上拉电阻组成,物理连接简单。在I2C总线上可以挂载多个主设备和从设备,支持多主控,任何能进行发送和接收的设备都可以成为主总线。每个主控在任何时间点上只能有一个,控制信号传输和时钟频率。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-17 I2C通信协议原理](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729164124801-220230279.png)
摘要:
本文对SPI收发驱动进行环路测试,通过仿真及在线仿真验证SPI的收发应用。实验在前面课程的基础上进行,要求完成TD软件安装、modelsim安装和TD库编译,掌握modelsim通过do文件启动仿真。实验目标包括实现UART串口发送控制器设计、在主程序中调用串口发送控制器发送字符“HELLO FPGA”、编译并使用chipwatcher观察芯片内部信号。SPI收发环路简介:主机通过MOSI数据线发送数据,从机通过MISO返回数据,收发同时进行,数据按最高位先移出,传输可持续任意时钟周期 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-16 SPI LOOP环路实验](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729161052519-1697635773.png)
摘要:
SPI(串行外围设备接口)通信协议是一种广泛应用于各种设备的高速、全双工、同步通信总线。其驱动程序设计围绕SPI_CLK和SPI_RX接收数据总线的时序展开,支持四种工作模式:CPHA=0 CPOL=0、CPHA=1 CPOL=0、CPHA=0 CPOL=1和CPHA=1 CPOL=1。其中,CPHA决定接收器的数据采样时钟位置,CPOL则设置SPI_CLK的初始电平。SPI协议在硬件设计中非常重要,特别是在需要高速和可靠性的应用中,例如FPGA的配置和外围设备的通信。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-15 SPI接收程序设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729160228651-1172903138.png)
摘要:
SPI的驱动程序设计围绕SPI_MOSI和SPI_SCLK展开,支持四种情况:CPHA=0 CPOL=0、CPHA=1 CPOL=0、CPHA=0 CPOL=1和CPHA=1 CPOL=1。CPHA控制接收器的采样时钟位置,CPOL设置SCLK的初始电平。发送驱动程序包括时钟分频器、数据控制器、并串移位模块、CPOL和CPHA控制。系统时钟通常较高,SCLK需要通过分频器产生。当spi_en拉高启动传输时,clk_div开始计数并在计满后清0,SCLK模块支持CPOL=0空闲状态输出低电平。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-14 SPI MASET发送程序设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729155612878-1969100634.png)
摘要:
SPI(串行外围设备接口)通信协议是一种高速、全双工、同步通信总线。它通过四根管脚实现控制和数据传输,广泛应用于EEPROM、Flash、RTC、ADC、DSP等设备,是一种重要的低速通讯协议。SPI协议具有高速、全双工、同步、主从式等特点,接口速度最高可达上百兆,因此不仅适用于低速设备,也能用于高速串行外设通信。例如,FPGA的配置FLASH可以支持100Mbps以上。SPI Master(主设备)通过发送时钟信号(SCLK)同步数据传输,决定通信速率。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-13 SPI通信协议原理](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729154926738-1309179775.png)
摘要:
本文介绍了通过 FPGA 实现 UART 串口通信的双向数据传输。前几节课中,我们成功测试并实现了 FPGA 向 PC 主机发送“HELLO FPGA”信息的功能,PC 主机显示接收成功。然而,目前的串口接收程序仅通过模拟仿真进行验证,尚未在实际硬件上测试。本文进一步提出了将 UART 接收程序和发送程序连接起来的方案,使得 FPGA 能够接收从 PC 端通过 USB 发送的数据,并将接收到的数据再通过发送程序返回给 PC 机,实现双向通信的完整功能。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-12 串口程序收发环路设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729150723917-741716389.png)
摘要:
本文介绍了 UART 通信的原理及其在 FPGA 上的实现方法。UART(通用异步收发传输器)是一种广泛应用的串行异步通信方式,常用的接口标准包括 RS-232、RS-422 和 RS-485。文章详细描述了 UART 串口发送控制器的设计过程,并通过 FPGA 实现了发送字符“HELLO FPGA”的功能。实验步骤包括完成 ModelSim 软件的安装及 TD 库的编译,掌握仿真环境的设置和使用 do 文件启动仿真。随后,通过 ModelSim 进行仿真验证,并将编译后的程序固化到 FPGA 上进行验证 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-11 UART串口接收驱动设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729150242848-645952197.png)
摘要:
本文介绍了 UART 通信的原理及其在 FPGA 上的实现方法。UART(通用异步收发传输器)是一种广泛应用的串行通信方式,本文详细讲解了如何设计 UART 串口发送控制器,并通过 FPGA 实现字符“HELLO FPGA”的发送。实现过程中涉及波特率发生器、发送使能模块和移位模块等关键组件。实验前需确保完成 ModelSim 软件安装及 TD 库的编译,并掌握仿真环境的设置和仿真启动方法。最终,通过 ModelSim 进行仿真验证,并将编译后的程序固化到 FPGA 上进行实际验证。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-10 UART串口发送驱动设计](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729144657317-821497490.png)
摘要:
UART(通用异步收发传输器):用于串行数据的发送和接收,适用于短距离、低速率的通信。RS-232:规定了电气特性和物理特性,广泛应用于传统计算机和外设间的通信。
RS-422:改进了 RS-232,支持单机发送、多机接收的平衡传输,适用于更长距离和更高速度的通信。
RS-485:采用半双工工作方式,支持多点数据通信,具有较强的抗干扰能力,适用于复杂网络结构。此外,本文还讨论了在高速数据传输中使用锁相环(PLL)进行时钟恢复以补偿延迟,确保数据传输的稳定性和可靠性。总结了各种通信协议的优缺点及其适用场景, 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-09 UART串行通信协议介绍](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729145000984-2094692930.png)
摘要:
本文介绍了如何使用 Verilog 代码设计分频器电路。分频器的工作原理是通过计数输入时钟的上升沿或下降沿,根据预设的分频数控制输出信号的高低电平翻转,从而将高频输入信号转换为低频输出信号。根据分频比例(晶振频率/分频后频率)的不同,分频器分为偶数分频器和奇数分频器。本文详细演示了这两种分频器的设计方法。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-08 FPGA多路分频器实验](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729144530300-73772038.png)
摘要:
本文探讨了按键消抖的原理与实现方法。按键是电子设计中常见的元器件,但在按键闭合或松开的瞬间会产生一连串的抖动,这种抖动会影响系统的稳定性和响应灵敏度。因此,必须进行消抖处理。文章详细介绍了机械按键的构造与原理,并设计了具体的按键消抖方案。在进行本实验前,建议读者确保已经完成前面的实验,并掌握以下能力:完成 TD 软件安装。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-07 FPGA按键消抖实验](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729144435142-2069549391.png)
摘要:
本文介绍了如何在 FPGA 控制主板上实现呼吸灯,通过 PWM(脉宽调制)技术调节呼吸灯的亮度,模拟呼吸灯的2秒亮灭周期。文章提供了一个可实操的小程序,读者可以自行编写代码并通过仿真测试代码的正确性,最终将代码下载到开发板上观察实际运行效果。在开始实验前,建议确保已完成前置实验,特别是掌握 ModelSim 的使用。这些基础知识和技能将帮助读者更好地理解和实现PWM技术在不同领域的应用,包括测量、通信和功率控制等。 阅读全文
![[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-06 PWM呼吸灯实验](https://img2024.cnblogs.com/blog/2504661/202407/2504661-20240729141914481-2040030258.png)