使用Altium Designer 绘制原理图并且使用STM32F103完成对SD卡的数据读取

前言

请在实验操作过程中仔细观察操作结果,与理论结果比较,发现问题,修改代码

实验要求

1、掌握电路原理图绘制。安装Altium Designer 18,学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡的系统原理图设计。(该系统的PCB图的绘制不做要求)
2、掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)

一、 电路原理图绘制

Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案-一个既满足当前,也满足未来开发需求的解决方案。

软件安装配置过程

在这里插入图片描述
选择汉语
在这里插入图片描述
在这里插入图片描述
修改安装位置
在这里插入图片描述
一路next即可安装成功
在这里插入图片描述
打开Crack文件夹,复制shfolder.dll文件到Altium Designer的安装目录下
在这里插入图片描述
在这里插入图片描述
打开Altium Designer 软件,选择license,选择文件并打开
在这里插入图片描述
成功注册
在这里插入图片描述
点击设置,勾选Use localized resources,点击OK,重启Altium Designer,汉化成功
在这里插入图片描述

(一)绘制stm32最小系统的电路原理图

由于是新手,只能在网上找现成的原理图进行模仿
网盘链接(淘宝商家):https://pan.baidu.com/share/init?surl=ipHs1nPdf6Xq3H_OH5j7DA
提取码:7hqu

1、新建工程

点击File->New->Project->PCD Project,新建工程

在这里插入图片描述

右击PCD_Project1.PrjPCB,选择Add New to Project->Schematic,新建原理图

在这里插入图片描述

2、下载元件库

链接:https://pan.baidu.com/s/1jiJAqjsCjWf41C5edIP7Ww
提取码:1521
在这里插入图片描述
在这里插入图片描述

3、绘制原理图

(1)过程

在元件库中找到stm32f103c8t6芯片,双击打开,将元件放在中间
在这里插入图片描述
点击放置线延长管脚,左键在起始和终点各点击一下连接,右键释放掉
(可使用 ctrl + c 复制,ctrl + v 粘贴,按空格可每90°旋转器件)
在这里插入图片描述

在这里插入图片描述
点击Net Label放置网络编号,按tab键进入设置窗口,编辑编号名称,回车退出编辑框,再左键放下
在这里插入图片描述

(2)结果

在这里插入图片描述

(二)STM32+SD卡的系统原理图设计

SD卡模块说明
在这里插入图片描述
内部结构
在这里插入图片描述
在这里插入图片描述
SD卡模块原理图如下
在这里插入图片描述

**关于SD卡与stm32模块的连接,第二个任务中有详细介绍,这里不再重复**

1、绘制步骤

点击右上角的Libraries,选择下载的元件库并寻找器件
AMS1117:stm32f103c8t6 最小系统.SchLib 元件库中
P:Miscellaneous Connectors.IntLib 元件库中搜索 MHDR
C:Miscellaneous Devices LC.IntLib元件库中搜索 0805 100uF
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、原理图展示

在这里插入图片描述
关于AD的详细绘制方式,可以去b站学习,讲的很详细,这里给出链接
https://www.bilibili.com/video/BV16t411N7RD?from=search&seid=4530935776254031183&spm_id_from=333.337.0.0

二、SD卡读取数据

(一) 理论知识

1.SD卡简述

SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。控制器对 SD 卡进行读写通信操作一般有两种通信接口可选,一种是 SPI 接口,另外一种是 SDIO 接口。

2、SD卡初始化

SPI操作模式下:在SD卡收到复位命令时,CS为有效电平(低电平),则SPI模式被启用,在发送CMD之前要先发送74个时钟,64个为内部供电上升时间,10个用于SD卡同步;之后才能开始CMD操作,在初始化时CLK时钟不能超过400KHz。

1、初始化与SD卡连接的硬件条件(MCU的SPI配置,IO口配置);
2、上电延时(>74个CLK);
3、复位卡(CMD0),进入IDLE状态;
4、发送CMD8,检查是否支持2.0协议;
5、根据不同协议检查SD卡(命令包括:CMD55、CMD41、CMD58和CMD1等);
6、取消片选,发多8个CLK,结束初始化
这样我们就完成了对SD卡的初始化,注意末尾发送的8个CLK是提供SD卡额外的时钟,完成某些操作。通过SD卡初始化,我们可以知道SD卡的类型(V1、V2、V2HC或者MMC),在完成了初始化之后,就可以开始读写数据了。

3、SPI协议

关于SPI协议,之前一篇博客已详细说明,博客链接给出:
https://blog.csdn.net/m0_48609250/article/details/121558582

4、SD卡物理结构

一般SD卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器 5个部分。
在这里插入图片描述

在这里插入图片描述

存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输;
电源检测单元保证SD卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;
卡及接口控制单元控制SD卡的运行状态,它包括有8个寄存器; 接口驱动器控制SD卡引脚的输入输出。

(二)实验过程

1、下载源码

链接:https://pan.baidu.com/s/15Kv471QLosXKGldRckLRpg
提取码:1521

2、硬件连线

在这里插入图片描述
在这里插入图片描述

3、代码修改

在这里插入图片描述

在这里插入图片描述
在这里也可以将272,273行代码注释掉也可以达到预期效果
编译没有错误
在这里插入图片描述

4、编译烧录

在这里插入图片描述

5、SD开始读入

(1)初始化SD卡

在这里插入图片描述

(2)发送文件

在这里插入图片描述

(3)结果显示

在这里插入图片描述

6、注意事项

1、读卡前请格式化,选择FAT模式
2、SD卡与芯片的连接线尽可能选择短的新杜邦线,保证接触良好
3、在SD卡初始化时,等待一段时间,不要心急
4、芯片与SD卡供电电压全都选择5V,3V可能会失败,无法完成初始化
5、USB在插入电脑后不要再动了,有的笔记本电脑串口可能会有接触问题,使用前仔细检查
6、烧录和读卡时芯片boot注意进行置位

三、总结

因为第一个任务原理图的绘制并不是此次实验重点,所以只能在淘宝找现成的原理图进行模仿绘制,总体来说,还是掌握了一些绘图的基本操作,第二个任务SD卡数据的读取,实验过程其实很简单,但是总会出现一些硬件问题,比如杜邦线接触不良,SD卡需要按压初始化,但是通过用新的杜邦线,以及手动操作,完成了此次实验,总体来说,并没有自己实质性完成的工程,都是在前人的基础上进行二次利用,希望以后自己能写出自己的工程吧!

四、参考文献

STM32用cube配置FATFS模式下SPI读写SD卡
SD卡读写
https://blog.csdn.net/qq_46467126/article/details/122034936

猜你喜欢

转载自blog.csdn.net/m0_48609250/article/details/122075173