一丶协议分析

这两种芯片都是programming through SPI,烧录要用到的引脚有

SPI_MOSI_Port :数据输入;

SPI_MISO_Port :数据输出;

SPI_SCLK_Port :时钟;

SPI_CS_Port :从器件使能信号,低电平有效;

SPI_RESET_Port  :复位信号,低电平有效;

SPI_PROG_Port :使能烧录,使用时根据不同的芯片拉高至具体的voltage。

以下是传输时序图:

nRF24LE1/nRF31512烧录驱动开发-LMLPHP

       SPI read operation for direct and addressed command

nRF24LE1/nRF31512烧录驱动开发-LMLPHP   

    SPI write operations for direct and addressed commands

各个标志含义如下:

Cx :SPI Command bit;

Ax :OTP address. Sequence MS to LS byte, MS to LS bit;

Dx :SPI data bit, Sequence LS to MS byte, MS to LS bit.
Presence depending on SPI command。

二丶烧录流程

需要注意的是:

  a)nRF31512属于OTP芯片,支持write&read,每个bit只能写一次,烧录原理就是例如默认值是0xFF时,给对应bit写0将数据到烧录芯片;

  b) nRF24LE1的memory为flash,支持write&erase&read。

read operation

在读的功能上两者操作流程是一样的

  1. 给VDD和PROG pin 脚上电至3.0V ;
  2. 支持整块的读取

    a)   
SPI_CS_Port拉低,使能从器件;

    b)   
Issue READ command 0x03;

    c)   
Issue 2个字节的base_address ,高位在前,地位在后;

    d)   
获取SPI_MISO_Port 上的数据;

    e)   
SPI_CS_Port拉高,释放从器件。

写数据时两者在 PROG voltage上是有差别的,nRF24LE1在读数据时仍为3.0V,而nRF31512需要将它拉高至6.35V,要注意一定要确认电压已经稳定升至6.35V左右才开始送数据,不然会出现前面部分数据无法烧录进去的问题,如果前面的数据没有写进去,别担心,对于OTP芯片烧录的原理,只要是非0的bit就还可以进行烧写,也可用这个原理去进行调试。

It
is possible to write up to 1 kB in one PROGRAM
command.资料的这句话表示了我们最大可设置每个bank_size 为 1K。

For nRF24LE1

1.write
operation

  1. 给VDD和PROG pin 脚上电至3.0V,稳定后执行后面的操作;
  2. 支持bank的读取

    a)      
SPI_CS_Port拉低,使能从器件;

    b)      
Issue WREN command 0x06,Set memory write
enable latch.;

    c)      
Issue 2个字节的base_address ,高位在前,地位在后;

    d)      
Issue 1个bank的数据,每个bank的数据送出去以后,跳到b)循环执行,直到所有的bank数据都送完;

    e)      
Issue WRDIS command 0x04,Reset memory write
enable latch。

    f)       
SPI_CS_Port拉高,释放从器件;

For nRF31512

1.write operation

  1. 给VDD脚上电至3.0V,PROG pin 上电至6.35,稳定后执行后面的操作;
  2. 支持bank的读取

    a)      
SPI_CS_Port拉低,使能从器件;

    b)      
Issue WREN command 0x06,Set memory write
enable latch.;

    c)      
Issue 2个字节的base_address ,高位在前,地位在后;

    d)      
Issue 1个bank的数据,每个bank的数据送出去以后,跳到b)循环执行,直到所有的bank数据都送完;

    e)      
Issue WRDIS command 0x04,Reset memory write
enable latch;

    f)       
SPI_CS_Port拉高,释放从器件。

   2.Erase operation

  1. 给VDD和PROG pin 脚上电至3.0V,稳定后执行后面的操作;

  a)  SPI_CS_Port拉低,使能从器件;

  b)   
Issue ERASE_ALL command 0x62, Erase all pages.;

  c)   
Issue WRDIS command 0x04,Reset memory write
enable latch;

  d)   
SPI_CS_Port拉高,释放从器件。

05-11 17:39