Table of Contents

Introduction

Starting from version 14.1.0, this SDK supports developing for the nRF52810 SoC on the PCA10040 board, which uses nRF52832. The nRF52810 IC is a subset of the nRF52832 with smaller RAM and flash, and with less peripheral resources. Therefore, you can use nRF52832 to emulate the functionality of nRF52810.

For detailed information on the SoC, see nRF52810 Product Specification.

See nRF52 Series comparison for a detailed comparison of the features of the various nRF52 Series chips.

You can use the SDK to develop your own applications for nRF52810. A dedicated development kit for nRF52810 is not available, but this SDK provides you with emulated projects, located in the 'pca10040e' folder. You can run these projects on an nRF52832 based PCA10040 and use them as a starting point for nRF52810 development. The emulated projects are available for the following examples:

  • Hardware peripheral examples:

    • UART
    • SAADC
  • Most BLE peripheral examples
  • Direct Test Mode (DTM)

You can also create a similar emulated project for any other example, as long as it is compatible in terms of used peripherals. See Creating your own emulated project.

Additionally, in some cases, a small hardware modification might be required on the PCA10040 board. See Hardware emulation of nRF52810.

This approach has certain limitations, as some features cannot be effectively emulated in this way. See Limitations.

Hardware emulation of nRF52810

Due to a slightly different architecture of the COMP module, in special cases it is necessary to introduce a manual hardware change before using PCA10040 for nRF52810 development. If you want to use VDD/2 as analog input on the AIN7 pin of nRF52810, you must create a voltage divider and set it up according to the following figure.

Recommended setup of the voltage divider circuit

Limitations

The following features of nRF52810 cannot be fully emulated using an nRF52832 Development Kit (PCA10040) with this SDK:

Differences nRF52832 nRF52810
SPIM: RXD.MAXCNT 8-bit 10-bit
SPIM: TXD.MAXCNT 8-bit 10-bit
SPIS: RXD.MAXCNT 8-bit 10-bit
SPIS: TXD.MAXCNT 8-bit 10-bit
TWIM: RXD.MAXCNT 8-bit 10-bit
TWIM: TXD.MAXCNT 8-bit 10-bit
TWIS: RXD.MAXCNT 8-bit 10-bit
TWIS: TXD.MAXCNT 8-bit 10-bit
UARTE: RXD.MAXCNT 8-bit 10-bit
UARTE: TXD.MAXCNT 8-bit 10-bit

Software emulation of nRF52810

All SDK examples for nRF52810 are configured to be run on the nRF52 Development Kit, which uses nRF52832 (PCA10040). These examples use an emulated project that is stored in the 'pca10040e' folder. All examples that are hardware compatible can be set up to emulate nRF52810 on nRF52832, even though the emulated project is not available for all of them. Hardware compatibility means that a project uses only the resources present in nRF52810, including peripherals and memory.

Note
The example projects located in the 'pca10040e' folder include all Errata workarounds for nRF52832.

Creating your own emulated project——这一条很重要!

If the emulated project is not available for the example you need, then complete these steps to emulate the nRF52810 SoC.

Converting a standard PCA10040 project to an emulated project
  1. Open the example project for your IDE.
  2. In the project settings, change to device "NordicSemiconductor->nRF52810_xxaa".
  3. In the C/C++ preprocessor settings, remove the defines "NRF52" and "NRF52832_XXAA".
  4. Add the preprocessor define "NRF52810_XXAA".
  5. In the linker script settings, adjust the linker script to match the maximum RAM and flash size of nRF52810.
    • ROM END: 0x2FFFF
    • RAM END: 0x20005FFF
  6. Remove the following files from the project: <compiler>_startup_nrf52.s and system_nrf52.c.
  7. Add the following files to the project: <compiler>_startup_nrf52810.s and system_nrf52810.c.
  8. Add the DEVELOP_IN_NRF52832 define to the compile flags. Adding this define will add extra code in SystemInit handling the Errata workarounds needed for nRF52832. This will result in an increase in flash usage and a longer startup time.

Transferring the project to nRF52810 hardware

If you have already developed your application starting from the standard PCA10040 project, follow this procedure to reconfigure your project before it can be transferred and run natively on nRF52810.

Note
As part of this procedure, you must change the BSP to the one matching your custom board. See Using the SDK with other boards.

Transferring a PCA10040 project to nRF52810 SoC
  1. Open the example project for your IDE.
  2. In the project settings, change to device "NordicSemiconductor->nRF52810_xxaa".
  3. In the C/C++ preprocessor settings, remove the defines "NRF52" and "NRF52832_XXAA".
  4. Add the preprocessor define "NRF52810_XXAA".
  5. In the linker script settings, adjust the linker script to match the maximum RAM and flash size of nRF52810.
    • ROM END: 0x2FFFF
    • RAM END: 0x20005FFF
  6. Remove the following files from the project: <compiler>_startup_nrf52.s and system_nrf52.c.
  7. Add the following files to the project: <compiler>_startup_nrf52810.s and system_nrf52810.c.

