一起学nRF51xx 15 - spis

前言

SPIS是一个从SPI,它与EasyDMA一起支持与外部的主SPI超低功耗串行通信。EasyDMA使得SPIS交互无需CPU的介入。在提高数据传输效率的同时还减轻了CPU的负担。

一起学nRF51xx 15 - spis_第1张图片

SPIS即是SPI从模式,但它比stm32中直接将spi设置为从模式不同的是它硬件绑定了DMA功能。本节我们将用STM32开发板通过spi接口发送数据给NRF51822并把接收到的数据通过串口打印出来,程序中用到的引脚: 1) CS--P0.12 2)SCK--P0.13 3)MISO--P0.14 4)MOSI--P0.15。

一起学nRF51xx 15 - spis_第2张图片

一起学nRF51xx 15 - spis_第3张图片

一起学nRF51xx 15 - spis_第4张图片

一起学nRF51xx 15 - spis_第5张图片

一起学nRF51xx 15 - spis_第6张图片

一起学nRF51xx 15 - spis_第7张图片

一起学nRF51xx 15 - spis_第8张图片

示例详解

基于硬件平台:nrf51822ek_tm开发板。

 

一起学nRF51xx 15 - spis_第9张图片

本示例所用的最小系统板原理图:

一起学nRF51xx 15 - spis_第10张图片

一起学nRF51xx 15 - spis_第11张图片

一起学nRF51xx 15 - spis_第12张图片

 

    1. 工程创建:
      1. 打开KEIL,新建一个空工程:Project->NewuVisionProject

一起学nRF51xx 15 - spis_第13张图片

工程名为nrfxx-spis确认后按下图选择芯片为nrf51822_xxAA->ok

一起学nRF51xx 15 - spis_第14张图片

在弹出的对话框中勾选CMSIS中的CORE;Device中的Startup(后面有nrf51Series字样的);在nrf_device中勾选nrf_gpio, nrf_uart, nrf_spis, nrf_delay,nrf_err并在nrf_Libraries中勾选app_error,nrf_assert模块。

 

一起学nRF51xx 15 - spis_第15张图片

一起学nRF51xx 15 - spis_第16张图片

 

 

OK之后工程自动生成如下代码:

一起学nRF51xx 15 - spis_第17张图片

新建一个空白文档,保存为main.c,并加入工程中:

一起学nRF51xx 15 - spis_第18张图片

一起学nRF51xx 15 - spis_第19张图片

一起学nRF51xx 15 - spis_第20张图片

配置工程,选择使用MicroLIB库,可以减小程序体积:

一起学nRF51xx 15 - spis_第21张图片

加入NRF51定义,并选择化等级3,可以减小程序体积,但仿真运行时可能会出现与代码顺序不一致现象:

 

一起学nRF51xx 15 - spis_第22张图片

调试工具选择J-LINK,并将接口设置为SW口勾选下载程序后自动复位及运行:

 

一起学nRF51xx 15 - spis_第23张图片

一起学nRF51xx 15 - spis_第24张图片

一起学nRF51xx 15 - spis_第25张图片

 

    1. 工程代码
      1. OK之后在man.c中加入如下代码:

一起学nRF51xx 15 - spis_第26张图片

一起学nRF51xx 15 - spis_第27张图片

一起学nRF51xx 15 - spis_第28张图片

 

 

一起学nRF51xx 15 - spis_第29张图片

      SPI主机用一个STM32开发板模拟,对应的程序源码在工程文件夹中的stm32_spim文件文件夹中,连接好STM32开发板和nrf51开发板:

一起学nRF51xx 15 - spis_第30张图片

分别下载对应的程序,可以看到NRF51822开发板上的串口助手中打印了以下输出内容:

一起学nRF51xx 15 - spis_第31张图片

通过逻辑分析仪也可以发现STM开发板成功发出了相应的数据

一起学nRF51xx 15 - spis_第32张图片

关于nrf51xx及flash的更详细介绍可以参看《nRF51822_RM_v3.0.1.pdf》或https://infocenter.nordicsemi.com/index.jsp。

 

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,会有不定期技术干货推出!!

文中源码资料下载,在公众号里给十三发消息:

下载|一起学nRF51xx 15

一起学nRF51xx 15 - spis_第33张图片

 

关注十三公众号

 

你可能感兴趣的:(nrf5x)