[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析

核心板:

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第1张图片

图中出现的chips & 重要接口:

  1. 串口通信接口(TXD, RXD, GND)

 

1.SPI FLASH 32MB

SPI Serial Peripheral Interface 串行接口

1、SPI Flash (即SPI Nor Flash)是Nor Flash的一种;
2、NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR Flash;
3、SPI Nor Flash每次传输一个bit位的数据,parallel Nor Flash每次传输多个bit位的数据(有x8和x16bit两种);
4、SPI Nor Flash比parallel便宜,接口简单点,但速度慢。

 

说明:

SPI 有升级版 QSPI,queue SPI)(使用该接口,用户可以一次性传输包含多达16个8位或16位数据的传输队列。一旦传输启动,直到传输结束,都不需要CPU干预,极大的提高了传输效率。)

STM32F429 不支持QSPI,只支持SPI,STM32F767支持QSPI

在连接的时候,接芯片的接口不同

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第2张图片

在芯片手册中有更加详细的信息

在767的芯片的设计中,只有Boot0的连线设计,如下图:

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第3张图片

但是在429 的芯片的设计中,BOOT0和BOOT1均使用的引脚进行引出

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第4张图片

2.EEPROM 256B

不少主板采用EEPROM作为BIOS芯片并作为自己主板的一大特色

见下面的背景知识

 

3.SWD调试接口(参考02-最小系统设计

 

 

4.NAND FLASH 512MB

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。

“NAND存储器”经常可以与“NOR存储器”相互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码并且需要多次擦写,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除 速度大大影响了它的性能。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理需要特殊的系统接口。

 

 

5.SDRAM 32MB

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第5张图片

 

同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行管线(Pipeline)操作。这使得SDRAM与没有同步接口的异步DRAM(asynchronous DRAM)相比,可以有一个更复杂的操作模式。

管线意味着芯片可以在处理完之前的指令前,接受一个新的指令。在一个写入的管线中,写入命令在另一个指令执行完之后可以立刻执行,而不需要等待数据写入存储队列的时间。在一个读取的流水线中,需要的数据在读取指令发出之后固定数量的时钟频率后到达,而这个等待的过程可以发出其它附加指令。这种延迟被称为等待时间(Latency),在为计算机购买内存时是一个很重要的参数。

 

6.CPU STM32F429IGT6

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第6张图片

Cortex-M3只是一个内核,是arm公司出的。

Cortex-M3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。

STM32就是采用其架构的。

STM32的优势是最大的优势是性价比高、配置丰富灵活、低功耗等等。

STM32是有一个系列的,如101、103、105、107.

 

STM32主要有一下几点优势:

1、搭载ARM公司最新的、具有先进架构的Cortex-M3内核

2、出色的实时性能

3、优越的功效

4、高级的、创新型外设

5、最大的集成性

6、易于开发,加速了面市时间

 

stm32是低端的32位产品,应对的是些手持设备啊,小型终端设备等等。

ROM: read-only memory

ROM在系统停止供电的时候仍然可以保持数据

 

RAM: random access memory

RAM通常都是在掉电之后就丢失数据

 

RAM分为两大类:SRAM和DRAM。

SRAM为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。

DRAM为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。RAM价格相比ROM和FLASH要高。

 

Flash: flash memory

闪存是一种特殊的、以宏块抹写的EEPROM,是非易失性存储器,即断电数据也不会丢失。

闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。

 

EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片,支持单字节读写数据

 

背景知识:

在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。ROM内部的资料是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再作任何修改。如果发现资料有任何错误,则只有舍弃不用,重新订做一份。ROM是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。

 

由于ROM制造和升级的不便,后来人们发明了PROM(Programmable ROM,可编程ROM)。最初从工厂中制作完成的PROM内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片只能报废。PROM的特性和ROM相同,但是其成本比ROM高,而且写入资料的速度比ROM的量产速度要慢,一般只适用于少量需求的场合或是ROM量产前的验证。

 

EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12~24V,随不同的芯片型号而定)。EPROM的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。

 

由于EPROM操作的不便,后来出的主板上BIOS ROM芯片大部分都采用EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,在升级时,把跳线开关打至“on”的位置,即给芯片加上相应的编程电压,就可以方便地升级;平时使用时,则把跳线开关打至“off”的位置,防止CIH类的病毒对BIOS芯片的非法修改。所以,仍有不少主板采用EEPROM作为BIOS芯片并作为自己主板的一大特色

 

 

STM32的启动模式

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

 

 

1)用户闪存 = 芯片内置的Flash。

2)SRAM = 芯片内置的RAM区,就是内存啦。

3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。

 

 

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:

 

 

