OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 17421|回复: 27

有关STM32对NAND FLASH ,NOR FLASH ,SRAM的访问

[复制链接]

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
发表于 2011-11-16 22:11:46 | 显示全部楼层 |阅读模式
如题,本人想玩下STM32对NAND FLASH ,NOR FLASH ,SRAM的访问,来熟悉这些器件的应用,不知这里有哪位大侠用STM32玩过这些,可以交流交流。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-16 22:24:05 | 显示全部楼层
玩了液晶,玩sram就基本一样了.
玩nand和nor我也还没玩过...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-16 23:00:49 | 显示全部楼层
因没玩过SRAM,所以问个弱弱的问题:
1,对于内部SRAM,程序执行时STM32自己管理使用内部SRAM,而对于外部SRAM,STM32是如何把它当作自己的RAM的一部分呢?还是在程序中做什么样的处理?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-17 00:50:44 | 显示全部楼层
回复【3楼】螃蟹爱虫:
---------------------------------
一般用at指令.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-17 00:51:07 | 显示全部楼层
//内存池
u8 mem1base[MEM1_MAX_SIZE]; //内部SRAM内存池
u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000))); //外部SRAM内存池
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-17 22:17:45 | 显示全部楼层
原子兄能否说详细点,比如说是否像写TFT液晶一样,写地址,然后写数据;写地址,读数据,是这样吗? 是否类似一个TFT底层驱动就行了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-17 22:36:51 | 显示全部楼层
没那么麻烦.
用在外部sram的一半是一个大数组,对于数组就用我那种方式定义即可.
不过貌似可以通过其他设置由MDK自己分配.我还不会弄...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-17 23:36:56 | 显示全部楼层
SRAM是最简单的  把SRAM挂在FSMC上  再初始化下FSMC   其他不用管  再就是向外部的某一个地址读写数据就OK了
比如:16bit宽的数据  *(u32 *)0X68000000+ADD(自己的地址)*2(乘2的地址对齐)=0xxxxxx
读就一样的   当然我这样写是不对的  只是大概的意思   (因为*(32 *)后面不能运算 会报错)
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-18 10:39:23 | 显示全部楼层
哦,LS两位大概的意思我明白了。就是往外部的SRAM地址写数据读数据。但这里我有一点就是:在内部SRAM,我不用指定任何地址,由MDK自己分配与控制,所以我想,外部的SRAM能不能也能像内部SRAM一样,由MDK自己自由的分配与控制,不用程序员再额外的指定特定的地址呢?如能这样就方便的多了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-18 12:37:40 | 显示全部楼层
回复【9楼】螃蟹爱虫:
---------------------------------
这样应该是可以的。不过我没弄过
应该是在:options for target里面,有个off chip的选项。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

279

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2010-12-15
在线时间
0 小时
发表于 2011-11-18 13:23:46 | 显示全部楼层
HOHO,, 回答给力
STM32芯片---上海银洋电子021-53086303
欢迎来电15900733302??采购找张经理
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-18 23:31:16 | 显示全部楼层
回复【4楼】正点原子:
回复【3楼】螃蟹爱虫: --------------------------------- 一般用at指令.
---------------------------------
什么是AT指令?如何在STM32中使用AT指令呢。。。有百度过。。但不是很明白。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-19 00:29:41 | 显示全部楼层
看4楼
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-23 17:49:12 | 显示全部楼层
回复【13楼】正点原子:

---------------------------------
我试试,完后整个代码放上来!
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-23 18:23:33 | 显示全部楼层

/******************************************************************
 - 功能描述:把指定区域的点颜色保存在外部的SRAM中
 - 隶属模块:公开函数模块
 - 函数属性:外部,用户可调用
 - 参数说明:x,y起始坐标
             xsize:宽度
    ysize:高度          
 - 返回说明:无
 ******************************************************************/
