nRF24LE1/nRF31512烧录驱动开发

一丶协议分析

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

SPI_MOSI_Port :数据输入;
SPI_MISO_Port :数据输出;
SPI_SCLK_Port :时钟;
SPI_CS_Port :从器件使能信号,低电平有效;
SPI_RESET_Port  :复位信号,低电平有效;
SPI_PROG_Port :使能烧录,使用时根据不同的芯片拉高至具体的voltage。

以下是传输时序图:

 

       SPI read operation for direct and addressed command

 

    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拉高,释放从器件。

 

posted @ 2017-08-23 14:28  大白菜菜pp  阅读(1255)  评论(0编辑  收藏  举报