AD7193是一款ADI公司的AD芯片,差分帶PGA
具體步驟
1.Init
2.Reset
3.Calibrate(zero&full)校準
4.RangeSetup(1,gain1)單雙極性以及增益選擇
5.ChannelSelect通道選擇
6.SingleConversion獲得AD值
7.ConvertToVolts轉換成電壓
8.ContinuousReadAvg(10)10次采樣求均值
9.ConvertToVolts
10.TemperatureRead獲得溫度AD
這些代碼是MCU通用的,不需修改
需要修改的是SPI函數
0.png (10.43 KB, 下載次數: 69)
下載附件
2019-10-10 01:20 上傳
單片機源程序如下:
- #include "YRDKRL78G13.h" // YRDKRL78G13 definitions.
- #include "ST7579.h" // ST7579 definitions.
- #include "TIME.h" // TIME definitions.
- #include "AD7193.h" // AD7193 definitions.
- /******************************************************************************/
- /************************ Variables Definitions *******************************/
- /******************************************************************************/
- unsigned long result = 0;
- unsigned long degreesC = 0;
- float voltage = 0;
- /***************************************************************************//**
- * @brief Draws the ADI logo and displays the name of ADI component.
- *
- * @param componentName - The name of the ADI component.
- *
- * @return None.
- *******************************************************************************/
- void ADI_Component(unsigned char* string)
- {
- const unsigned char adiComponent[7] =
- {
- 0xFE, 0xFE, 0x82, 0xC6, 0xEE, 0xFE, 0xFE
- };
- ST7579_Image(0, 0, adiComponent, 7, 8);
- ST7579_String(0, 9, string, 0);
- }
- /***************************************************************************//**
- * @brief Main function.
- *
- * @return None.
- *******************************************************************************/
- void main(void)
- {
- /* Initialize YRDKRL78G13. */
- YRDKRL78G13_Init();
-
- /* Enable interrupts. */
- __enable_interrupt();
-
- /* Initialize timer. */
- TIME_Init();
-
- /* Initialize the ST7579 Display. */
- ST7579_Init();
-
- /* Initialize AD7193 device. */
- if(AD7193_Init())
- {
- ADI_Component("AD7193 OK");
- }
- else
- {
- ADI_Component("AD7193 Err");
- }
- /* Reset the device. */
- AD7193_Reset();
-
- /* Allow a period of 500 us before accessing any of the on-chip registers. */
- TIME_DelayUs(500);
-
- /* Calibrate channel 0. */
- AD7193_Calibrate(AD7193_MODE_CAL_INT_ZERO, AD7193_CH_0);
- AD7193_Calibrate(AD7193_MODE_CAL_INT_FULL, AD7193_CH_0);
-
- while(1)
- {
- /* Select unipolar operation and ADC's input range to +-2.5V. */
- AD7193_RangeSetup(1, AD7193_CONF_GAIN_1);
- /* Select channel AIN1(+) - AIN2(-). */
- AD7193_ChannelSelect(AD7193_CH_0);
-
- /* Perform a single conversion. */
- result = AD7193_SingleConversion();
- ST7579_String(2, 0, "CHANNEL 0:", 0);
- ST7579_String(3, 0, "RAW: ", 0);
- ST7579_String(4, 0, "1RD: [V]", 0);
- ST7579_HexNumber(3, 30, result, 0);
-
- /* The value of the voltage reference on PmodAD5 is 2.5V by default. */
- voltage = AD7193_ConvertToVolts(result, 2.5);
- ST7579_FloatNumber(4, 30, voltage, 3, 0);
-
- /* Continuous reads. */
- result = AD7193_ContinuousReadAvg(10);
- voltage = AD7193_ConvertToVolts(result, 2.5);
- ST7579_String(5, 0, "RAW: ", 0);
- ST7579_String(6, 0, "AVG: [V]", 0);
- ST7579_HexNumber(5, 30, result, 0);
- ST7579_FloatNumber(6, 30, voltage, 3, 0);
-
- /* Read the temperature. */
- degreesC = AD7193_TemperatureRead();
- ST7579_String(7, 0, "TMP: oC", 0);
- ST7579_Number(7, 30, degreesC, 0);
- }
- }
復制代碼
所有資料51hei提供下載:
7193.zip
(26.75 KB, 下載次數: 65)
2019-10-9 17:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|