子鱼 发表于 2014-3-25 12:24:15

lpc1768是否支持镁光N25Q512芯片?

lpc1768是否支持镁光N25Q512芯片?

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

aozima 发表于 2014-3-25 12:34:30

SPI NOR FLASH,可以支持的。

子鱼 发表于 2014-3-25 13:43:33

aozima 发表于 2014-3-25 12:34
SPI NOR FLASH,可以支持的。

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

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

ST_ATMEL_NXP 发表于 2014-3-25 13:48:15

N25Q512!!!!!!都有这货了?64MB的NOR存储器???什么价格?量产了吗?

aozima 发表于 2014-3-25 13:56:26

子鱼 发表于 2014-3-25 13:43
在看官网提供的例程 有点复杂呢

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

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

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

ST_ATMEL_NXP 发表于 2014-3-25 13:59:32

aozima 发表于 2014-3-25 13:56
总共8个脚,4线SPI。
你给我说说哪里复杂了?



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

子鱼 发表于 2014-3-25 14:13:48

ST_ATMEL_NXP 发表于 2014-3-25 13:48
N25Q512!!!!!!都有这货了?64MB的NOR存储器???什么价格?量产了吗?

看官方已经量产了

子鱼 发表于 2014-3-25 14:14:38

aozima 发表于 2014-3-25 13:56
总共8个脚,4线SPI。
你给我说说哪里复杂了?



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

子鱼 发表于 2014-3-25 14:15:12

只是为了存储数据 其他的用不到呢

aozima 发表于 2014-3-25 14:46:13

子鱼 发表于 2014-3-25 14:14
没用过4线的spi 只用过标准的miso mosi的那种 所以有点迷茫了

4线SPI = SCK+MOSI+MISO+CS

子鱼 发表于 2014-3-25 17:08:24

aozima 发表于 2014-3-25 14:46
4线SPI = SCK+MOSI+MISO+CS

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

aozima 发表于 2014-3-25 18:31:10

子鱼 发表于 2014-3-25 17:08
我看到时序图上面有D0,D1《D2《D3 那么应该是8线制?

那叫 quad SPI

nongxiaoming 发表于 2014-3-25 18:52:11

这个LPC1768是没有SPIFI的,有的就是普通的四线SPI而已。

子鱼 发表于 2014-4-1 14:10:53

nongxiaoming 发表于 2014-3-25 18:52
这个LPC1768是没有SPIFI的,有的就是普通的四线SPI而已。

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

nongxiaoming 发表于 2014-4-2 09:42:07

子鱼 发表于 2014-4-1 14:10
使用普通的四线spi 能满足要求么 只是存数据 可以实现么?

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

hpdell 发表于 2017-3-18 12:06:18

本帖最后由 hpdell 于 2017-3-18 12:49 编辑

子鱼 发表于 2014-3-25 13:43
在看官网提供的例程 有点复杂呢

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

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

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

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

子鱼 发表于 2017-3-18 14:06:40

hpdell 发表于 2017-3-18 12:06
你好,我现在也在调试这个,但是一直都没有调出来,

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

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

hpdell 发表于 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 = {0xFF, 0x55};

QSPI_WorkMode = 0;

if(QSPI_Read_SR(READ_ENHANCED_VOL_CFG_REG_CMD, &_RegVal, 1) != QSPI_OK )   // read reg 0x65
{
    return QSPI_ERROR;
}

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










页: [1]
查看完整版本: lpc1768是否支持镁光N25Q512芯片?