OpenEdv-开源电子网

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

W25Q128 中页的概念

[复制链接]

8

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-8-4
在线时间
16 小时
发表于 2017-2-17 15:20:35 | 显示全部楼层 |阅读模式
12金钱
本帖最后由 zcc_super 于 2017-2-17 19:42 编辑

问题1:
在操作 W25Q128 中写页实验,这个页的概念到底是什么, 下面的注视中写到,SPI在一页(0~65535),这个0~65535是一页,那不是意味着一页就是一个block吗?
然后在一页中写入少于256个字节,我看了芯片的数据手册的数序图,是只能写入了256个字节?如果是sector的话不是也应该有4096个字节的吗,为什么只能写个256个字节?(我记得好像视频里说 页就是sector的样子)
总而言之,对于这个页的概念真的不是很清楚,请搞懂的大神们解释一下。(个人理解是只能从一次性一个地址到一个地址写入256个字节,之后就要从下个地址重新再来写256个字节,但是这样的话地址怎么划分呢?一个sector有16页吗?)

//SPI在一页(0~65535)内写入少于256个字节的数据
//在指定地址开始写入最大256字节的数据
//pBuffer:数据存储区
//WriteAddr:开始写入的地址(24bit)
//NumByteToWrite:要写入的字节数(最大256),该数不应该超过该页的剩余字节数!!!         
void W25QXX_Write_Page(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)
{

}

问题2:
sector的地址到底是怎么确定的,是每一个sector都有编号吗,总共4096个sector,然后1就是第一个sector,是这样吗?
然后 写入芯片的地址时序图里面显示的是24bit,扇区的标号*4096 就是相应的24bit地址了吗?不是很理解。
再然后,我觉得block这个概念没什么用处是吗?当某个block的sector写满后自动跳转到下一个block的sector里,不需要什么特殊的处理,就是和正常的跨sector是一样的吧。 还望指正。




问题3:  还有一个问题,也就不开帖了,先发上来,看有人回没
  //RS485查询接收到的数据
//buf:接收缓存首地址
//len:读到的数据长度
void RS485_Receive_Data(u8 *buf,u8 *len)
{
        u8 rxlen=RS485_RX_CNT;
        u8 i=0;
        *len=0;                                //默认为0
        delay_ms(10);                //等待10ms,连续超过10ms没有接收到一个数据,则认为接收结束
        if(rxlen==RS485_RX_CNT&&rxlen)//接收到了数据,且接收完成了
        {
                for(i=0;i<rxlen;i++)
                {
                        buf=RS485_RX_BUF;        
                }               
                *len=RS485_RX_CNT;        //记录本次数据长度
                RS485_RX_CNT=0;                //清零
        }
}

  针对这个函数  这一句  delay_ms(10);                //等待10ms,连续超过10ms没有接收到一个数据,则认为接收结束
  这个放到开头是不是会好一点,否则就算在这个时候进入了中断服务函数里,那接受完成后 后面的if条件不就不成立了吗,很奇怪,为什么这里会有一个延时,对于这个if判断条件也不是很懂。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7261
金钱
7261
注册时间
2016-11-30
在线时间
625 小时
发表于 2017-2-18 09:20:29 | 显示全部楼层
手册里应该都可以找到答案的!可能你看的不够仔细吧。
第三个问题,如果delay的时候进入了中断函数,说明数据正在接收,if条件当然就不成立。if判断条件就是保证485接收数据完整。
如果不完整,要等中断接收完整之后再进if执行操作。相信RS485_Receive_Data()这个函数也是放在一个while()循环内的。
回复

使用道具 举报

5

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2014-3-16
在线时间
111 小时
发表于 2017-2-18 14:04:15 | 显示全部楼层
一个扇区是4K,分成16个页。一次最大只能写入256个字节。等待写完,再写下一个页。。。。
回复

使用道具 举报

8

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-8-4
在线时间
16 小时
 楼主| 发表于 2017-2-18 15:30:45 | 显示全部楼层
mon51 发表于 2017-2-18 14:04
一个扇区是4K,分成16个页。一次最大只能写入256个字节。等待写完,再写下一个页。。。。

  嗯  那看来我的理解是对了  是把一个扇区分成了16页
回复

使用道具 举报

8

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-8-4
在线时间
16 小时
 楼主| 发表于 2017-2-18 19:12:38 | 显示全部楼层
lvkanger 发表于 2017-2-18 09:20
手册里应该都可以找到答案的!可能你看的不够仔细吧。
第三个问题,如果delay的时候进入了中断函数,说明 ...

  这个函数是一直在while(1)的,不停的扫描,if是保证了数据的完整,可是不加这个delay这个数据就不完整了吗。
  中断函数里的处理是接受了一个数据,并且将RS485_RX_CNT标志位加一。
  所以还是觉得这个delay有点莫名其妙的感觉。
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7261
金钱
7261
注册时间
2016-11-30
在线时间
625 小时
发表于 2017-2-20 09:11:03 | 显示全部楼层
zcc_super 发表于 2017-2-18 19:12
这个函数是一直在while(1)的,不停的扫描,if是保证了数据的完整,可是不加这个delay这个数据就不完 ...

在这里加延时应该就是想让延时的这段时间把数据接收完,然后判断一次就OK了,否则如果接收不完全,程序就又会到while()跑一圈
回复

使用道具 举报

8

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-8-4
在线时间
16 小时
 楼主| 发表于 2017-2-20 16:52:08 | 显示全部楼层
mon51 发表于 2017-2-18 14:04
一个扇区是4K,分成16个页。一次最大只能写入256个字节。等待写完,再写下一个页。。。。

  那第二个问题呢,能回答一下吗?
  我的理解是写入地址,这个地址可以是  0~128/8*1024*1024中的任意一个数, 然后对该数/4096就确定了相应的扇区,总共是有4096个扇区,然后在W25QXX_Erase_Sector函数中,将传入的参数*4096就确定相应的扇区起始地址,这个4096个扇区是人为定义的,而在程序中只是识别相应的24位地址。所以block没啥意义,只是人为定义的,是这样吗?请指教。
回复

使用道具 举报

11

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2016-3-16
在线时间
15 小时
发表于 2017-3-22 18:30:41 | 显示全部楼层

我现在把用户RFID的卡号和密码全部事先存入W25Q128中,当有卡进入RC522的天线区域内时读取卡号和事先存储的所有卡号进行对比,
现在我不太明白怎么样寻找flash中和读到的卡号一样的卡号
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2017-1-5
在线时间
52 小时
发表于 2017-7-18 10:13:19 | 显示全部楼层
252290923 发表于 2017-3-22 18:30
我现在把用户RFID的卡号和密码全部事先存入W25Q128中,当有卡进入RC522的天线区域内时读取卡号和事先存储 ...

存在哪里 就从哪里读 比如存的地址从100 开始, 读的时候就从100开始读
你站在桥上看风景 看风景的人在楼上看你
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-19 00:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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