4001|2

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请仙人指路! LPC1114 与外部flash SST25配置的相关问题 [复制链接]

我是这样配置SPI的:
void SPIInit()
{
  uint8 i;
  //LPC_SYSCON->PRESETCTRL &= (0x01<<0);
  //for(i=0; i<100; i++);

  LPC_SYSCON->PRESETCTRL      |= (0X01<<0);                          //禁止SSP复位
  LPC_SYSCON->SYSAHBCLKCTRL   |= (1<<11);         //使能SSP时钟
  LPC_SYSCON->SSP0CLKDIV       = 0X02;                          //设置SSP分频值
  LPC_IOCON->SCK_LOC           = 0x02;         //选择P0.6为SSP时钟功能
  //LPC_SSP0->CR0 = 0x0707;
  LPC_SSP0->CR0 = (0x07<<0)|           //每帧数据长8位
                   (0x00<<4)|           //设置帧格式为SPI
                         (0x01<<6)|           //空闲时SCK为高电平有效
                (0x01<<7)|           //数据在SCK第2个时钟沿采样
                (0X00<<8);           //设置SCR串行时钟速率SPI时钟分频
  
                                    
  LPC_SSP0->CR1 = (0x00<<3)|           //从机输出使能
                  (0x00<<2)|           //SSP为主机模式
               (0x01<<1)|           //使能SSP
                       (0x00<<0);           //不使用回写模式
  LPC_SSP0->CPSR = 0x2;                   //PCLK分频值
  LPC_SSP0->ICR  = 0X03;                   //中断清除寄存器                                                                           
}

主函数是这样测试的:
main
{
uint8 a[20],b[20];
SSTF016B_Erase(0, 511);
    for(i=0;i<10;i++)
   {
                  a=i;

  }
   
        SSTF016B_WR(0x00,a,10);
  
  while(1)
  {
     
       
         //SendByte(sign);
   
        //SendByte(sign);
        SSTF016B_RD(0x00, 10,b);
        //SendByte(sign);
        for(i=0;i<10;i++)
        {
          Delay(1000000);

          SendByte(b);
        }
    Delay(1000000);
}       
}
读出来的数据全是FF,这些程序曾经正常工作过也正常使用过一段时间,但现在不知怎么回事就不行了,以为是新编写的程序与其有冲突
但把其余所有程序注释掉之后还是不行,以为是flash芯片坏了但换过后还是不行,哪位高人曾遇到过这种或类似的问题,给小弟指点一二
不胜感激

先谢过了
注:
flash SST25的擦出,读,写函数是正确的
此帖出自NXP MCU论坛

最新回复

读出FF说明擦除和读取成功了,但是没有写入成功。可以尝试检查写函数,即SSTF016B_WR。 每次写入或者擦除等有更改的操作之前都要WREN的,即置写入使能。还有可以看下WP引脚是不是写保护状态。貌似你也是用Keil嘛~终于找到不是周公,不是那个EclipseIDE的啦~ 还有种可能是没有检验WIP位,即擦除后可能芯片在忙,无法响应写入的请求。 M0有附带的SSP程序,可以参考的。 [ 本帖最后由 elulis 于 2010-11-22 01:30 编辑 ]  详情 回复 发表于 2010-11-22 01:28
点赞 关注
 

回复
举报

327

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
读出FF说明擦除和读取成功了,但是没有写入成功。可以尝试检查写函数,即SSTF016B_WR。
每次写入或者擦除等有更改的操作之前都要WREN的,即置写入使能。还有可以看下WP引脚是不是写保护状态。貌似你也是用Keil嘛~终于找到不是周公,不是那个EclipseIDE的啦~
还有种可能是没有检验WIP位,即擦除后可能芯片在忙,无法响应写入的请求。
M0有附带的SSP程序,可以参考的。

[ 本帖最后由 elulis 于 2010-11-22 01:30 编辑 ]
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
经过一番痛苦的挣扎,终于发现问题所在,在设置SPI速率的问题上出现了错误,小弟参考了绝大部分周工提供的SSP设置,下面那段程序,把其中的SSP分频值改为1就行了,具体什么缘由,由于时间紧迫还没来得及研究,等出国产品有时间了再搞吧...
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表