找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9073|回复: 7
打印 上一主题 下一主题
收起左侧

ADS1292芯片手册资料与STM32源程序原理图

  [复制链接]
跳转到指定楼层
楼主
ID:409448 发表于 2020-10-31 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADS1292R模块的电路图


ADS1292R芯片手册:


STM32源代码
  1. //-----------------------------------------------------------------
  2. // 程序描述:
  3. //     ADS1292驱动程序
  4. // 作    者: 凌智电子
  5. // 开始日期: 2020-09-01
  6. // 完成日期: 2020-09-05
  7. // 修改日期:
  8. // 当前版本: V1.0
  9. // 历史版本:
  10. //  - V1.0:  ADS1292驱动
  11. // 调试工具: 凌智STM32F429+CycloneIV电子系统设计开发板、LZE_ST_LINK2
  12. // 说    明:
  13. //
  14. //-----------------------------------------------------------------

  15. //-----------------------------------------------------------------
  16. // 头文件包含
  17. //-----------------------------------------------------------------
  18. #include "ads1292.h"
  19. #include "spi.h"
  20. #include "delay.h"
  21. //-----------------------------------------------------------------

  22. //-----------------------------------------------------------------
  23. // void ADS1292_Init(void)
  24. //-----------------------------------------------------------------
  25. //
  26. // 函数功能: ADS1292初始化
  27. // 入口参数: 无
  28. // 返 回 值: 无
  29. // 注意事项: 无
  30. //
  31. //-----------------------------------------------------------------
  32. void ADS1292_Init(void)
  33. {
  34.   GPIO_InitTypeDef GPIO_InitStruct;

  35.   __HAL_RCC_GPIOE_CLK_ENABLE();

  36.   // ADS1292_DRDY -> PE9
  37.   GPIO_InitStruct.Pin   = GPIO_PIN_9;       // 配置ADS1292_DRDY
  38.   GPIO_InitStruct.Mode  = GPIO_MODE_INPUT;  // 输入
  39.   GPIO_InitStruct.Pull  = GPIO_PULLUP;      // 上拉
  40.   GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         // 高速
  41.   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);          // 初始化

  42.   // ADS1292_START -> PE7
  43.   // ADS1292_PWDN  -> PE8
  44.   // ADS1292_CS           -> PE10
  45.   // ADS1292_GPIO1 -> PE11
  46.   // ADS1292_GPIO2 -> PE12
  47.   GPIO_InitStruct.Pin   = GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10 |
  48.                           GPIO_PIN_11 | GPIO_PIN_12;
  49.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;         // 推挽输出
  50.   GPIO_InitStruct.Pull  = GPIO_PULLUP;                 // 上拉
  51.   GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;            // 高速
  52.   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);             // 初始化

  53.   SPI5_Init(); // SPI初始化
  54. }

  55. //-----------------------------------------------------------------
  56. // void ADS1292_PowerOnInit(void)
  57. //-----------------------------------------------------------------
  58. //
  59. // 函数功能: ADS1292上电复位
  60. // 入口参数: 无
  61. // 返 回 值: 无
  62. // 注意事项: 无
  63. //
  64. //-----------------------------------------------------------------
  65. void ADS1292_PowerOnInit(void)
  66. {
  67.         u8 device_id;

  68.   ADS1292_START = 1;
  69.   ADS1292_CS = 1;
  70.   ADS1292_PWDN = 0; // 进入掉电模式
  71.   delay_ms(1000);
  72.   ADS1292_PWDN = 1; // 退出掉电模式
  73.   delay_ms(1000);   // 等待稳定
  74.   ADS1292_PWDN = 0; // 发出复位脉冲
  75.   delay_us(10);
  76.   ADS1292_PWDN = 1;
  77.   delay_ms(1000); // 等待稳定,可以开始使用ADS1292R
  78.         
  79.         ADS1292_START = 0;
  80.         ADS1292_CS = 0;
  81.   SPI5_Send_Byte(SDATAC); // 发送停止连续读取数据命令
  82.         delay_us(10);
  83.         ADS1292_CS = 1;
  84.         
  85.         // 获取芯片ID
  86.         device_id = ADS1292_Read_Reg(RREG | ID);
  87.         while(device_id != 0x73)
  88.         {
  89.                 printf("ERROR ID:%02x\r\n",device_id);
  90.                 device_id = ADS1292_Read_Reg(RREG | ID);
  91.                 HAL_Delay(1000);
  92.         }
  93.         
  94.         delay_us(10);
  95.   ADS1292_Write_Reg(WREG | CONFIG2,  0XE0); // 使用内部参考电压
  96.   delay_ms(10);                                    // 等待内部参考电压稳定
  97.   ADS1292_Write_Reg(WREG | CONFIG1,  0X03); // 设置转换速率为1KSPS
  98.   delay_us(10);
  99.   ADS1292_Write_Reg(WREG | LOFF,     0XF0);        // 该寄存器配置引出检测操作
  100.   delay_us(10);
  101.   ADS1292_Write_Reg(WREG | CH1SET,   0X00); // 增益6,连接到电极
  102.   delay_us(10);
  103.   ADS1292_Write_Reg(WREG | CH2SET,   0X00); // 增益6,连接到电极
  104.   delay_us(10);
  105.   ADS1292_Write_Reg(WREG | RLD_SENS, 0xEF);
  106.   delay_us(10);
  107.   ADS1292_Write_Reg(WREG | LOFF_SENS,0x0F);
  108.   delay_us(10);
  109.         ADS1292_Write_Reg(WREG | LOFF_STAT,0x00);
  110.   delay_us(10);
  111.   ADS1292_Write_Reg(WREG | RESP1,    0xEA); // 开启呼吸检测(ADS1292R特有)
  112.   delay_us(10);
  113.   ADS1292_Write_Reg(WREG | RESP2,    0x03);
  114.   delay_us(10);
  115.   ADS1292_Write_Reg(WREG | GPIO,     0x0C);
  116.   delay_us(10);
  117. }

  118. //-----------------------------------------------------------------
  119. // void ADS1292_Write_Reg(u8 com, u8 data)
  120. //-----------------------------------------------------------------
  121. //
  122. // 函数功能: 对ADS1292的内部寄存器进行写操作
  123. // 入口参数: 无
  124. // 返 回 值: 无
  125. // 注意事项: 无
  126. //
  127. //-----------------------------------------------------------------
  128. void ADS1292_Write_Reg(u8 addr, u8 data)
  129. {
  130.         ADS1292_CS = 0;                                // 片选拉低
  131.   SPI5_Send_Byte(addr);        // 包含命令操作码和寄存器地址
  132.   delay_us(10);
  133.   SPI5_Send_Byte(0x00);        // 要读取的寄存器数+1
  134.   delay_us(10);
  135.   SPI5_Send_Byte(data);        // 写入的数据
  136.         delay_us(10);
  137.         ADS1292_CS = 1;                                // 片选置高
  138. }

  139. //-----------------------------------------------------------------
  140. // u8 ADS1292_Read_Reg(u8 addr)
  141. //-----------------------------------------------------------------
  142. //
  143. // 函数功能: 对ADS1292的内部寄存器进行读操作
  144. // 入口参数: 无
  145. // 返 回 值: 无
  146. // 注意事项: 无
  147. //
  148. //-----------------------------------------------------------------
  149. u8 ADS1292_Read_Reg(u8 addr)
  150. {
  151.   u8 Rxdata;
  152.         ADS1292_CS = 0;
  153.   SPI5_Send_Byte(addr);                         // 包含命令操作码和寄存器地址
  154.   delay_us(10);
  155.   SPI5_Send_Byte(0x00);                         // 要读取的寄存器数+1
  156.   delay_us(10);
  157.   Rxdata = SPI5_Read_Byte();         // 读取的数据
  158.         delay_us(10);
  159.         ADS1292_CS = 1;
  160.   return Rxdata;
  161. }

  162. //-----------------------------------------------------------------
  163. // u8 ADS1292_Read_Data(u8 addr)
  164. //-----------------------------------------------------------------
  165. //
  166. // 函数功能: 读取ADS1292的数据
  167. // 入口参数: 无
  168. // 返 回 值: 无
  169. // 注意事项: 无
  170. //
  171. //-----------------------------------------------------------------
  172. void ADS1292_Read_Data(u8 *data)
  173. {
  174.   u8 i;
  175.         ADS1292_CS = 0;
  176.   SPI5_Send_Byte(RDATAC);                // 发送启动连续读取数据命令
  177.   delay_us(10);
  178.         ADS1292_CS = 1;                                                
  179.   ADS1292_START = 1;                                 // 启动转换
  180.   while (HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_9) == 1);        // 等待DRDY信号拉低
  181.   ADS1292_CS = 0;
  182.   for (i = 0; i < 9; i++)                // 连续读取9个数据
  183.   {
  184.     *data = SPI5_Read_Byte();
  185.     data++;
  186.   }
  187.   ADS1292_START = 0;                                // 停止转换
  188.   SPI5_Send_Byte(SDATAC);                // 发送停止连续读取数据命令
  189.         delay_us(10);
  190.         ADS1292_CS = 1;
  191. }
  192. //-----------------------------------------------------------------
  193. // End Of File
  194. //-----------------------------------------------------------------
复制代码
Keil代码下载: 测试程序.7z (715.91 KB, 下载次数: 147)
pdf格式的原理图: 原理图PDF.zip (189.04 KB, 下载次数: 130)
英文芯片手册: 芯片手册.zip (2.56 MB, 下载次数: 84)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:328014 发表于 2020-11-1 17:01 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:650653 发表于 2020-12-22 18:37 | 只看该作者
谁能分享下PCB文件给我学习下吗?
回复

使用道具 举报

地板
ID:1000771 发表于 2022-1-8 18:47 | 只看该作者
麻烦把原理图发的全一点,谢谢
回复

使用道具 举报

5#
ID:992884 发表于 2022-1-16 16:27 | 只看该作者
感谢,51黑有你更精彩!!!
回复

使用道具 举报

6#
ID:1011908 发表于 2022-3-21 12:06 | 只看该作者
感谢,51黑有你更精彩!!!
回复

使用道具 举报

7#
ID:1067601 发表于 2023-3-22 13:31 | 只看该作者
有没有MCU部分的原理图
回复

使用道具 举报

8#
ID:44626 发表于 2023-12-20 13:13 | 只看该作者
点赞,51hei因你而精彩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表