flash芯片

认识MicroBit

帅比萌擦擦* 提交于 2019-12-03 16:47:30
MicroBit是BBC(英国广播公司),为孩子们推出一款开发板,或者叫控制板,可以简单地理解为通过这块电子板,可以控制接在其外围的电子模板,可以读入数据,也可以输出数据,模拟的或数字的数据。这样一来就很意思了。由此发挥,创客的天才创意,做出一些有意思或很好玩的电子积木一样的作品,有时我们叫做项目。是不是有点高大上的感觉? 控制板上有一个很重要的芯片,这个芯片里集成了CPU,内存、flash(相当于硬盘)和一些支撑电路,我们要通过相应的程序语言,按这些硬件的提供的能力 ,和提供的库,编写程序,经过编译,形成硬件能理解的二进制代码烧录到这个芯片的flash中,下次一开机,就能自动执行你编写的程序代码了。 现如今,最流行的程序语言之一,Python,她有一个姐妹,叫mPython, (MicroPython)Microbit就是用她来进行编程的。这里,我们暂时不讨论图形化编程,如makecode 。 来源: https://www.cnblogs.com/qywyll/p/11803210.html

什么是ROM、RAM、DRAM、SRAM和FLASH的区别

陌路散爱 提交于 2019-12-03 11:12:00
ROM 和 RAM 区别: ROM : Read Only Memory RAM : Random Access Memory ROM在系统停止供电的时候仍然可以保持数据, RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类: 一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态。 RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。 DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽

痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理

ぃ、小莉子 提交于 2019-12-03 10:39:07
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的原理 。   本文是i.MXRT硬件那些事系列第二篇的续集,在第二篇首集中痞子衡给大家详细介绍了EVK板载调试器用法,有了调试器在手,从此调试不用愁。从调试代码所在目标存储器类别上来分,调试一般分为在SRAM调试和在Flash调试。在SRAM调试实现比较简单,程序直接从JTAG/SWD口灌进RAM即可;在Flash调试,则相对复杂一点,因为首先需要有Flash下载算法,下载成功后才能调试。   通常的Cortex-M内核MCU一般都会内嵌并行NOR Flash,这个并行NOR Flash是直接挂在Cortex-M内核高性能AHB总线上的,知名IDE如果支持这款MCU,也都会同时集成对应Flash的下载算法,方便用户直接在IDE里下载代码进Flash和XIP调试,但是i.MXRT内部并没有Flash,用户需要自己外接Flash,那该怎么办?还能在线XIP调试么?别着急,i.MXRT可以支持外接并行NOR和串行NOR实现XIP,从节省管脚数的角度,最常见的做法是将串行NOR Flash挂在i.MXRT FlexSPI总线上,FlexSPI支持XIP特性,所以原理上可以实现在线调试,今天痞子衡就为大家介绍i.MXRT上在外部串行Flash调试的原理:

uboot详解

匿名 (未验证) 提交于 2019-12-03 00:21:02
(1)IIC EEPROM IIC EEPROM,采用的是IIC通信协议。 IIC通信协议具有的特点: 【1】简单的两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL); 【2】串行半双工通信模式的8位双向数据传输,位速率标准模式下可达100Kbit/s; 【3】一种电可擦除可编程只读存储器,掉电后数据不丢失,由于芯片能够支持单字节擦写,且支持擦除的次数非常之多,一个地址位可重复擦写的理论值为100万次,常用芯片型号有 AT24C02、FM24C02、CAT24C02等,其常见的封装多为DIP8,SOP8,TSSOP8等; (2)SPI NorFlash SPINorFlash,采用的是SPI 通信协议。 【1】有4线(时钟,两个数据线,片选线)或者3线(时钟,两个数据线)通信接口,由于它有两个数据线能实现全双工通信,因此比IIC通信协议的 IIC EEPROM的读写速度上要快很多。 【2】SPI NorFlash具有NOR技术Flash Memory的特点,即程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行;可以单字节或单字编程,但不能单字节擦除,必须以Sector为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对Sector或整片进行预编程和擦除操作。 【3

Keil MDK5实际使用中遇到的一些坑

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LZPRO/article/details/84100156 最近对一些新出芯片进行开发,编译环境从Keil MDK4升级到Keil MDK5,然后就遇到各种坑 1.程序无法全速运行,无法进入断点,进入不了相应函数 2 调试读写Flash的程序,debug后提示“internal command error” 原因:一直没想通,为了方便调试加了while循环 while(1) { FLASH读写相关操作 } 文章来源: https://blog.csdn.net/LZPRO/article/details/84100156

KT1025A蓝牙芯片模块的USB更新spiflah的音频内容的方法说明