void Read_Temp_Color(u16 x,u16 y,u16 xsize,u16 ysize)
{
 u16 i,t;
 u32 tcnt=0,temp;
 for(i=0;i<ysize;i++)
 {
  for(t=0;t<xsize;t++)
  {
   tcnt++;
   temp=SRAM_BLANK_START_ADDR+tcnt*2;
   (*(uint32_t *)temp) = ili9320_GetPoint(x+t,y+i);//读取当前点的颜色值
  }
 }



/******************************************************************
 - 功能描述:把指定区域把外部SRAM中的数据恢复到LCD上
 - 隶属模块:公开函数模块
 - 函数属性:外部,用户可调用
 - 参数说明:x,y起始坐标
             xsize:宽度
    ysize:高度          
 - 返回说明:无
 ******************************************************************/
void Reshow_Temp_Color(u16 x,u16 y,u16 xsize,u16 ysize)
{
 u16 i;
 u32 tcnt=0,temp;
 ili9320_SetWindows(x,y,x+xsize-1,y+ysize-1);
 LCD_WriteCom(0x002c);
 for(i=0;i<xsize*ysize;i++)
 {  
  tcnt++;
  temp=SRAM_BLANK_START_ADDR+tcnt*2;
  LCD_WriteRAM(*(uint32_t *)temp);
 }

}

举个实用的例子!(自己看)    

SRAM.rar

1.13 KB, 下载次数: 986

回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-23 19:21:56 | 显示全部楼层
哦,楼上谢谢。目前手头有NOR FLASH,NAND FLASH以及几种规格的TFT,想把这几个完通先。。另外,印象中楼上是搞TFT的,想向你要些驱动,不知可否?
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-23 22:05:36 | 显示全部楼层
IC啥型号?最好是原产的初始化 因为那个要校gamma的 比较复杂
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-23 23:32:05 | 显示全部楼层
回复【17楼】muc520:
---------------------------------
回muc520兄,SPEC上写着“LCD Controller & Driver HX8257”,4.3寸,对了。MUC520兄,看到你以前的帖子说有好多TFT,还有没有7寸的呢,送个给俺玩,还没玩过大尺寸屏。。呵呵。。
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-26 23:16:27 | 显示全部楼层
我手上就只有一片了啊
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-11-26 23:19:11 | 显示全部楼层
回复【18楼】螃蟹爱虫:

---------------------------------
这个屏用STM32直接驱动不了的  必须加控制器 例如RA8875 SSD1963之类的  我现在用的4.3的屏就是我之前自己做的  驱动IC是HX8257的 STM32——>SSD1963——>TFT 
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-27 22:01:32 | 显示全部楼层
哦,没关系。我有的是5寸屏,用STM32驱动是麻烦,用ARM9应该可以直接驱动了。
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-27 22:03:38 | 显示全部楼层
哦,没关系。我有的是5寸屏,用STM32驱动是麻烦,用ARM9应该可以直接驱动了。
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-11-27 22:04:22 | 显示全部楼层
回复【5楼】正点原子: 
//内存池 u8 mem1base[MEM1_MAX_SIZE]; //内部SRAM内存池 u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000))); //外部SRAM内存池  
--------------------------------- 
原子兄,这个0X68000000是开始地址吗?假如上面的数组个数为10,那使用下面的命令之后是不是数据存储在地址为0X68000000~0X68000009之间呢? 
u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000))); //外部SRAM内存池  
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-28 00:52:50 | 显示全部楼层
回复【23楼】螃蟹爱虫:
---------------------------------
不是,是从0X68000000开始.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-28 00:53:41 | 显示全部楼层
回复【24楼】正点原子:
---------------------------------
是的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

279

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2010-12-15
在线时间
0 小时
发表于 2011-12-6 12:33:32 | 显示全部楼层
NAND NOR  可以找我
STM32芯片---上海银洋电子021-53086303
欢迎来电15900733302??采购找张经理
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
 楼主| 发表于 2011-12-6 23:47:04 | 显示全部楼层
楼上兄弟玩过NAND NOR?有无驱动呢?我的NAND 是东芝的,NOR是MXIC的,请指教,谢谢了。
回复 支持 反对

使用道具 举报

21

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2011-4-12
在线时间
0 小时
发表于 2012-5-24 16:35:04 | 显示全部楼层
螃蟹爱虫兄的问题和我的问题一样。。。现在正在解决这个。。头疼
自信人生一百年
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 01:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表