绘制STM32最小系统电路原理图、STM32F103读取SD卡的数据

本文介绍了如何使用Altium Designer绘制STM32最小系统电路原理图,并详细讲解了STM32F103读取SD卡数据的步骤,包括SD卡的硬件连接、初始化过程、源代码实现和结果分析,强调了电压供应和文件系统格式的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

绘制STM32最小系统电路原理图、STM32F103读取SD卡的数据

1 AltiumDesigner 软件配置

  1. 安装连接:百度网盘
    提取码:fnr9
  2. 解压——安装包——双击打开AltiumDesigner18Setup.exe——

利用AD软件,完成以下任务
用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理图设计。

2 AltiumDesigner 绘制STM32最小系统原理图

2.1 建立工程文件

  1. File——New——Project——PCB Project
    (记得将工程保存在文件夹下。)
    在这里插入图片描述
  2. File——New——Project——PCB Project——Schematic
  3. 导入元件库:右上角“库”——Libraries——可用库——右下角“添加库”——选指定的元件库——打开。
    在这里插入图片描述

2.2 基本绘制方法

  1. 选择芯片,将其拖入界面(STM32C8T6)。要放置其余原件也是类似方式。
    在这里插入图片描述
  2. 延长引脚线,设置标签。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 点击原件,按空格键可以旋转 90°。

2.3 绘制其余模块

系统供电稳压
在这里插入图片描述调试JTAG、SW模块
在这里插入图片描述
复位模块
在这里插入图片描述
I/O接口
在这里插入图片描述
扩展供电接口
在这里插入图片描述
STM32USB
在这里插入图片描述

数据存储E2
在这里插入图片描述

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

3 AltiumDesigner 绘制STM32+SD卡原理图

如图示STM32F103CT6 和 SD 卡的原理图。
在这里插入图片描述

4 SD卡概述

4.1 SD 卡简介

SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。

4.2 SD 卡模块结构

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

在这里插入图片描述

各个部分的功能:

一共有6个接口,分别是GND,VCC,CS,SCK,MOSI,MISO。VCC是供电,GND是接地。其他4根是SPI通讯时用的,CS是片选,SCK是时钟信号,MOSI为主输出从输入,MISO为主输入从输出。

4.3 SD 卡的寄存器

名称 宽度 描述
CID 128 卡标识寄存器
RCA 16 相对卡地址寄存器:本地系统中卡的地址,动态变化,在卡的初始化时确定。(SPI模式中没有)
CSD 128 卡描述数据寄存器:卡操作条件相关的信息数据
SCR 64 SD配置寄存器:SD卡特定信息数据
OCR 32 操作条件寄存器

4.4 SD 卡操作

  • SD卡初始化过程(知道 SD 卡的类型V1、 V2、 V2HC 或者 MMC):

    初始化与 SD 卡连接的硬件条件(MCU 的 SPI 配置, IO 口配置);
    上电延时(>74 个 CLK)(因为 SD 卡内部有个供电电压上升时间,大概为 64 个 CLK,剩下的 10 个 CLK 用于 SD 卡同步,之后才能开始 CMD0 的操作);
    复位卡(CMD0),进入 IDLE 状态;
    发送 CMD8,检查是否支持 2.0 协议;
    根据不同协议检查 SD 卡(命令包括: CMD55、 CMD41、 CMD58 和 CMD1 等);
    取消片选,发多 8 个 CLK(提供 SD 卡额外的时钟,完成某些操作),结束初始化;
    
  • SD卡读取数据(CMD17):

    发送 CMD17;
    接收卡响应 R1;
    接收数据起始令牌 0XFE;
    接收数据;
    接收 2 个字节的 CRC,如果不使用 CRC,这两个字节在读取后可以丢掉。
    禁止片选之后,发多 8 个 CLK;
    
  • SD卡写数据(CMD24):

     发送 CMD24;
     接收卡响应 R1;
     发送写数据起始令牌 0XFE;
     发送数据;
     发送 2 字节的伪 CRC;
     禁止片选之后,发多 8 个 CLK;
    

5 SD卡数据读取实作

用STM32F103完成对SD卡的数据读取(fat文件模式)。

5.1 源代码

工程文件连接:
百度网盘
提取码:e63q

  1. main函数中修改文件名以及输出内容
    在这里插入图片描述

    int main(void)
    {
         
         
      /* USER CODE BEGIN 1 */
    
      /* USER CODE END 1 */
      
    
      /* MCU Configuration--------------------------------------------------------*/
    
      /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configure
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值