久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10047|回復: 7
收起左側

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

  [復制鏈接]
ID:409448 發表于 2020-10-31 23:17 | 顯示全部樓層 |閱讀模式
ADS1292R模塊的電路圖
51hei.png

ADS1292R芯片手冊:
51hei.png 51hei.png

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)
回復

使用道具 舉報

ID:328014 發表于 2020-11-1 17:01 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:650653 發表于 2020-12-22 18:37 | 顯示全部樓層
誰能分享下PCB文件給我學習下嗎?
回復

使用道具 舉報

ID:1000771 發表于 2022-1-8 18:47 | 顯示全部樓層
麻煩把原理圖發的全一點,謝謝
回復

使用道具 舉報

ID:992884 發表于 2022-1-16 16:27 | 顯示全部樓層
感謝,51黑有你更精彩!!!
回復

使用道具 舉報

ID:1011908 發表于 2022-3-21 12:06 | 顯示全部樓層
感謝,51黑有你更精彩!!!
回復

使用道具 舉報

ID:1067601 發表于 2023-3-22 13:31 | 顯示全部樓層
有沒有MCU部分的原理圖
回復

使用道具 舉報

ID:44626 發表于 2023-12-20 13:13 | 顯示全部樓層
點贊,51hei因你而精彩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91国内精精品久久久久久婷婷 | 一区欧美 | 91在线观看 | 天天艹天天干天天 | 日韩在线欧美 | 国产精品精品久久久 | 国产粉嫩尤物极品99综合精品 | 欧美激情一区 | 欧美日韩最新 | 羞羞网站在线观看 | 一区二区三区av | 一区二区三区视频在线 | 亚洲一区二区三区在线播放 | 黄色一级大片在线免费看产 | 国产99久久精品一区二区永久免费 | 天堂一区| 99热在线观看精品 | 午夜男人视频 | 免费看欧美一级片 | 久久成人精品 | 日韩视频免费 | 中文字幕av在线播放 | 国产激情视频在线免费观看 | 国产精品1区2区 | 中国一级毛片免费 | 久久亚洲欧美日韩精品专区 | 国产区视频在线观看 | 欧美日韩久久精品 | 亚洲欧美日韩网站 | 日韩欧美精品一区 | 国产精品视频网址 | 中文字幕国产一区 | 亚洲一区二区三区在线免费 | 国产视频第一页 | 91精品久久久久久久久久入口 | 一区二区三区在线免费观看视频 | 日韩中文欧美 | 国产伦精品一区二区三区精品视频 | 亚洲精品一区久久久久久 | 日韩精品久久久 | 九九热这里 |