草庐IT

ZedBoard+AD9361_FPGA的PL端纯逻辑(verilog)配置控制9361(三)_建立完整工程,编写配置寄存器的状态机文件、SPI文件、9361收发接口文件并测试效果

建立工程,主要文件有4个,配置函数,接口文件、寄存器读写状态机文件,SPI文件。工程文件下载:百度网盘 提取码:6yzp一、编写状态机文件根据前面生成的ad9361_lut.v文件,分成写状态、读状态、延时状态,反复循环,直到最后配置完所有寄存器之后使状态机处在一个固定状态,并给出配置结束的标志信号。时钟建议20MHz和SPI读写时钟一致。 二、编写SPI读写文件根据状态机状态,选择对相应寄存器的读写操作。根据状态机状态给出读写指示,并给出相应的寄存器地址和所需写入或读取的值。 三、接口文件基本参考ADI官方的接口文件,稍作修改,可以直接设置adc_r1_mode和dac_r1_mode配置单

FPGA程序烧录方式:JTAG调试与SPI固化

一、JTAG调试烧录用JTAG方式烧写后,已经在FPGA中没有存储了,相当于这时候已经对FPGA做了编程,断电后FPGA需要重新烧写才能用。按照严格来讲那个不是程序,可以说是在FPGA上直接编程,可以说存在整个芯片中。在用JTAG烧录的时候下载进去的是二进制文件bit类型的,而在vivado中bit文件可能没有正确格式化,导致无法在其他存储器上去实现固化过程中,从而出现断电丢失问题。这可能导致芯片无法正确识别和读取bin文件的内容,从而无法正常启动。所以一般来讲使用JTAG进行调试的需要一直通电保证FPGA一致处于工作状态,才能保留程序在其中。二、SPI固化这种固化一般是固化到flash当中,

详解UART、I2C、SPI常用通信协议(全是细节)

前言    UART、I2C和SPI是我们在嵌入式开发中比较常见的通信协议了,没有最好的通信协议,每个通信协议都有自己的优缺点。如果想要通信速度快,SPI将是理想的选择;如果用户想要连接多个设备而不是过于复杂,I2C将是理想的选择,因为它最多可以连接127个设备并且易于管理;UART的通信速度相对较慢,通信也比较简单,单对单。        uart接口比较常用于主设备与蓝牙、wifi模块的通信、打印调试等。    i2c接口多用于和传感器的通信,例如触摸屏、计步器、温度传感器、EEPROM等。    spi接口多用于对速率要求高一些的场景,如spiflash、spilcd屏、SD卡等。1.U

STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI

SPI相关基础知识SPI基本概念请自行百度,参考:百度百科SPI简介.我们讲重点和要注意的地方。master模式下要关注的地方接线一一对应也就是说主控的MISO,MOSI,SCLK,[CSn]分别和设备的MISO,MOSI,SCLK,[CSn]一一对应相连,不交叉,不交叉,不交叉…(重要的事情说三遍)。从设备的时序图这是无线模块CC2500的SPI接口时序,这里可以看到,从设备要求,1、时钟空闲时为低电平;2、数据在时钟下降沿跳变,上升沿稳定,第1个沿为数据采样点;3、高位先发送;4、数据长度8位;这是AD7192的SPI接口时序,这里可以看到从设备要求,1、时钟空闲时为高电平;2、数据在时钟

PCAP01介绍和STM32模拟SPI驱动

一.芯片介绍Pcap01是德国acam公司设计的一款革命性的电容测量芯片。该芯片内部有DSP计算单元,可以直接将电容元件接到Pcap01芯片,然后芯片计算出容值大小,通过SPI总线将电容容值数据传送给CPU,电容测量完全数字化。二,测量原理PCAP测量的原理是基于电容的充放电时间比。PCAP01有8个通道,每一个通道都可以读取相对应的电容充放电时间比,当我们把PC0通道的电容值确定后,再通过这个比值,就可以计算出相对应的电容。三.硬件设计下图是PCAP01芯片的引脚定义PC0到PC7为8个测量通道,接电容。此外PCAP01还有测量温度的功能,不过笔者暂时没有用到。电容的理解方式有两种,一种为漂

