草庐IT

JDK中「SPI」原理分析

目录一、SPI简介1、概念2、入门案例2.1定义接口2.2两个实现类2.3配置文件2.4测试代码二、原理分析1、ServiceLoader结构2、iterator迭代方法3、hasNextService方法4、nextService方法三、SPI实践1、Driver驱动接口2、Slf4j日志接口四、参考源码基于【JDK1.8】一、SPI简介1、概念SPI即service-provider-interface的简写;JDK内置的服务提供加载机制,可以为服务接口加载实现类,解耦是其核心思想,也是很多框架和组件的常用手段;2、入门案例2.1定义接口就是普通的接口,在SPI的机制中称为【service

AMBA协议AXI-Lite(AXI-Lite介绍)

文章目录一、AXI_Lite简介二、AXI_Lite系统框图三、握手协议三、AXI-Lite信号表四、AXI传输机制五、AXI读写时序总结一、AXI_Lite简介AXI_Lite顾名思义即简化版的AXI协议,是对完整的AXI协议裁剪后的AXI协议;特点:突发长度永远是1,即只能单次读写,无法连续读写,常用于配置寄存器;由于删减了逻辑,其资源也消耗较少;地址映射,相较于AXI-Stream,AXI-Lite的每个数据读写都需要对应的地址;二、AXI_Lite系统框图AXI_Lite的系统框图如下:首先,AXI_Lite的读写通道分离,即AXI是一种全双工总线,在同一时刻可以同时进行读写操作;其次

基于FPGA的 SPI通信 设计(1)

引言低速通信目前搞过UART串口通信、IIC通信。其实SPI也算是中低速(有时也可以用作高速通信)串行通信的范畴,但是一直还没真正实现过,所以此系列就SPI的协议以及FPGA设计作几篇博客记录。欢迎订阅关注~SPI标准协议x1模式SPI是一种事实标准,由Motorola开发,支持全双工通信,并没有一个官方标准。已知的有的器件SPI已达到50Mbps,如果时序满足,FPGA的SPI通信速率可以达到100Mbps以上。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。设备通信框图SPI通信主设备:SCLK:SPI通信时钟,源:SPI主设备。MOSI:SPI主设备控制器数据发送,源:SP

基于FPGA的 SPI通信 设计(1)

引言低速通信目前搞过UART串口通信、IIC通信。其实SPI也算是中低速(有时也可以用作高速通信)串行通信的范畴,但是一直还没真正实现过,所以此系列就SPI的协议以及FPGA设计作几篇博客记录。欢迎订阅关注~SPI标准协议x1模式SPI是一种事实标准,由Motorola开发,支持全双工通信,并没有一个官方标准。已知的有的器件SPI已达到50Mbps,如果时序满足,FPGA的SPI通信速率可以达到100Mbps以上。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。设备通信框图SPI通信主设备:SCLK:SPI通信时钟,源:SPI主设备。MOSI:SPI主设备控制器数据发送,源:SP

【ESP32】BL0942功耗传感器SPI接口驱动

ESP32-SPI接口bl0942驱动1.bl0942电路设计2.bl0942spi驱动时序3.esp32spi接口简介4.esp32驱动bl0942测试结果4.1读寄存器4.2写寄存器5.esp32驱动bl0942代码解析5.1初始化5.2添加设备BL0942功耗模块在物联网设备中的应用比较广泛,本博文完成ESP32基于SPI接口驱动功耗BL0942模块(上海贝岭公司)的寄存器的读写,从而可以完成寄存器模式的配置,以及读取寄存器的值完成电流电压,功率等值的计算。1.bl0942电路设计2.bl0942spi驱动时序在通信模式下,先发送8bit识别字节(0x58)或(0xA8),(0x58)是

AD7616单通道SPI模式采集数据

AD7616采集电压电流,采用SPI模式通讯问题描述AD7616支持并口及SPI串行通讯,使用单片机采用单线SPI读数据时一直无法正确运行。原因分析:1.排查硬件设计,包括模式选择,复位逻辑等,没有问题。2.用FPGA与AD7616通讯正常,排除7616自身单线模式无法工作的原因。3.更换时序逻辑完全一致的其他芯片,如AD8686,一切正常。解决方案:使用逻辑分析仪抓取MCU与AD7616的通讯时序,最终确定是在SPI读取时候SDO引脚上的数据只能是0x00,其他任何数据都会造成异常,可见是AD7616自身存在的问题。下图是配置测试通道后抓取的正确时序 以下都是错误时序   

【学习笔记】AXI接口

        AXI(AdvancedeXtensibleInterface)是ARM公司推出的一种高性能、低成本、可扩展的高速总线接口。它被广泛应用于数字系统中,尤其是嵌入式系统中。AXI接口具有高度的灵活性和可扩展性,可以适应不同的应用场景和系统需求。它支持多种传输类型,包括读取、写入、缓存、锁定和原子性操作,同时还支持带宽、延迟和优先级等参数的配置。此外,AXI接口还支持多个主设备和多个从设备之间的交互操作,可以方便地构建高度集成的系统。AXI接口有三种类型:AXI4、AXI4-Lite和AXI4-Stream。其中,AXI4是最完整、最全面的版本,它支持大量的高级特性,包括数据一致性

UART、SPI、I2C、CAN、RS485、RS232、RS422通信协议总结

目录一、并行和串行二、异步和同步三、全双工和半双工四、UART协议1.UART简介2.UART接口3.UART帧格式五、I2C协议1.I2C物理层特点2.字节格式3.7-bit寻址数据传输4.SCL同步和SDA仲裁六、SPI协议1.SPI简介2.SPI数据通信的流程3.SPI时钟特点4.SPI四种MODE5.SPI优缺点七、CAN协议1.CAN简介2.CAN的闭环通信网络3.CAN的开环通信网络4.CAN总线5.CAN的位同步6.CAN的帧种类和用途八、RS485,RS422,RS232的接口协议1.RS485简介2.RS232简介2.RS422简介4.RS485,RS422,RS232的接口

STM32模拟SPI协议控制数字电位器MCP41010电阻值

STM32模拟SPI协议控制数字电位器MCP41010电阻值MCP41010是单路8位分辨率数字电位器,通过SPI接口可控制电位器阻值分配,相当于PW0端在PA0和PB0之间滑动。如下图所示:MCP41010是10K欧姆规格的数字电位器,即PA0和PB0之间的阻值恒定为10K,PW0与PA0或PW0与PB0之间的阻值互补可配。另外有相关型号不同阻值规格和集成双路的MCP系列数字电位器,其控制原理相同:这里介绍STM32模拟SPI协议控制数字电位器MCP41010的代码范例。采用STM32CUBEIDE开发平台,以STM32F401RCT6为例。STM32工程配置首先建立基本工程并设置时钟:采用

【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕

【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFTLCD128X160ST7735S✨虽然STM32CubeIDE也是基于HAL库,但是还是不能直接转KeilMDK工程,本驱动案例从GitHub下载来的,原始工程使用的是较老版本的STM32CubeIDE配置的,没法在继续在新版本上程序配置,工程只是做了初始化配置。程序并不能直接被点亮,重新配置了lcd初始化函数以及复位函数后,才点被亮屏幕,同时调整好了屏幕显示像素便宜的问题。点亮屏幕是关键,后续可以很方便移植到KeilMDK环境下开发使用。📌Github原工程地址:https://github.com/cat-bear