找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10133|回復: 9
打印 上一主題 下一主題
收起左側

ADS1292芯片手冊資料與STM32源程序原理圖

  [復制鏈接]
跳轉到指定樓層
樓主
ID:409448 發(fā)表于 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電子系統(tǒng)設計開發(fā)板、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. // 函數(shù)功能: ADS1292初始化
  27. // 入口參數(shù): 無
  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. // 函數(shù)功能: ADS1292上電復位
  60. // 入口參數(shù): 無
  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);   // 等待穩(wěn)定
  74.   ADS1292_PWDN = 0; // 發(fā)出復位脈沖
  75.   delay_us(10);
  76.   ADS1292_PWDN = 1;
  77.   delay_ms(1000); // 等待穩(wěn)定,可以開始使用ADS1292R
  78.         
  79.         ADS1292_START = 0;
  80.         ADS1292_CS = 0;
  81.   SPI5_Send_Byte(SDATAC); // 發(fā)送停止連續(xù)讀取數(shù)據(jù)命令
  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);                                    // 等待內部參考電壓穩(wěn)定
  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. // 函數(shù)功能: 對ADS1292的內部寄存器進行寫操作
  123. // 入口參數(shù): 無
  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);        // 要讀取的寄存器數(shù)+1
  134.   delay_us(10);
  135.   SPI5_Send_Byte(data);        // 寫入的數(shù)據(jù)
  136.         delay_us(10);
  137.         ADS1292_CS = 1;                                // 片選置高
  138. }

  139. //-----------------------------------------------------------------
  140. // u8 ADS1292_Read_Reg(u8 addr)
  141. //-----------------------------------------------------------------
  142. //
  143. // 函數(shù)功能: 對ADS1292的內部寄存器進行讀操作
  144. // 入口參數(shù): 無
  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);                         // 要讀取的寄存器數(shù)+1
  156.   delay_us(10);
  157.   Rxdata = SPI5_Read_Byte();         // 讀取的數(shù)據(jù)
  158.         delay_us(10);
  159.         ADS1292_CS = 1;
  160.   return Rxdata;
  161. }

  162. //-----------------------------------------------------------------
  163. // u8 ADS1292_Read_Data(u8 addr)
  164. //-----------------------------------------------------------------
  165. //
  166. // 函數(shù)功能: 讀取ADS1292的數(shù)據(jù)
  167. // 入口參數(shù): 無
  168. // 返 回 值: 無
  169. // 注意事項: 無
  170. //
  171. //-----------------------------------------------------------------
  172. void ADS1292_Read_Data(u8 *data)
  173. {
  174.   u8 i;
  175.         ADS1292_CS = 0;
  176.   SPI5_Send_Byte(RDATAC);                // 發(fā)送啟動連續(xù)讀取數(shù)據(jù)命令
  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++)                // 連續(xù)讀取9個數(shù)據(jù)
  183.   {
  184.     *data = SPI5_Read_Byte();
  185.     data++;
  186.   }
  187.   ADS1292_START = 0;                                // 停止轉換
  188.   SPI5_Send_Byte(SDATAC);                // 發(fā)送停止連續(xù)讀取數(shù)據(jù)命令
  189.         delay_us(10);
  190.         ADS1292_CS = 1;
  191. }
  192. //-----------------------------------------------------------------
  193. // End Of File
  194. //-----------------------------------------------------------------
復制代碼
Keil代碼下載: 測試程序.7z (715.91 KB, 下載次數(shù): 147)
pdf格式的原理圖: 原理圖PDF.zip (189.04 KB, 下載次數(shù): 130)
英文芯片手冊: 芯片手冊.zip (2.56 MB, 下載次數(shù): 84)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:328014 發(fā)表于 2020-11-1 17:01 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:650653 發(fā)表于 2020-12-22 18:37 | 只看該作者
誰能分享下PCB文件給我學習下嗎?
回復

使用道具 舉報

地板
ID:1000771 發(fā)表于 2022-1-8 18:47 | 只看該作者
麻煩把原理圖發(fā)的全一點,謝謝
回復

使用道具 舉報

5#
ID:992884 發(fā)表于 2022-1-16 16:27 | 只看該作者
感謝,51黑有你更精彩!!!
回復

使用道具 舉報

6#
ID:1011908 發(fā)表于 2022-3-21 12:06 | 只看該作者
感謝,51黑有你更精彩!!!
回復

使用道具 舉報

7#
ID:1067601 發(fā)表于 2023-3-22 13:31 | 只看該作者
有沒有MCU部分的原理圖
回復

使用道具 舉報

8#
ID:44626 發(fā)表于 2023-12-20 13:13 | 只看該作者
點贊,51hei因你而精彩
回復

使用道具 舉報

9#
ID:1150262 發(fā)表于 2025-5-12 16:33 | 只看該作者

點贊,51hei因你而精彩
回復

使用道具 舉報

10#
ID:1150262 發(fā)表于 2025-5-12 16:33 | 只看該作者

點贊,51hei因你而精彩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表