搜索
bottom↓
回复: 17

lpc1768是否支持镁光N25Q512芯片?

[复制链接]

出0入0汤圆

发表于 2014-3-25 12:24:15 | 显示全部楼层 |阅读模式
lpc1768是否支持镁光N25Q512芯片?

这两天在看N25Q的手册 驱动不好写。。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-3-25 12:34:30 | 显示全部楼层
SPI NOR FLASH,可以支持的。

出0入0汤圆

 楼主| 发表于 2014-3-25 13:43:33 | 显示全部楼层
aozima 发表于 2014-3-25 12:34
SPI NOR FLASH,可以支持的。

在看官网提供的例程 有点复杂呢

有没有类似的连接方式原理图呢 ?

出0入0汤圆

发表于 2014-3-25 13:48:15 | 显示全部楼层
N25Q512!!!!!!  都有这货了?64MB的NOR存储器???什么价格?量产了吗?

出0入0汤圆

发表于 2014-3-25 13:56:26 | 显示全部楼层
子鱼 发表于 2014-3-25 13:43
在看官网提供的例程 有点复杂呢

有没有类似的连接方式原理图呢 ?


总共8个脚,4线SPI。
你给我说说哪里复杂了?

很明显你不会用到XIP和QSPI功能。

出0入0汤圆

发表于 2014-3-25 13:59:32 | 显示全部楼层
aozima 发表于 2014-3-25 13:56
总共8个脚,4线SPI。
你给我说说哪里复杂了?

楼上的用过XIP和Qspi功能吗?用4350做过QSPI功能的,但是不稳定。

出0入0汤圆

 楼主| 发表于 2014-3-25 14:13:48 | 显示全部楼层
ST_ATMEL_NXP 发表于 2014-3-25 13:48
N25Q512!!!!!!  都有这货了?64MB的NOR存储器???什么价格?量产了吗?

看官方已经量产了

出0入0汤圆

 楼主| 发表于 2014-3-25 14:14:38 | 显示全部楼层
aozima 发表于 2014-3-25 13:56
总共8个脚,4线SPI。
你给我说说哪里复杂了?

没用过4线的spi 只用过标准的miso mosi的那种 所以有点迷茫了

出0入0汤圆

 楼主| 发表于 2014-3-25 14:15:12 | 显示全部楼层
只是为了存储数据 其他的用不到呢

出0入0汤圆

发表于 2014-3-25 14:46:13 | 显示全部楼层
子鱼 发表于 2014-3-25 14:14
没用过4线的spi 只用过标准的miso mosi的那种 所以有点迷茫了

4线SPI = SCK+MOSI+MISO+CS

出0入0汤圆

 楼主| 发表于 2014-3-25 17:08:24 | 显示全部楼层
aozima 发表于 2014-3-25 14:46
4线SPI = SCK+MOSI+MISO+CS

我看到时序图上面有D0,D1《D2《D3 那么应该是8线制?

出0入0汤圆

发表于 2014-3-25 18:31:10 | 显示全部楼层
子鱼 发表于 2014-3-25 17:08
我看到时序图上面有D0,D1《D2《D3 那么应该是8线制?

那叫 quad SPI

出0入0汤圆

发表于 2014-3-25 18:52:11 | 显示全部楼层
这个LPC1768是没有SPIFI的,有的就是普通的四线SPI而已。

出0入0汤圆

 楼主| 发表于 2014-4-1 14:10:53 | 显示全部楼层
nongxiaoming 发表于 2014-3-25 18:52
这个LPC1768是没有SPIFI的,有的就是普通的四线SPI而已。

使用普通的四线spi 能满足要求么 只是存数据 可以实现么?

出0入0汤圆

发表于 2014-4-2 09:42:07 | 显示全部楼层
子鱼 发表于 2014-4-1 14:10
使用普通的四线spi 能满足要求么 只是存数据 可以实现么?

可以的啊,这个完全没有问题的,这是两种模式兼容的。

出0入0汤圆

发表于 2017-3-18 12:06:18 | 显示全部楼层
本帖最后由 hpdell 于 2017-3-18 12:49 编辑
子鱼 发表于 2014-3-25 13:43
在看官网提供的例程 有点复杂呢

有没有类似的连接方式原理图呢 ?


你好,我现在也在调试这个,但是一直都没有调出来,

目前只能够读出 芯片的ID 号而已,读写数据始终都出错,也不知道是哪里出了问题

请问一下你的调试成功了没有啊 ??

出0入0汤圆

 楼主| 发表于 2017-3-18 14:06:40 | 显示全部楼层
hpdell 发表于 2017-3-18 12:06
你好,我现在也在调试这个,但是一直都没有调出来,

目前只能够读出 芯片的ID 号而已,读写数据始终都出 ...

调试成功了,写了一个帖子,可以参考一下:基于LPC1768读写两片N25Q256的原理与实现

出0入0汤圆