在学OpenHarmonyos的SPI遇到的问题和总结以及H3861读取W25Q64存储器的例程代码

最近学了stm32,转到学harmonyos开发板,网上关于H3861的资料也很少,分享一下自己学习的案例。首先,我下载的源码是默认没有开启SPI的,编译的时候会报错,类似于这样的错误,要使用SPI功能的话还需要在这个文件当中开启SPI的功能,如果要开启其他的功能也是类似的方法,在这个文件随便哪个地方输入这行代码CONFIG_SPI_SUPPORT=y要开启其他的功能就把中间的SPI更换一下就好。和SPI相关的函数和SPI相关的函数都在hi_spi.h这个头文件里面,调用的时候参数类型要对应上就可以正常使用,hi_spi_slave_write()和hi_spi_slave_read()是在S

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPIflash制作虚拟U盘📌参考文章:https://xiaozhuanlan.com/topic/6058234791🎞实现效果演示:🔖上图中的读到的FLASH_ID所指的是针对不同容量,所对应的ID。//W25X/Q不同容量对应不同ID关系W25Q80ID0XEF13W25Q16ID0XEF14W25Q32ID0XEF15W25Q64ID0XEF16W25Q128ID0XEF17W25Q256ID0XEF18🔖在电脑端,支持对虚拟出来的存储器进行读写操作。✨如果设计成一块PCB,可以制作成一个微小容量的移动U盘。🌿基于STM32F103,HAL库生成的代码,

SPI通讯的数据交互及图片显示

这个项目耗时三个月,前两个月攻克技术难关,后一个月进行功能联调,也是我很长时间没有更新的原因。一个项目从初期的evt到最终的pvt,离不开大家的合作。从前期的prd核对到最终的项目交付,耗费了我大量心血,期间遇到的问题不计其数,所以说一个好的项目能极大的锻炼开发人员各方面的能力,包括抗压能力、技术栈、沟通能力。通过这次项目我觉得开发人员在接手一个项目时,尤其是项目负责人时,最重要的不是马上去编码,而是规划,只有前期足够的文档支持,才能事倍功半。尤其是PRD需求的评估。涉及到技术方面其中要着重考虑:代码架构、涉及到的技术栈、通讯的稳定性和快速性、通讯协议的制定和容错处理等,把一个大的项目分成若干

51单片机学习笔记8 -- OLED显示(SPI)

0.96寸OLED显示1.OLED简介1.2OLED结构1.2OLED特点1.3发光原理1.4模块参数2.OLED显示编程2.1OLED显示库2.2汉字取模2.3OLED显示1.OLED简介有机发光二极管(OrganicLight-EmittingDiode,OLED)又称为有机电激光显示、有机发光半导体。由美籍华裔教授邓青云(ChingW.Tang)于1979年在实验室中发现。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低耗电、极高反应速度等优点。1.2OLED结构由基板、阴极、阳极、空穴注入层(HIL)、电子注入层(EIL)、空穴传输层(HTL)、电子传输层(ETL)、电子阻

基于STM32+SPI+W25Qxx存储芯片指令,时序和函数讲解

前言           本次我们学习一下STM32F103关于SPI对存储芯片的读写,介绍W25QXX芯片和对芯片内部讲解和代码解读,学习W25QXX芯片的各种读写指令,操作芯片读写,认识底层驱动,本篇内容主要目的是教会大家看手册写代码,读代码。本篇博客大部分是自己收集和整理,如有侵权请联系我删除。本次实验板子使用的是正点原子精英版,芯片是STM32F103ZET6,需要资料可以@我拿取。本博客内容原创,创作不易,转载请注明没有初步认识SPI协议的,可以先看看我之前的博客:SPI协议讲解一.W25QXX存储芯片介绍应用:需要存储较多数据的时候,比如字库,图片,各种模块数据等等总述:W25Q1