匿名 (未验证) 提交于 2019-12-02 23:38:02
1、插上我们模块的USB之后,可以以SPIFLASH作为存储介质的U盘,如下图: (1)、可以从上图看到FLASH的总容量为15.8M字节。已经使用的空间为15.4M字节。虚拟出来的设备的文件系统的为FAT格式。FAT文件系统占的存储空间为442K (2)、进入设备之后,如下图: 可以很清晰的看到设备里面的文件,以及文件名称。可以像操作U盘或者读卡器一样操作FLASH.只是速度会比他们慢。至于为什么后面会详细解释。 (3)、无论用户使用多大容量的FLASH,我们模块都是支持的,并且内部已经做了自动识别,无需用户操心,用户也仅仅需要根据自己的需求来确定FLASH的容量和型号。 (4)、目前经过我们反复的测试和验证,SPIFLASH支持最大的容量为8M字节,对应型号W25Q64 因为再大容量的FLASH。由于技术的原因暂时还没有突破,后续会直接更新,请用户知晓 二 用户使用空白的FLASH说明 用户在调试的过程中,会按照自己的需求更换FLASH的大小来满足自己的需求,这样就需要以下三个步骤来完成FLASH的替换。 如上面的4个图片,就是使用空白FLASH,FLASH的型号为W25Q80,容量为1Mbyte。使用USB连接电脑第一次的处理过程。上面的截图可以很详细的看出步骤 1、我们的芯片支持自动识别FLASH容量大小。所以用户无需关心,只需要按照自己的需求使用合适大小的FLASH即可

ICMAX讲解存储芯片 emmc、Nand flash、Nor flash之间有什么区别

匿名 (未验证) 提交于 2019-12-02 23:38:02
随着存储领域的发展,有很多不同的存储介质,今天ICMAX就带大家来分一分emmc、Nand flash、Nor flash之间的区别。 一、定义及区别 emmc:全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。 Nand flash:一种存储数据介质;若要读取其中的数据,需要外接的主控电路。 Nor flash:也是一种存储介质;它的存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码。 这里主要重点讲的是emmc 和Nand flash 之间的区别,主要区别如下: (1) 在组成结构上:emmc存储芯片简化了存储器的设计,将NAND Flash芯片和控制芯片以MCP技术封装在一起,省去零组件耗用电路板的面积,同时也让手机厂商或是计算机厂商在设计新产品时的便利性大大提高。而NAND Flash仅仅只是一块存储设备,若要进行数据传输的话,只能通过主机端的控制器来进行操作,两者的结构图如下: (2) 在功能上:eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了

STM32读写内部Flash

▼魔方 西西 提交于 2019-12-02 12:46:34
目录 写Flash的流程 写Flash的注意事项 分页错误 起始、终止地址 写Flash的流程 (1)解锁 由于程序代码都存储在内部Flash中,因此,STM32本身的Flash平时是锁住的,在写Flash之前要先解锁,控制解锁的寄存器是FPEC 键寄存器 FLASH_KEYR: FLASH->KEYR = 0x45670123; FLASH->KEYR = 0xCDEF89AB; 固件库里有FLASH_Unlock();解锁函数,可以直接使用。 (2)按页擦出 Flash只支持按页擦出,不同型号的产品每页的大小不同,以STM32F1xx系列为例,小容量和中容量的产品型号每页大小1kByte,大容量产品型号每页2kByte。固件库中也有擦出函数:FLASH_ErasePage(uint32_t Page_Address)。 (3)使用FLASH_ProgramWord(uint32_t Address, uint32_t Data)函数写入即可 写Flash的注意事项 分页错误 编写程序,向最后一页写入数字20,在读取该地址的数据printf到串口助手,得到数值7,原因:起始终止地址设置错误:WRITE_START_ADDR,WRITE_END_ADDR 。 起始、终止地址 如表1所示,F1系列产品的大容量的地址分页: 表1[1]:STM32F1xx大容量型号的主存储器分页

nand flash的读写操作

蹲街弑〆低调 提交于 2019-12-02 09:12:57
本篇博客芯片基于三星s3c2440,nand flash基于三星的K9F2GXXU0M 首先来看下电路图上相关的内容 看到这个电路图会有一个疑问,其他的存储设备一般会有地址总线和数据总线相连,而在nand flash中只有数据总线相连,所以传递数据和地址以及命令都只能依靠这8根数据线,当ALE为高电平的时候传输的是地址,当CLE为高电平时传输的是命令,当ALE和CLE都为低电平时传输的是数据,后面我们将根据详细讲述为什么是这样? 由于nand flash连接上了数据总线,所以需要通过片选信号来控制设备是否要处于工作状态,承担这一功能的是CE。 nand flash和其他所有存储设备一样,在读取数据或者写数据的过程不是一瞬间就完成,会有一段延迟,我们可以根据RnB管脚来判断读写数据是否完成 对于各个管脚的功能我们也可以从nand flash手册上得到 如下介绍了各种mode下,对应的各个引脚的状态。如果想要更详细分析的话,需要阅读相关的时序图 我们来对nand flash做一个简单的测试(基于u-boot完成) CE电平拉低,选择当前设备 CLE发出一个信号,WE发出一个信号,设置当前是向nand flash写入命令 同时写入 read ID Command ALE发出一个脉冲,WE发出一个信号,设置当前是向nand flash写入地址 同时写入 Address. 1cycle

在SRAM、FLASH中调试代码的配置方法(附详细步骤)

社会主义新天地 提交于 2019-12-01 19:59:22
因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要快得多,所以下载程序到SRAM中的速度较快。 所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。这篇笔记主要分享在 keil5 中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。 本篇笔记以STM32F103ZET6为例。其FLASH大小为512KB,SRAM的大小为64KB。FLASH基地址为0x08000000,SRAM基地址为0x20000000。在STM32F10XXX里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式: 我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。 在FLASH中进行硬件仿真调试 1、硬件设置 BOOT0配置为0,BOOT1随意设置。 2、keil设置 本文以keil5为例。步骤如下: (1)点击如下按钮,修改target的名称: target的名称是可以随意更改的,我们这里改为FLASH。 (2)点击 Project->Options for Target Flash...