ADS7886的驱动

这是前一篇讲微弱信号检测的文章的后续

文章目录

  • ADS7886的驱动
  • 一、ADS7886是什么?
  • 二、如何驱动ADS7886?
    • 1.看时序图
    • 2.根据时序图编辑代码驱动AD
  • 总结

本文主要是接着上一篇"微弱信号检测装置"的后续,继续讲一下数模转换-关于AD7886的驱动以及相关代码


一、ADS7886是什么?

ADS7886是12位,1M-MSPS 模拟-数字转换器(ADC),设备包括一个基于带有采样保持的A/D变换器的SAR电容器.每个设备的接口是由片选(控制)信号CS和时钟信号SCLK控制微处理器和数字信号处理系统相联系的免黏结逻辑,输的采样信号由CS的下降沿决定,SCLK用于转换和串行数据输出.设备工作在从2.35V至2.35V的一个广泛的供应范围设备的低功耗使它适用于电池供电的应用.

二、如何驱动ADS7886?

1.看时序图

数据手册截图如下:

2.根据时序图编辑代码驱动AD

代码如下(示例):

void ADC_init()      //奔向你,奔向光{GPIO_InitTypeDef GPIO_InitStructure;                                                  //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);                  //ʹÄÜIO¿ÚʱÖÓGPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5 | GPIO_Pin_6;      //Ó³Éäµ½PB12csƬѡÐźÅÊä³ö,PB13Òý½Å,ÉèÖÃΪÊý×ÖʱÖÓÐźÅÊä³öGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                         //ÉèÖùܽÅΪÍÆÍìÊä³öGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                          //ÉèÖùܽŵķ­×ªËÙ¶ÈΪ50MHZGPIO_Init(GPIOA, &GPIO_InitStructure);                                               //Òý½Å³õʼ»¯Íê³ÉGPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                                          //Ó³Éäµ½PB15Òý½Å,ÉèÖÃΪģÄâÐźÅÊäÈëGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                                       //ÉèÖùܽÅΪģÄâÊäÈëGPIO_Init(GPIOA, &GPIO_InitStructure);                                                  //Òý½Å³õʼ»¯Íê³ÉAD_7886_SCLK=1;AD_7886_CS=1;                                                                                                              //ƬѡÐźÅÀ­¸ß,adsÏÐÖÃ//µ¥Æ¬»úÊäÈëʱÖÓÐźÅÀ­¸ß}u16 ADC_read_value(void)                                                                                  //µ÷ÓÃads¶ÁÈ¡Êý¾Ýº¯Êý{   u16 i; u16 data = 0;                                                                                                         //¶¨ÒåÒ»¸öÎÞ·ûºÅ16λ×Ö·ûÊý¾ÝAD_7886_CS=0;for(i=0;i<16;i++)       {AD_7886_SCLK=0;data=(data<<1)+AD_7886_DIN;                                                                            //spi·¢ËÍÊý¾ÝЭÒéÊÇÏÈ·¢¸ßλ,ºó·¢µÍλ,ËùÒÔÒªÓÃ×óÒÆÔËË㽫Êý¾Ý·Åµ½¸ßλAD_7886_SCLK=1;         }AD_7886_CS=1;                                                                                                 //ƬѡÐźÅÀ­¸ß,adsÏÐÖÃdata=data>>1;                 //ÒòΪADC·¢Ë͵ĵÚÒ»¸öÊý¾ÝµÄʱ¼äÌ«¶Ì,ûÓб»µ¥Æ¬»ú½ÓÊÕµ½,ËüµÄ´¥·¢Ê±¼äÔçÓÚµ¥Æ¬»úʱÖÓϽµÑصĴ¥·¢,//µ«ÊÇËüʵ¼Ê·¢ËÍÁË4¸ö0,ËùÒÔÔÚ´¦ÀíÊý¾ÝʱҪ½«Õâ¸ö0ͨ¹ýÓÒÒÆÔËËã²¹ÉÏ                                                                                           //²ÉÑù700´Î//Çó¾ùÖµ         return  data;                                                                                               }


因为上面的注释的文字格式不兼容,所以具体注释见图片


总结

以上就是本文主要讲的内容,代码只是把ADS7886的核心时序逻辑通过STM32F103的GPIO使能了,其他的显示和主函数部分比较简单,可以直接通过库函数调用,这里就不细说了,下期再见!

ADS7886的驱动相关推荐

  1. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态

    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...

  2. 0、Spring 注解驱动开发

    0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...

  3. 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)

    1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...

  4. Linux驱动框架之framebuffer驱动框架

    1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...

  5. [Ubuntu] 安装/卸载 声卡驱动

    卸载 sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils 安装 sudo apt-get install linux-s ...

  6. pci串口驱动安装失败_TSC TTP-243E Pluse装LTP并口驱动无法安装

    一.前言描述 接到客户报修说,电脑无法开机,即到哥上门维修立即安排人员到现场查看原因,到现场后,查看的确是电脑系统问题,重新安装系统,安装完成系统后,发现打印机无法使用.这个打印机型号是TSC TTP ...

  7. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

    点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...

  8. i7 7700hq安装Linux,黑苹果安装火影金刚4K VULCAN JinGang GTX i7-7700HQ 独显驱动 Hackintosh...

    严格来说,这不是一台笔记本,更像是一台移动一体机.火影金刚4K,独显GTX 1060,核显HD 630,在BIOS里是可以屏蔽核显的.所以这一次安装黑苹果时,直接当是一台IMAC来安装,连机型都是选择 ...

  9. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc

    [实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...

最新文章

  1. 想知道什么是“成员变量”吗?
  2. 《JavaScript高级程序设计》读书笔记【一】
  3. 公元2019年,你对AI的信任有几分?
  4. nginx多站点配置,以及隐藏index.php
  5. 柏林噪声产生火焰等纹理
  6. Linux 高可用(HA)集群之Pacemaker详解
  7. 变相裁员??全员营销!程序员被要求卖房~
  8. Multiple substitutions specified in non-positional format; did you mean to add the fo
  9. 游标sql server_学习SQL:SQL Server游标
  10. 微信小程序实现浮动按钮
  11. Java并发编程之volatile关键字解析
  12. 自动生成小学四则运算题目(加强版)
  13. PyHook3 的下载与安装
  14. Abis接口的概念和引发的商业策略
  15. 智能手环开发之 实现蓝牙(BLE)基本功能
  16. 关于OpenCV中cv2.imwrite保存的图片是全黑色的解决方案
  17. sdutacm-小雷的冰茶几
  18. 微信企业付款转账到微信
  19. python function gamma_Python math gamma()用法及代码示例
  20. 中序和后序(前序和中序)序列确定一颗二叉树

热门文章

  1. 常用的数控刀具牌号,买刀的时候少走弯路
  2. 计算机毕业设计 SSM+Vue美容院管理系统 美容护理管理系统 美容店系统管理Java Vue MySQL数据库 远程调试 代码讲解
  3. HTML 前端 flex宫格布局
  4. easyUI布局篇使用jquery easy UI的panel和layout实现界面的自适用窗口
  5. 外设测试 - RTC 测试
  6. 备考托福大揭秘:近满分学习之道
  7. 国企招聘: 中国雄安集团2023校园招聘,面向全国,不限户籍
  8. [ORACLE] ORA-01078 LRM-00109 错误解决方案
  9. 如何从零开始构建深度学习项目?这里有一份详细的教程
  10. ebay注册流程_ebay注册流程