最近调试SD卡的时候遇到了发送CMD命令但没有收到正确回应的问题。先简单叙述一下开发环境,我使用的是STM32CubeMX+MDK5,板子用的是原子哥F407探索者。这次的需求是使用SPI驱动SD卡,并建立FATFS文件系统用于管理卡内数据,另外使能了串口1并重定向了printf到串口以便直接观察。 基本了解SD卡驱动流程后就直接开始实战操作(SD卡的驱动流程、卡的驱动及挂载文件系统的代码都可以在网上找,很容易能够找到,这里就不赘述了),在下载的代码基础上用if语句判断f_mkfs、f_mount和f_open函数是否成功执行,成功返回0,否则返回错误代码。建立工程文
注:扫码关注小青菜哥哥的weixin公众号,免费获得更多优质的核探测器与电子学资讯~上篇以德州仪器(TI)的高速ADC芯片——ads52j90为例,介绍完了4线SPI配置时序。本篇将以AnalogDevice(ADI)的多通道高速ADC芯片AD9249为例,介绍3线SPI读写配置时序。另外,大家如果想详细了解AnalogDevice(ADI)公司的关于SPI的所有内容,推荐大家在其官网阅读AN-877。AD9249的SPI控制模块包含4根信号线,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB来控制,实际上就是3线SPI。由于3线SPI数据的读、写操作在同
参考硬汉嵌入式:【实战技能】任何支持SWD接口的单片机都可以方便移植的SPIFlash烧写算法制作_哔哩哔哩_bilibili该up主提供的stm32H7的模板工程,目前需求是实现基于正点原子探索者stm32f407zet6+W25Q128下载算法实现步骤使用cubemx建立一个LED工程,主要是配置系统时钟复制系统时钟配置函数复制stm32f4的hal库文件和添加头文件路径添加必要的文件模板工程修改gpio模拟spi外设的引脚system_stm32f4xx.c文件修改FlashDev.c文件的的FlashDevice内部的参数,主要是flash的大小,和算法名称修改输出文件名和mcu型号选
本文介绍基于STM32F103C8T6+0.96寸OLED(7针)的显示(完整程序代码见文末链接)一、简介OLED,即有机发光二极管(OrganicLightEmittingDiode)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。关于OLED基础知识介绍可参考我的另外一篇博客,建议阅读本文前先了解下,链接如下:https://blog.csdn.net/u011816009/article/details/130119426本文是基于7pin0.96寸OL
注:扫码关注小青菜哥哥的weixin公众号,免费获得更多优质的核探测器与电子学资讯~本篇将以德州仪器(TI)的高速ADC芯片——ads52j90为例,进行ADC的4线SPI配置时序介绍与分析。从ads52j90的数据手册我们不难发现,其SPI控制模块主要包含4根信号线,即SEN、SCLK、SDIN以及SDOUT。TI公司对其产品SPI配置信号的命名方式与通用的SPI信号命名方式不一样,但实际上SEN对应CSB、SDIN对应SDI、SDOUT对应SDO、SCLK不变。1,SEN:控制ADC的SPI读写的使能信号;2,SDIN:FPGA写入ADC的配置数据(寄存器地址和对应地址的数据);3,
背景前段时间开发一个按键板驱动,该板用的STM32F103系列单片机,前任工程师用STM32CubeMX生成的工程,里面全是HAL库调用,我接手后,学习了下HAL库的用法,踩坑不少,特别是带IT后缀的函数,初学者对其的理解很容易出错,特此记录一下。项目中的按键板通过SPI总线与主板连接,按键板是Slave设备,因此无法确定什么时候收到主板的读写请求,要么轮询SPI控制器的rxfifo是否非空,要么依赖SPI控制器提供的中断机制,在中断里将rxfifo内容读出来。两种Receive流程说明一下,SPI的BPW(bitsperword)设置为8,因此文中一个word的size就是一个字节。轮询:H
1.SPI的通信原理SPI既可以做主机也可以做从机。当做主机时。MOSI,SCK,CS都是作为输出。 而作为从机时。MOSI,SCK,CS都是作为输入。 所以SPI的硬件电路应该实现这样的功能。2.GD32/STM32的SPI框图 1.GD32框图如下图做主机的数据流向: 如下图做从机的数据流向: 2.STM32框图 通过一些寄存器的配置来控制电路。跟GD32的差不多。波特率配置越高,采样越快。SPI的速率越快。3.SPI的寄存器介绍 1.控制寄存器0(SPI_CTL0) 2.控制寄存器1(SPI_CTL1) 3. 状态寄存器(SPI_STAT) 4.数据寄存器(SPI_DATA) 4.
一、实验目的与任务实验目的:1.学习对SPI的使用;2.掌握KEIL5的仿真与调试。任务:1. 根据要求编写程序,并写出原理性注释;2.将检查程序运行的结果,分析一下是否正确;3.完成所建工程的验证调试。二、实验要求以一种使用SPI通讯的串行FLASH存储芯片的读写实验为大家讲解STM32的SPI使用方法。实验中STM32的SPI外设采用主模式,通过查询事件的方式来确保正常通讯。三、实验内容及步骤本实验板中的FLASH芯片(型号:W25Q64)是一种使用SPI通讯协议的NORFLASH存储器,它的CS/CLK/DIO/DO引脚分别连接到了STM32对应的SPI引脚NSS/SCK/MOSI/MI
基于SPI的FPGA-MCU通用通信界面设计与技术详解SPI及FPGA平台简介使用SPI的优势系统框图及概念明晰协议详解读写数据模式中断模式数据自动返回设置模式工程配置技术实现详解主状态机Trans状态机参考资料补充说明2023年8月9日FPGA与MCU之间的通信想必是很多异构人极为头疼的难题。如果每次写一个工程都要大费周章重写通信逻辑、通信协议之类的东西,不仅耗费心神,而且浪费时间。本文基于安陆PH1A90SBG484,提出一个已经通过门级仿真验证的通用通信界面解决方案。详细代码见以下链接:Github代码仓库SPI及FPGA平台简介FPGA开发板:米联客MLK_S201_AP106开发板(
简介SPI(SerialPeripheralInterface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术。是一种高速、全双工、同步通信总线。在芯片中只占用四根管脚用来控制及数据传输。优缺点:SPI通讯协议的优点是支持全双工通信,通讯方式较为简单,且相对数据传输速率较快;缺点是没有指定的流控制,没有应答机制确认数据是否接收,与IIC总线通讯协议相比,在数据可靠性上有一定缺陷。物理层对于SPI协议的物理层,需要讲解的就是SPI通讯设备的连接方式和设备引脚的功能描述。SPI通讯设备的通讯模式是主从通讯模式,通讯双方有主从之分,根据从机设备的个数,SPI通讯设备之间