发表于 2017-3-18 14:35:57 | 显示全部楼层
本帖最后由 hpdell 于 2017-3-18 14:38 编辑
子鱼 发表于 2017-3-18 14:06
调试成功了,写了一个帖子,可以参考一下:基于LPC1768读写两片N25Q256的原理与实现  ...


你好,我以前使用的 N25Q256A 的这个芯片的程序已经没有问题了啊,

现在目前使用的是 N25Q512 这个芯片的,程序死活都没有搞定啊,曾经梦想着只是容量的不同,改个地址就可以了,

可现在一直都没有搞定啊,很纠结啊,如果有 N25Q512这个芯片的,可以发给我一下吧,

现在我的 这个 N25Q512 目前也设置为 4字节模式了,读取状态为也是显示是进入4字节模式了,quad 模式也进入,但是现在就是读写数据不行


进入 quad  模式:
/*
**************************************************************************************
函数名称:QSPI_Quad_Enter
函数功能:进入 QUAD 模式
返回值:QSPI_OK读取成功,其他值失败
**************************************************************************************
*/
QSPI_StaticTypeDef QSPI_Quad_Enter(void)
{
  
  uint8_t _RegVal[2] = {0xFF, 0x55};

  QSPI_WorkMode = 0;

  if(QSPI_Read_SR(READ_ENHANCED_VOL_CFG_REG_CMD, &_RegVal[0], 1) != QSPI_OK )   // read reg 0x65
  {
    return QSPI_ERROR;
  }
  
  if(_RegVal[0] == 0xDF)       // N25Q512A13640 芯片初始值 = 0xDF
  {   
//    _RegVal[0] &= 0x57;         // bit7=0,bit6=1 QUAD 模式, bit5 系统保留且必须设置为0,
    _RegVal[0] = 0x07;           // 0x17
                                 // bit3=0(VPP accelerator) Enabled
    if(QSPI_Write_SR(WRITE_ENHANCED_VOL_CFG_REG_CMD, &_RegVal[0], 1) == QSPI_OK)  // 设置为 QUAD 模式 reg 0x61
    {
      QSPI_WorkMode = 1;
      HAL_Delay(50);  // delay 50ms
      _RegVal[0] = 0xff;  
      
      QSPI_Read_SR(READ_ENHANCED_VOL_CFG_REG_CMD, &_RegVal[0], 1);     //  read reg 0x65 都回来的值为 0x07 ,说明 ok, 写入如读出的值一样
      printf("READ_VOL_CFG_REG_CMD 0x85 reg  =  0x%X \r\n", _RegVal[0] );
    }
  }
  else
  {
    printf("QSPI N25Qxx Chip Error  ... ... \r\n");
    return QSPI_ERROR;
  }
  
  printf("QSPI N25Qxx QSPI_WorkMode  = %d  ... ... \r\n", QSPI_WorkMode);
  return QSPI_OK;  
}


// 进入4字节模式
static uint8_t QSPI_EnterFourBytesAddress(QSPI_HandleTypeDef *hqspi)
{
#if   1
  uint8_t _RegVal;
  QSPI_CommandTypeDef s_command;

/* Initialize the command */
  
  /* Enable write operations */
  if (QSPI_WriteEnable(hqspi) != QSPI_OK)
  {
    return QSPI_WRITE_ENABLE_ERROR;
  }   
  
  if(QSPI_WorkMode)   // QUAD Model
    s_command.InstructionMode   = QSPI_INSTRUCTION_4_LINES;
  else
    s_command.InstructionMode   = QSPI_INSTRUCTION_1_LINE;
  
  s_command.Instruction       = ENTER_4_BYTE_ADDR_MODE_CMD;
  s_command.AddressMode       = QSPI_ADDRESS_NONE;
  s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
  s_command.DataMode          = QSPI_DATA_NONE;
  s_command.DummyCycles       = 0;
  s_command.DdrMode           = QSPI_DDR_MODE_DISABLE;
  s_command.DdrHoldHalfCycle  = QSPI_DDR_HHC_ANALOG_DELAY;
  s_command.SIOOMode          = QSPI_SIOO_INST_EVERY_CMD;

  /* Send the command */
  if (HAL_QSPI_Command(hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
  {
    return QSPI_ERROR;
  }  

  /* Configure automatic polling mode to wait the memory is ready */
  if (QSPI_AutoPollingMemReady(hqspi, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != QSPI_OK)
  {
    return QSPI_ERROR;
  }
  
  HAL_Delay(20);  // delay 20ms

  // 读取 0x70 状态,查看是否进入 4 Byte Address Mode
  QSPI_Read_SR(READ_FLAG_STATUS_REG_CMD, &_RegVal, 1);   // FLASH_4B_MODE_ENTER  = 0xB7,        /* enter 4-byte address mode */
  if(_RegVal & 1)
    printf("N25Q512A QSPI 已经进入 4 Byte Addr Mode  =  0x%X \r\n", _RegVal );
  else
    printf("N25Q512A QSPI 没有进入 4 Byte Addr Mode  =  0x%X \r\n", _RegVal );  
  
  
  
  return QSPI_OK;
}










回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 09:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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