BOOT1=x  BOOT0=0  从用户闪存启动,这是正常的工作模式。

BOOT1=0  BOOT0=1  从系统存储器启动,这种模式启动的程序功能由厂家设置。

BOOT1=1  BOOT0=1  从内置SRAM启动,这种模式可以用于调试。

 

//*****************下面这一段暂时不懂,学习电路后再看[l1] ***********************\\\\

STM32一共有三种启动模式,在ST官网上下载的RM0008中,我找到了启动相关的配置说明:

         所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

•  Main Flash memory

是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

•  System memory

从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。

系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。

一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader

Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中

Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动

      可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

•  Embedded Memory

内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。

假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。

综上所述,在我的设计中,我将BOOT0和BOOT1通过一个100k的下拉电阻,直接接地。

 

\\\\\\***************************************************************************************//

 

核心板的供电提供了多种方法:

1.使用5V&3.3V的输入输出焊接点(VCC & GND)

2.使用Micro USB 口供电

3.增加底板,使用底板对核心板进行供电

 

核心板的复位按键连接芯片的nrst引脚:

提供给设备的系统复位信号都由 NRST 引脚输出, 对每一个内部 /外部复位源,脉冲发生器都将保证一个 20us 最小复位周期。

 

核心板上有一个LED指示灯,连接了芯片的某个[l2] 输出引脚

 

Wake up引脚对应的是?[l3] 

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第7张图片

可以实现待机唤醒

主板的资源:

供电

1.可以使用6-12v的宽电压的输入

2.使用usb供电,5v,最多提供500mA电流,可能带不动

3.使用排针供电,可以使用5V & 3.3V 两种接口,这两个接口属于双向接口,可以通过这两个接口进行对开发板的供电,也可以在有外接电源的情况下通过这两个接口向外供电

晶振没有,两个晶振都在核心板上

调试:提供了20pin的JTAG接口

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第8张图片

也可以使用usb_232 接口(下面那个microUSB接口),这个接口连接芯片CH340 之后将信号输出到了板子上最左边的第二组针脚处,即RXD和TXD,这两个针脚没有跟芯片连接,需要连接的时候,就使用跳线帽将PA9 和 RXD 连接, PA10 和 TXD连接

使用主板对应的wireless接口无线通信(可连接2.4G模块),与SPI接口连接[l4] 

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第9张图片

Can/usb选择口:

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第10张图片

该口同时为 USB 和 CAN通信接口:

该跳线帽连接上面的CAN接口,则使用CAN通信,如果连接下面则使用USB通信

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第11张图片

 

USB host & USB slave

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第12张图片

Usb host 对应的可以插入U盘

Usb Slave 可以连接电脑,供电

调试和下载程序使用下面的那个micro usb接口,然后把PA9 和PA10 的跳线帽连接好,但是这样下载可以,是否可以调试不知道[l5] 

但是目前知道使用实验室的J-LINK 一定可以下载和调试

F429/767这两款芯片支持500万像素的摄像头的处理,OV5640型号的摄像头

参考:摄像头配置[l6] 

单总线接口可以用于连接温度传感器和温湿度传感器

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第13张图片

以下LED和按键均连接到了对应的IO口

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第14张图片

AN对应模拟引脚

DAC:数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。

ADC: 模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。

AN下方的PDC是一个PWM DAC 通过PWM 让此处输出一个固定的电压值

可以使用跳线帽将PDC和ADC连接,此时可以使用ADC测试PDC 的输出的电压值

下图中的TPAD 与 ADC相连,触摸按键有效

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第15张图片

使用跳线帽,接入ATK-MODULE

可以连接GPS模块等等

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第16张图片

485接口

 

连接显示屏:LCD接口

[STM32] NOTE02-正点原子STM32F429IGT6开发板资源分析_第17张图片


 [l1]关于启动模式,并不理解这个上升沿的锁死

以及一键下载电路的实现

 [l2]这个视频里面没有说,而且没有查到

查找了芯片手册和百度,搜索不到芯片上对应的LED的DS0标识

 [l3]目前不清怎么在很多的芯片中找这款开发板上的芯片对应的图例(看引脚),这款F429芯片上写的是STM32F429IGT6

芯片手册中的不同引脚的STM32F429XX:

STM32F42x LQFP208 对应有208个引脚的芯片

 [l4]疑问?SPI接口不是只有4条线吗?

参考:百度解释

为甚会有8个引脚?

 [l5]此处,不知道串口是否可以用于调试,连接了TXD和RXD感觉既可以接受数据,又可以发出数据,应该可以调试,需要试一下

 [l6]这个目前仅仅批注,还没有看

你可能感兴趣的:(STM32)