免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6374 | 回复: 22

g-bios support S3C6410 NOR Flash [复制链接]

论坛徽章:
0
发表于 2010-09-20 10:45 |显示全部楼层
本帖最后由 voidjackjiang 于 2010-09-20 10:47 编辑

Description:
    实现g-bios对S3C6410 NOR Flsah的支持

Team member:
    Camel Luo、KunKa Lu、Baker

论坛徽章:
0
发表于 2010-09-20 20:41 |显示全部楼层
编写了NORFLASH的nor_read_id()、nor_read()、nor_erase()函数,但是SPI总线还没能实现API.

论坛徽章:
0
发表于 2010-09-22 18:54 |显示全部楼层
完成page_program()函数.
spi接口仍旧没能调通.

论坛徽章:
0
发表于 2010-09-27 21:57 |显示全部楼层
这两天一直在编译linux内核,包括今天早上,不过状态很不错,遇到的几个问题都顺利的解决了(usb不能挂载,iso文件不能挂载和一些文件名乱码)。中午把ldm2写了一遍,但是没有什么感觉,请教了好几位同学才写了出来。下午和晚上都是各个小组之间互相交流前段时间做项目的总结。由于我们组(nor flash)和spi组一直都卡在state register中有数据接受到但读出来全部是0这个地方,所以就没有什么好说的了。
从明天开始继续做nor flash。不过本人觉得还是大家一起把spi做好,正确读取出nor flash的id,才能继续做nor flash的工作了。要不然写再多的代码也没有用。

论坛徽章:
0
发表于 2010-09-27 23:42 |显示全部楼层
本帖最后由 liqunfeifei 于 2010-09-28 00:02 编辑

Today, I tested the spi bus with the "JEDEC ID" command of norflash.
I tryed to switch the spi controller to manual mode instead of auto mode. But the rx fifo received nothing, again.
Honestly, I can't figure out the value of NCS_TIME_COUNT in CS_REG register. And I tryed many different numbers,but it dosen't work.

论坛徽章:
0
发表于 2010-09-28 22:01 |显示全部楼层
今天晚上终于有所进展,由Baker Feng 把NORFLASH的JEDEC_ID读出来了。发现NORFLASH的I/O方式与NANDFLASH有很大的不同,NORFLASH似乎是在一个clock周期里,先后完成了从缓冲区发送一个bit数据以及从缓冲区接收一个bit数据的过程. 明天应该能把NORFLASH其它的一些操作完成.

论坛徽章:
0
发表于 2010-09-28 22:04 |显示全部楼层
Baker把NORFLASH ID 读出来了,我今天基本上没有什么进展

论坛徽章:
0
发表于 2010-09-29 00:17 |显示全部楼层
本帖最后由 liqunfeifei 于 2010-09-30 01:05 编辑

spi nor flash已经可以执行读指令。目前采用手动片选的方式传输数据。
整个调试的过程泥泞坎坷、充满疑惑,不愿意相信任何一个寄存器的默认值,调通之后才豁然开朗。其中有几个值得注意的地方,也是一直牵绊我们的地方:
1. SPI总线是以数据交换的方式进行通信。每一个时钟周期内master和slave必定会发出并且接收到1bit的数据。也就是说,如果同时使能rx fifo和tx fifo,rx fifo收到数据的数量将等于tx fifo发出数据的数量。因此,master发出指令之后需要继续发送数据以换得slave传回的数据。
2. 片选信号的低电平和高电平控制一次指令执行的起始和结束。所以,为保证片选使能之后第一个周期就能发送有效的指令,需要先将指令存入fifo再执行片选。
3. 不知道这块芯片接在SPI总线的channel0还是channel1,还有不清楚其他一些寄存器的值。只有试了。不过到最后它们看上去都变得很自然。

接下来我们的工作可以分成两部分。一是尝试用auto方式传输数据,也许这种方式能大量简化操作;二是根据现有的操作方式完善api,完成page program和sector erase等方法,最终把nor flash注册到flash子系统。

##更正:
前面第二点有错误.片选信号确实是控制指令的起始和结束,尤其是某些指令结束后必须及时把片选拉高.但是,似乎决定数据交换的时钟信号只是在发送数据时才产生.因此先片选,再发送数据到rx fifo也能成功执行指令.而且这样更符合使用习惯,也使代码实现更方便.

论坛徽章:
0
发表于 2010-09-30 01:07 |显示全部楼层
我们尝试了几乎所有的read命令,都能顺利执行。但是打开写保护标志位(WEL)的命令不能被执行,以至于page program、erase等写命令不能使用。
我注意到nor flash的/WP引脚是和写保护标志位相关的,但是6410板子的原理图没有画出nor flash,当然也没有画出/WP引脚的接法。我认为有必要拿万用表测一下这个引脚的状态(它是低电平有效)。今天没来得及做。

论坛徽章:
0
发表于 2010-09-30 10:05 |显示全部楼层
昨天相对前天来说没有什么新的进展,对NORFLASH进行READ操作都已实现,关键就是SPI总线上面的/WP PIN与NORFLASH的WRITE ENABLE操作相关, /WP PIN似乎默认把NORFLASH 进行写保护了。现在在S3C6410的DATASHEET上面暂时找不到如何控制/WP PIN的方法,还在进一步探讨中 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP