那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于stm32的ad7792移植難題排解

GReq_mcu168 ? 來源:互聯網 ? 作者:佚名 ? 2017-11-06 18:37 ? 次閱讀

轉換原理及參數指標

1. 采樣定理

2. 為了正確無誤的用圖5.2.2中所示的采樣信號vs表示模擬信號vi,必須滿足式中, fs>=2fmax

fs為采樣頻率;fmax為輸入信號vi的最高頻率分量的頻率;上式就是所謂的采樣定理。滿足采樣定理的條件下,可以用一個低通濾波器將信號vs還原為vi,這個低通濾波器的電壓傳輸系數|A(f)|在低于fmax的范圍內應保持不變,而在fs-fmax以前應迅速下降為零,采樣定理規定了A/D轉換的頻率下限。

AD7792 遇到的問題/學到的知識點

學到的知識點:

1.stm32

U8 unsigned char

U16 unsigned short

U32 unsigned int

2. stm32 AD7792采樣的電壓數值要經過轉換成ASCII碼字符在串口中打印出來有兩種編程方式實現:

u8TempD;

u16 Datau16;

char str[20];

unsigned short iData[3];

u8 Strvbat[8]={'/','/','/',',',0,0,0,0};

u8 ASCII[21]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','+',//10->16

',',//11-17

'-',//12-18

'.',//13-19

'/',//14-20

};

方式一:(簡潔版)

AD_VBat[TempD] = SPI_Read16Bit();

memcpy(&iData[0],& AD_VBat[TempD],2);

sprintf(str,"%d",iData[0]);

UART1_TX485_Puts(USART1,&str[0]);

方式二:(復雜版)

AD_VBat[TempD] = SPI_Read16Bit();

Datau16 = AD_VBat[TempD];

Strvbat[0]=ASCII[Datau16/10000];

Strvbat[1]=ASCII[Datau16%10000/1000];

Strvbat[2]=ASCII[Datau16%1000/100];

Strvbat[3]=ASCII[Datau16%100/10];

Strvbat[4]=ASCII[Datau16%10];

UART1_TX485_Puts(USART1,&Strvbat[0]);

while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);

3.遇到的問題

問題一:通過串口打印,采樣的數值為32768左右轉化后的電池電壓為2.5V,而電池實際電壓應該為3.32v采樣數值應該為43582左右的數值;

問題根源:通道切換的問題;

AD77923模擬輸入通道,初始化AD7792配置函數中,寫配置寄存器SPI_SendByte(0x10); /* 寫配置寄存器*/

SPI_Send16Bit(0x1080); // 偏置電壓禁用禁用熔斷電流單極性編碼內部基準

SPI_Send16Bit(0x1080)設置的采樣通道是采樣電流的通道,所以采樣的是電流的數值;

題二:在移植AD7792獨立出來時,發現電池電壓采樣值打印為0000;

問題根源:SPI配置問題;

原理圖:

錯誤配置:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7 ;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽輸出

GPIO_Init(GPIOA, &GPIO_InitStructure);

正確配置:

/* Configure SPI1 pins: SCK, MISO and MOSI */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/* 配置MISO為輸入 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴

原文標題:STM32菜鳥成長記錄---AD7792遇到的問題

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請教有用過AD7792測溫PT100

    我用AD7792測PT100的溫度 時,讀到的PT100的電阻在室溫下電阻值盡然有130多,明顯不對,可又不知道錯在那,那位大俠做過,可以給個提示嗎
    發表于 08-13 17:43

    STM32菜鳥成長記錄---AD7792遇到的問題

    為零,采樣定理規定了A/D轉換的頻率下限。AD7792 遇到的問題/學到的知識點學到的知識點:1.在stm32中U8 : unsignedcharU16: unsignedshortU32
    發表于 03-24 11:07

    AD7792嘗試AD轉換讀取的轉換結果一直是(0xff,0xff)

    請大家幫忙回答一點關于AD7792使用中的一些疑問。應用場景:radxa rock pro開發板,Python腳本語言,Python庫由radxa公司提供。現在的問題是:1)按照ad7792
    發表于 12-25 09:32

    AD7792轉換結果波動大

    使用AD7792進行模數轉換,AD7792以SPI模式與STM32連接,使用通道一進行轉換,但輸出結果上下波動超過10mV。已進行的錯誤排除: 1、使用萬用表測量AD7792通道一電壓
    發表于 01-17 02:55

    AD7792測溫測出來的值一直為0

    AD7792測四線制鉑電阻,但是測出來的值一直為0,有沒有哪位大佬幫忙看看哪里有問題,謝謝ResetTime=32; CLK_H; CS_L; MOSI_H; while(ResetTime--
    發表于 04-07 12:21

    AD7792的兩路激勵電流源同時輸出不相等的原因?

    采用AD7792做三線制的PT100方案,激勵電流設置210uA,根據比率式方法來計算電阻,測試發現Iout1不等于Iout2,由此引起比較大的測量誤差。 后來更換了幾個AD7792,發現有些可以做到Iout1等于Iout2,請問是該片子是本身就有這種現象嗎?存在個體差異
    發表于 12-04 07:06

    求助,關于AD7792偏置電壓發生器設置的問題

    您好,我使用AD7792測量差分信號,外參考電壓為2.5V,差分輸入電壓10mv,共模0V左右,AD無法準確測量出此差分電壓,后閱讀手冊發現可以設置偏置電壓發生器使能,從而提高共模電壓
    發表于 12-06 07:42

    AD7792做了個一個熱電偶測溫模塊,無規律的出現AD7792損壞是怎么回事?

    AD7792做了個一個熱電偶測溫模塊,最近小批量使用了幾百個,無規律的出現AD7792損壞,損壞后的芯片讀取芯片ID值為0x48,正常的為0x4A。 每個通道都進行了防靜電保護,采用ADUM1401,光耦和隔離電源與單片機進行隔離,復用芯片ADG707。
    發表于 12-08 07:55

    AD7792/AD7793,pdf datasheet (A

    The AD7792/AD7793 are low power, low noise, complete analog front ends for high precision
    發表于 09-09 10:24 ?38次下載

    AD7792/ad7793三通道的低噪聲低功耗16/24位ADC對放大器和基準芯片

    The AD7792/AD7793 are low power, low noise, complete analog front ends for high precision measurement applications.
    發表于 10-01 12:15 ?18次下載
    <b class='flag-5'>AD7792</b>/ad7793三通道的低噪聲低功耗16/24位ADC對放大器和基準芯片

    AD7792參考代碼

    AD7792參考代碼
    發表于 03-18 09:41 ?13次下載
    <b class='flag-5'>AD7792</b>參考代碼

    AD7792/AD7793:3通道、低噪聲、低功耗、16/24位Σ-ΔADC內置片內儀表放大器和基準電壓源 數據手冊

    AD7792/AD7793:3通道、低噪聲、低功耗、16/24位Σ-ΔADC內置片內儀表放大器和基準電壓源 數據手冊
    發表于 03-20 17:57 ?14次下載
    <b class='flag-5'>AD7792</b>/AD7793:3通道、低噪聲、低功耗、16/24位Σ-ΔADC內置片內儀表放大器和基準電壓源 數據手冊

    EVAD7792 AD7792 評估板

    EVAL-AD7792EBZ是用于AD7792的全功能評估板。該評估板可通過標準的USB接口連接到PC。用戶通過隨附的軟件可以對ADC的性能執行詳盡分析。請注意:該評估軟件無法在Windows 8或Windows 10上運行(USB驅動程序不兼容Windows 7以上版本
    發表于 05-29 08:46 ?11次下載
    EVAD<b class='flag-5'>7792</b> <b class='flag-5'>AD7792</b> 評估板

    AD7792評估軟件

    AD7792評估軟件
    發表于 06-06 17:26 ?1次下載
    <b class='flag-5'>AD7792</b>評估軟件

    低功耗模數轉換器AD7792/AD7793數據手冊

    低功耗模數轉換器AD7792/AD7793數據手冊
    發表于 07-16 14:57 ?11次下載
    阜宁县| 百家乐黄金城游戏大厅| 怎样看百家乐路纸| 大发888娱乐城下载lm0| 资兴市| 百威百家乐官网的玩法技巧和规则 | 工布江达县| 百家乐官网博娱乐网赌百家乐官网的玩法技巧和规则 | 足球百家乐官网系统| 玩百家乐的玩法技巧和规则| 皇冠平台| 金域百家乐官网的玩法技巧和规则| 百家乐游戏介绍与分析| 网络赌场| 永利百家乐游戏| 新全讯网a3322.com| 百家乐官网合理的投注法| 金臂百家乐注册送彩金| 明升网址 | 百家乐官网押注最高是多少| 百家乐打揽法| 车险| 网上百家乐哪里开户| 博彩吧| 伯爵百家乐官网的玩法技巧和规则| 有钱人百家乐的玩法技巧和规则| 百家乐官网路纸表格| 百家乐娱乐城博彩| 爱拼网| 杨筠松古法风水24| 娱乐城注册送现金| 百家乐官网平注秘籍| 大发888体育真人| 重庆百家乐官网的玩法技巧和规则| 广州太阳城巧克力社区| 百家乐官网开户最快的平台是哪家 | 百家乐官网最佳注码法| 巴特百家乐的玩法技巧和规则| 百家乐官网盈利分析路单| 百家乐博彩网址| 澳门百家乐官网战法|