Transferring emulated project

Transferring an emulated project to the nRF52810 SoC

If you have developed your application using the emulated project as a starting point, there is only one step you need to perform before you can run it natively on nRF52810: In your IDE, remove the DEVELOP_IN_NRF52832 define from the compile flags.


Documentation feedback | Developer Zone | Subscribe | Updated 2018-11-16
 
转载自:https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/nrf52810_user_guide

Developing for nRF52810(转载)的更多相关文章

  1. GJM :异步Socket [转载]

    原帖地址:http://blog.csdn.net/awinye/article/details/537264 原文作者:Awinye 目录(?)[-] 转载请原作者联系 Overview of So ...

  2. Coursera课程下载和存档计划[转载]

    上周三收到Coursera平台的群发邮件,大意是Coursera将在6月30号彻底关闭旧的课程平台,全面升级到新的课程平台上,一些旧的课程资源(课程视频.课程资料)将不再保存,如果你之前学习过相关的课 ...

  3. [转载] what's goole mock

    原文: https://code.google.com/p/googlemock/wiki/V1_7_ForDummies 地址被墙了, 看起来费劲, 转载一份 Google C++ Mocking ...

  4. 版本控制Subversion TortoiseSVN apache VisualSVN笔记(转载)

    转载于http://blog.sina.com.cn/s/blog_6b94d5680101m7ah.html Subversion(简称svn)是近年来崛起的版本管理软件,是cvs的接班人.目前,绝 ...

  5. (转载)Android开发者必知的开发资源

    (转载)http://www.importnew.com/3988.html 随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮.如果您是一位2013 ...

  6. (转载)Mac和iOS开发资源汇总—更新于2013-07-19

    (转载)http://beyondvincent.com/2013/07/18/resources-for-mac-and-ios-developers/ 小引 本文主要汇集一些苹果开发的资源,会经常 ...

  7. [转载]10 Best Tools For Websites And Apps Development Ever

    转载自: http://www.websurfmedia.com/10-best-tools-for-websites-and-apps-development-ever/   The world i ...

  8. [转载]Android开发必备的21个免费资源和工具

    转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...

  9. [转载]Getting Started with ASP.NET vNext and Visual Studio 14

    说在转载之前的话:ASP.NET框架之前不断做大,而vNext则是从头开始,对ASP.NET框架进行拆分并瘦身,面对不同的需求而更加灵活,各个拆分出来的模块更加轻量.vNext的出现,对ASP.NET ...

随机推荐

  1. Net Core免费开源分布式异常日志收集框架Exceptionless

    asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 https://www.cnblogs.com/yilezhu/p/9193723.htm ...

  2. MapReduce错误之Error: java.lang.RuntimeException: java.lang.NoSuchMethodException的解决方法

    今天跑MapReduce项目的时候遇到了这个问题,日志如下所示: // :: DEBUG ipc.ProtobufRpcEngine: Call: getDiagnostics took 19ms E ...

  3. thymeleaf中th:attr用法以及相关的thymeleaf基本表达式

    额,有人写的很好,我直接搬了 thymeleaf中th:attr用法 1.写死的单个属性值添加 th:attr="class=btn" 2.写死的多个属性值添加 th:attr=& ...

  4. jquery阻止网页中右键的点击

    <body onmousedown="whichElement(event)"> </body> function whichElement(e) { if ...

  5. MySQL连表Update修改数据

    设想两张表,如下 table A field id field name table B field id filed my_name 现在希望将表B中的my_name中的内容“拷贝”到表A中对应的n ...

  6. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)

    除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...

  7. 前端APP打包管理规范

    1.包命名规范1)说明打包人:姓名拼音首字母小写 dev:开发环境 test:测试环境 pre:预发布环境 prod:正式环境 例如:版本号:1.2.3,说明:第一个数字大版本:变更框架.调整结构时变 ...

  8. LoadRunner使用(2)

    一.基础函数 在VU左边导航栏中,有三个LoadRunner框架函数,分别是Vuser_init(),Action(),vuser_end().这三个函数存在于任何Vuser类型的脚本中. vuser ...

  9. asterisk-java ami2 事件监听

    asteriskServer文章1提到啦怎么获取,就不解释 asteriskServer.addChainListener(new AsteriskeventListenerInit());//整个服 ...

  10. LeetCode House Robber 家庭劫犯(dp)

    题意:有一个整数序列,从中挑出一些数字,使得总和是最大,前提是,相邻的两个数字中只能挑其一.比如1 2 3 就只能挑2或者1和3. 思路:很直观的题,dp思想.降低规模,从小规模开始考虑.如果只有两个 ...