摘要:
本文介绍了米联客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)