|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
求助 关于K9F5608U0C闪存的读写程序 |
作者:temp2003 栏目:技术交流 |
我刚接触闪存, 在测试过程中发现 芯片的R/B 一直是低电平 也就是说 一直处于 BUSY状态 读出的数据一直是00H 使用复位命令也没有效果 不知道是什么原因 硬件部分好像是没问题 可能是我编的软件有没有问题 各位有做过闪存编程的,方便的话,给我参考下你们的程序 感激不尽 邮箱: guanglv2005@163.com CPU用的ST的UPSD3234 设置比较复杂 我察看了upsd对各个端口的写状态都对 就是R/B一直是忙状态 郁闷 我写的复位程序如下: void k9f_reset () { int TEMP; // start pa4=cle=0 pa3=ce=1 pa6=we=1 pa5=ale=0 pa2=re=1 // pa= 1100 1111 bin = CFH PSD8xx_reg.DATAOUT_A = 0xCF; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 2 pa4=cle=1 pa3=ce=0 pa6=we=0 pa5=ale=0 pa2=re=1 // pa= 1001 0111 bin = 97H PSD8xx_reg.DATAOUT_A = 0x97; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} XBYTE[FLASHWEAdd] = COMRESET; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 3 pa7=mwp=1 pa6=we=1 pa5=ale=1 pa4=cle=0 pa3=ce=0 pa2=re=1 pa1=mrb=1 pa0=cscan=1 // pa= 1110 0111 bin = E7H PSD8xx_reg.DATAOUT_A = 0xE7; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} } |
2楼: | >>参与讨论 |
作者: cxc51 于 2005/6/27 16:32:00 发布:
我只用51操作过K9F6408 注意时序就可以了。 |
3楼: | >>参与讨论 |
作者: 扬欣电子 于 2005/6/27 17:02:00 发布:
顺便请教楼上 FLASH芯片(如:K9F6408)的电压是3.3V的,可以与51直接连接吗?是否51芯片也要选用3.3V的工作电压的?? |
4楼: | >>参与讨论 |
作者: temp2003 于 2005/6/27 19:23:00 发布:
应该可以用5V的 我是直接连5V的系统的 除了闪存芯片电源供电部分 有地方好像是这么用的 不过这么连接后闪存的电压都上到了4V :( 系统正在调试中, 还不能工作 R/B状态已经正常了 , 硬件部分忘了加阻容了 时序估计还有点问题 |
5楼: | >>参与讨论 |
作者: 扬欣电子 于 2005/6/27 19:59:00 发布:
谢谢回答。 是不是可以这样认为:51的电源是5V的,FLASH的电源是3.3V的,当然两者是共地的,FLASH芯片的数据(地址)线以及控制线直接与51的IO口连接,用51来读写FLASH。 我就是当心,会不会因51IO口的电压太高而烧坏FLASH,没有做过,所以总觉的是不是会不会有问题。 |
6楼: | >>参与讨论 |
作者: temp2003 于 2005/6/27 20:07:00 发布:
我的软件还没写好 不过根据现在的状态判断,应该是没烧坏 |
7楼: | >>参与讨论 |
作者: temp2003 于 2005/6/27 21:18:00 发布:
可以肯定了 5V可用 刚已经读出了DEVICE Code 了 不过Marker Code 还不对 软件还有问题 ;) |
8楼: | >>参与讨论 |
作者: temp2003 于 2005/6/27 21:46:00 发布:
DEVICE Code 的问题解决了 :) |
9楼: | >>参与讨论 |
作者: temp2003 于 2005/6/27 21:51:00 发布:
感谢21IC 感谢大家 附上我写的读设备ID部分源代码 见笑了 由于是进行实验,程序写得很粗糙 , 还在改进中 各位同行 多提宝贵意见 UPSD3234的PA口必须一次写入数据,控制比较麻烦 unsigned CHAR k9f_readid ( unsigned CHAR n ) { unsigned CHAR TEMPCHAR; int TEMP; PSD8xx_reg.DIRECTION_B=0xff; // start pa4=cle=0 pa3=ce=1 pa6=we=1 pa5=ale=0 pa2=re=1 // pa= 1100 1111 bin = CFH PSD8xx_reg.DATAOUT_A = 0xCF; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 2 pa4=cle=1 pa3=ce=0 pa6=we=0 pa5=ale=0 pa2=re=1 // pa= 1001 0111 bin = 97H PSD8xx_reg.DATAOUT_A = 0x97; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 2B pa4=cle=1 pa3=ce=0 pa6=we=0 pa5=ale=0 pa2=re=1 // pa= 1001 0111 bin = 97H PSD8xx_reg.DATAOUT_A = 0x97; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // XBYTE[FLASHWEAdd] = COMREADID; PSD8xx_reg.DATAOUT_B = COMREADID; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 3 pa7=mwp=1 pa6=we=1 pa5=ale=1 pa4=cle=0 pa3=ce=0 pa2=re=1 pa1=mrb=1 pa0=cscan=1 // pa= 1110 0111 bin = E7H PSD8xx_reg.DATAOUT_A = 0xE7; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 3B pa7=mwp=1 pa6=we=0 pa5=ale=1 pa4=cle=0 pa3=ce=0 pa2=re=1 pa1=mrb=1 pa0=cscan=1 // pa= 1010 0111 bin = A7H PSD8xx_reg.DATAOUT_A = 0xA7; // XBYTE[FLASHWEAdd] = 0x00; PSD8xx_reg.DATAOUT_B = 0x00; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 4 pa7=mwp=1 pa6=we=1 pa5=ale=0 pa4=cle=0 pa3=ce=0 pa2=re=1 pa1=mrb=1 pa0=cscan=1 // pa= 1100 0111 bin = C7H PSD8xx_reg.DATAOUT_A = 0xC7; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} PSD8xx_reg.DIRECTION_B=0x0; // 5 pa7=mwp=1 pa6=we=1 pa5=ale=0 pa4=cle=0 pa3=ce=0 pa2=re=0 pa1=mrb=1 pa0=cscan=1 // pa= 1100 0011 bin = C3H PSD8xx_reg.DATAOUT_A = 0xC3; //TEMPCHAR = XBYTE[FLASHREAdd]; TEMPCHAR = PSD8xx_reg.DATAIN_B; for ( TEMP=0 ; TEMP<200 ; TEMP++ ) {} // 6 pa7=mwp=1 pa6=we=1 pa5=ale=0 pa4=cle=0 pa3=ce=0 pa2=re=1 pa1=mrb=1 pa0=cscan=1 // pa= 1100 0111 bin = C7H PSD8xx_reg.DATAOUT_A = 0xC7; putmes(&TEMPCHAR,1);   |
10楼: | >>参与讨论 |
作者: 12864 于 2005/6/28 0:11:00 发布:
这么大的FLASH,得多少银子啊! |
11楼: | >>参与讨论 |
作者: cxc51 于 2005/6/28 13:57:00 发布:
6408才8M字节的 不会很贵的 |
12楼: | >>参与讨论 |
作者: temp2003 于 2005/6/29 14:41:00 发布:
K9F5608U0C K9F5608U0C闪存 是32M 的 忘了是35 还是 45 元钱 |
13楼: | >>参与讨论 |
作者: xwj 于 2005/6/29 18:20:00 发布:
今天到买PC外设的朋友那帮忙,看到128M的U盘才75元... |
14楼: | >>参与讨论 |
作者: 12864 于 2005/6/29 20:30:00 发布:
NAND FLASH这么便宜呀!那其他FLASH还有市场吗? 8M才20多,32M才45,这个价格比其他并行串行的FLASH合适多了! |
15楼: | >>参与讨论 |
作者: xxdcq 于 2005/7/1 11:28:00 发布:
能读出id未必读写程序对! 我现在遇到了 时序绝对没错,我用示波器测过! |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |