CC2530内部具有一个12位的ADC,其输入是一个多路复用器,根据ADC控制寄存器的设置可以选择输入端为AIN0~AIN7,GND,温度传感器或VDD/3,且AIN0~AIN7还可以组合为差分输入模式。基准电压源也可以设置为内部基准,AIN7上的外部基准,AVDD5引脚电压或AIN6-AIN7上的差分电压。
ADC的工作模式有两种,一种是单个转换,一种是序列转换,单个转换可以通过置位转换寄存器开始一次转换,而序列转换则可以通过外不触发,全速,定时器以及手动开始一个转换序列。工作于单个转换模式且转换完成时会产生一个中断,但是如果是工作在序列模式时不会产生CPU中断,而是由DMA完成数据到存储器的传输并在序列转换结束时产生DMA中断。
ADC在不同的采样率下具有不同的分辨率,如512采样率具有12位分辨率,而64采样率具有7位分辨率,这是因为CC2530中的ADC是一个delta-sigma类型的ADC,因此采样率越高其分辨率也越高,但是功耗相应地会增加。
如果要测量片上温度传感器的数值,除了ADC的通道选择为温度传感器外,还需要设置TR0测试寄存器使其连接温度传感器到ADC且设置ATEST寄存器使能温度传感器(默认关闭,节省功模?br /> ADC以系统时钟作为转换时钟,当然ADC内部还有分频的过程但不受用户控制。
以上信息都是从CC2530的数据手册查到,有了这些信息就可以开始动手。
数据采集后将通过串口传送到上位机并由上位机显示出实时曲线,因此软件分为下位机和上位机。下位机涉及ADC和串口的操作,上位机需要显示曲线、保存数据,并可以对下位机进行如采样率、工作模式等进行配置。因此采用C#作为开发环境。本篇文章将随着实验的推进慢慢完善。
下位机软件流程:
1.硬件初始化(核心晶振选择,ADC配置,串口配置,FLASH参数读取-用于保存系统参数)
2.报告上位机初始化完毕
3.接收到数据采集命令进入数据采集模式,如果接收到配置命令则进入系统参数配置模式。
文章评论(0条评论)
登录后参与讨论