一起学nRF51xx 16 -  adc

前言

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

 

关注十三公众号

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值