前言

nRF51的ADC设计得比较简单,它有几个可配置的部分:

1)PSEL(pinselection):nRF51系列芯片有8个模拟输入通道,并且这几个脚是固定的,不能像GPIO那样可以重新映射。PSEL用来选择需要采集模拟电压的通道,当该通道被选中,引脚上的模拟电压将会输入到芯片内部。

对于QFN48引脚封装,ADC通道对应的引脚为:

2)INPSEL(inputselection):用来选择输入的信号源。信号源可以是VDD,也可以是AIN[n]引脚的输入。输入还可以是VDD和AIN[n]的1/3、2/3分压。

3)RES(resolution):ADC精度配置,可以配置成8BIT、9BIT、10BIT。

4)REFSEL(referenceselection):参考电压选择,可以选择内部VDD、外部AREF[n]、内部1.2VVBG。

5)EXTREFSEL(externalreferenceselection):外部参考电压选择,可选的有AREF1和AREF0。

本节介绍nRF51系列SOCAD转换器的使用。本例程把采集到的值通过串口打印输出。

示例详解

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

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

  1. 工程创建:

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

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

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

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

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

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

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

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

  1. 工程代码

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

把程序编译,可以看到串口助手中打印了以下输出内容:

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

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

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

下载|一起学nRF51xx 16

关注十三公众号

一起学nRF51xx 16 -  adc相关推荐

  1. 一起学nRF51xx 14 -  temp

    前言 温度传感器测量芯片DIE温度.通过触发START任务来启动TEMP.当温度测量完成后,一个数据将生成事件,并且可以从临时寄存器读取测量结果为了保证测量的准确性,必须在选择HFCLK晶体振荡器作为 ...

  2. 一起学nRF51xx 8 -  Time

    前言 Nrf518xx的TIMER有以下几部分组成(nrf51822有三个定时器--time0/1/2): 1)计数时钟源.有1M.16M 2种时钟源. 2)时钟源分频器.用来设置分频,范围是2的0- ...

  3. 一起学nRF51xx 23 -  s130蓝牙API介绍

    张十三 前言 通过前面的章节,我们学习了nrf51的蓝牙协议栈(S130)的基本使用,对S130协议栈的实现原理有了一定了解,也认识到了S130协议栈的强大,那么协议栈中的API接口具体是什么功能?各 ...

  4. 一起学nRF51xx 22 -  实现一个具体SVC调用功能的demo

    前言 上一节<一起学nRF51xx 21 -  蓝牙项目工程的初始化流程解读>讲到nordic的蓝牙协议栈是通过SVC来实现APP与协议栈之间通接口调用的,那么如何来实现一个具体SVC调用 ...

  5. 一起学nRF51xx 21 -  蓝牙项目工程的初始化流程解读

    前言 本节主要工作是对<一起学nRF51xx 20 -  移植SDK蓝牙例程>章节程序进行解读. 示例详解 基于硬件平台:nrf51822ek_tm开发板. 本示例所用的最小系统板原理图: ...

  6. 一起学nRF51xx 20 -  移植SDK蓝牙例程

    前言 Nordic公司为nRF51系列SOC提供有完整的开发SDK包,里面有大量的例程,通过学习官方例程并最终应用到自己项目工程中是一个比较高效的学习与项目开发技巧,本节将与大家一起完成蓝牙例程的移植 ...

  7. 一起学nRF51xx 19 -  移植SDK普通接口例程

    一起学nRF51xx 19 -  移植SDK普通接口例程 张十三 前言 Nordic公司为nRF51系列SOC提供有完整的开发SDK包,里面有大量的例程,通过学习官方例程并最终应用到自己项目工程中是一 ...

  8. 一起学nRF51xx 18 -  蓝牙协议栈烧录

    前言 在讲协议栈前我们先简要介绍一下NORDIC公司的协议栈特点: 1 协议栈和应用程序代码没有链接时间依存性,并可独立编译和更新 2 堆栈受运行时保护,应用程序访问受限或被阻止 3 堆栈为 100% ...

  9. 一起学nRF51xx 17 -  lpcomp

    前言 nRF51系列SOC内部低功耗比较器(LPCOMP)的使用.此比较器类似于用运放搭建的比较器,当VIN+输入的电压大于VIN-输入的电压,输出结果为高电平:当VIN+输入的电源小于VIN-输入的 ...

最新文章

  1. Spring Cloud第四章:熔断器Hystrix
  2. 程序员的“凡尔赛文学”大赏!
  3. USB学习6---Linux Android USB软件架构设计
  4. Emacs-24.2 中很重要的几个函数--实现自定义语法高亮的关键
  5. linux 开机启动项管理
  6. ajax图片上传,基于firefox
  7. 【c++】函数默认参数
  8. 内存管理——高端内存
  9. Java仓储物流项目_基于jsp的物流仓库管理系统-JavaEE实现物流仓库管理系统 - java项目源码...
  10. 2017 十款最佳iPhone渗透APP及工具
  11. 运算放大器的简要理解
  12. idea TODO功能使用
  13. 嵌入式系统开发笔记88:认识51微控制器系统架构
  14. SWUST OJ#480 Locker doors
  15. 介绍一些免费好用的静态网站托管服务
  16. 没人带宝宝,所以才要送去托育园?
  17. 彻底删除GitHub仓库的某个文件或文件夹及其历史记录
  18. 微信支付提示参数错误
  19. Hybrid App开发模式
  20. 汽车保养app 功能需求

热门文章

  1. redis VS kafka
  2. LR(1)分析表-语法树-四元式
  3. 基础拾遗------委托详解
  4. Android深度探索读书笔记 第七章
  5. 在Linux下使用screen使用退出远程终端后程序依然自动进行
  6. 允许修改 SharePoint2010 中的电子邮件
  7. powerDesiger uml class
  8. WPF中splashScreen启动程序之前出现一个过程动画的效果
  9. List Tuple Dictionary 区别
  10. 打造实用的Fedora 10