RM新时代网站-首页

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

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

3天內(nèi)不再提示

XADC內(nèi)嵌在PS端允許CPU或其他主機連接而不用使用PL端

FPGA之家 ? 來源:瓜大三哥 ? 作者:米果不回來 ? 2021-05-27 11:30 ? 次閱讀

XADC內(nèi)嵌在PS端,允許CPU或其他主機連接XADC,而不用使用PL端。XADC最大采樣率為1MSPS,精度為12bits,內(nèi)置電壓和溫度傳感器,可監(jiān)測芯片的電壓及溫度信息。電壓傳感器可監(jiān)測芯片的VCCINT,VCCAUX,VCCBRAM等,VP_0和VN_0為一對專用的ADC模擬輸入口。VAUXP[*]和VAUXN[*]也是ADC輸入口,但是不用作ADC輸入口時,可用作普通IO使用。

intXAdcPolledPrintfExample(u16 XAdcDeviceId)

{

intStatus;

XAdcPs_Config *ConfigPtr;

u32 TempRawData;

u32 VccPintRawData;

u32 VccPauxRawData;

u32 VccPdroRawData;

floatTempData;

floatVccPintData;

floatVccPauxData;

floatMaxData;

floatMinData;

XAdcPs *XAdcInstPtr = &XAdcInst;

printf(" Entering the XAdc PolledExample. ");

/*

* Initialize the XAdc driver.

*/

ConfigPtr= XAdcPs_LookupConfig(XAdcDeviceId);

if(ConfigPtr == NULL) {

returnXST_FAILURE;

}

XAdcPs_CfgInitialize(XAdcInstPtr,ConfigPtr,

ConfigPtr->BaseAddress);

/*

* Self Test the XADC/ADC device

*/

Status= XAdcPs_SelfTest(XAdcInstPtr);

if(Status != XST_SUCCESS) {

returnXST_FAILURE;

}

/*

* Disable the Channel Sequencer beforeconfiguring the Sequence

* registers.

*/

XAdcPs_SetSequencerMode(XAdcInstPtr,XADCPS_SEQ_MODE_SAFE);

/*

* Read the on-chip Temperature Data(Current/Maximum/Minimum)

* from the ADC data registers.

*/

TempRawData= XAdcPs_GetAdcData(XAdcInstPtr, XADCPS_CH_TEMP);

TempData= XAdcPs_RawToTemperature(TempRawData);

printf(" The Current Temperature is%0d.%03d Centigrades. ",

(int)(TempData), XAdcFractionToInt(TempData));

TempRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr, XADCPS_MAX_TEMP);

MaxData= XAdcPs_RawToTemperature(TempRawData);

printf("The Maximum Temperature is%0d.%03d Centigrades. ",

(int)(MaxData), XAdcFractionToInt(MaxData));

TempRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr, XADCPS_MIN_TEMP);

MinData= XAdcPs_RawToTemperature(TempRawData & 0xFFF0);

printf("The Minimum Temperature is%0d.%03d Centigrades. ",

(int)(MinData), XAdcFractionToInt(MinData));

/*

* Read the VccPint Votage Data(Current/Maximum/Minimum) from the

* ADC data registers.

*/

VccPintRawData= XAdcPs_GetAdcData(XAdcInstPtr, XADCPS_CH_VCCPINT);

VccPintData= XAdcPs_RawToVoltage(VccPintRawData);

printf(" The Current VCCPINT is%0d.%03d Volts. ",

(int)(VccPintData),XAdcFractionToInt(VccPintData));

VccPintRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MAX_VCCPINT);

MaxData= XAdcPs_RawToVoltage(VccPintRawData);

printf("The Maximum VCCPINT is %0d.%03dVolts. ",

(int)(MaxData), XAdcFractionToInt(MaxData));

VccPintRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MIN_VCCPINT);

MinData= XAdcPs_RawToVoltage(VccPintRawData);

printf("The Minimum VCCPINT is %0d.%03dVolts. ",

(int)(MinData), XAdcFractionToInt(MinData));

/*

* Read the VccPaux Votage Data(Current/Maximum/Minimum) from the

* ADC data registers.

*/

VccPauxRawData= XAdcPs_GetAdcData(XAdcInstPtr, XADCPS_CH_VCCPAUX);

VccPauxData= XAdcPs_RawToVoltage(VccPauxRawData);

printf(" The Current VCCPAUX is%0d.%03d Volts. ",

(int)(VccPauxData),XAdcFractionToInt(VccPauxData));

VccPauxRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MAX_VCCPAUX);

MaxData= XAdcPs_RawToVoltage(VccPauxRawData);

printf("The Maximum VCCPAUX is %0d.%03dVolts. ",

(int)(MaxData), XAdcFractionToInt(MaxData));

VccPauxRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MIN_VCCPAUX);

MinData= XAdcPs_RawToVoltage(VccPauxRawData);

printf("The Minimum VCCPAUX is %0d.%03dVolts. ",

(int)(MinData), XAdcFractionToInt(MinData));

/*

* Read the VccPdro Votage Data(Current/Maximum/Minimum) from the

* ADC data registers.

*/

VccPdroRawData= XAdcPs_GetAdcData(XAdcInstPtr, XADCPS_CH_VCCPDRO);

VccPintData= XAdcPs_RawToVoltage(VccPdroRawData);

printf(" The Current VCCPDDRO is%0d.%03d Volts. ",

(int)(VccPintData), XAdcFractionToInt(VccPintData));

VccPdroRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MAX_VCCPDRO);

MaxData= XAdcPs_RawToVoltage(VccPdroRawData);

printf("The Maximum VCCPDDRO is %0d.%03dVolts. ",

(int)(MaxData), XAdcFractionToInt(MaxData));

VccPdroRawData= XAdcPs_GetMinMaxMeasurement(XAdcInstPtr,

XADCPS_MIN_VCCPDRO);

MinData= XAdcPs_RawToVoltage(VccPdroRawData);

printf("The Minimum VCCPDDRO is %0d.%03dVolts. ",

(int)(MinData), XAdcFractionToInt(MinData));

printf("Exiting the XAdc Polled Example. ");

returnXST_SUCCESS;

}

/****************************************************************************/

/**

*

* This function converts the fractionpart of the given floating point number

* (after the decimal point)to aninteger.

*

* @param FloatNum is the floating point number.

*

* @return Integer number to a precision of 3 digits.

*

* @note

* This function is used in the printingof floating point data to a STDIO device

* using the xil_printf function. Thexil_printf is a very small foot-print

* printf function and does notsupport the printing of floating point numbers.

*

*****************************************************************************/

intXAdcFractionToInt(floatFloatNum)

{

floatTemp;

Temp= FloatNum;

if(FloatNum < 0) {

Temp= -(FloatNum);

}

return( ((int)((Temp -(float)((int)Temp)) * (1000.0f))));

}

原文標題:Zynq中PS端XADC

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10854

    瀏覽量

    211578
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    609

    瀏覽量

    47175

原文標題:Zynq中PS端XADC

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    自動泊車的應(yīng)用

    與城市環(huán)境的復(fù)雜性和高速公路駕駛的風險相比,停車場景的特點是低速、空間有限和高可控性。這些特點為在車輛中逐步部署自動駕駛能力提供了可行的途徑。最重要的是自動泊車對時間不敏感,自動駕駛幀率至少
    的頭像 發(fā)表于 12-18 11:38 ?330次閱讀
    <b class='flag-5'>端</b>到<b class='flag-5'>端</b><b class='flag-5'>在</b>自動泊車的應(yīng)用

    連接視覺語言大模型與自動駕駛

    自動駕駛大規(guī)模駕駛數(shù)據(jù)上訓練,展現(xiàn)出很強的決策規(guī)劃能力,但是面對復(fù)雜罕見的駕駛場景,依然存在局限性,這是因為模型缺乏常識知識和
    的頭像 發(fā)表于 11-07 15:15 ?224次閱讀
    <b class='flag-5'>連接</b>視覺語言大模型與<b class='flag-5'>端</b>到<b class='flag-5'>端</b>自動駕駛

    復(fù)旦微PS+PL異構(gòu)多核開發(fā)案例分享,基于FMQL20SM國產(chǎn)處理器平臺

    機與評估板的調(diào)試串口相連接,將評估板的RS232串口連接至PC機的USB接口,硬件連接如下圖所示。 圖 3 參考產(chǎn)品資料,先加載設(shè)備樹文件和PL
    發(fā)表于 08-22 14:04

    電阻的電流和電壓是如何區(qū)分的

    電阻,又稱為四測量電阻凱爾文電阻,是一種特殊的電阻器,主要用于精密測量電路中的電阻值。四電阻的電流和電壓
    的頭像 發(fā)表于 08-05 10:48 ?1153次閱讀

    輸入和雙輸入的區(qū)別是什么

    信號通常連接到電路的一個端點,另一個端點則接地接參考電壓。 1.1 單輸入的原理 單輸入電路的基本原理是利用輸入信號與參考電壓之間的
    的頭像 發(fā)表于 07-31 10:50 ?2511次閱讀

    被測低電阻為何具有四個連接

    測量低電阻時,通常會使用四連接法,也稱為Kelvin測量法。這種方法可以有效地減少測量誤差,提高測量精度。以下是關(guān)于四連接法的介紹:
    的頭像 發(fā)表于 07-26 10:39 ?1230次閱讀

    FM20S用戶手冊-PS + PL異構(gòu)多核案例開發(fā)手冊

    PS) + FPGA可編程邏輯資源(PL)異構(gòu)多核SoC處理器設(shè)計的全國產(chǎn)工業(yè)評估板,PS
    發(fā)表于 07-25 16:14

    FM20S用戶手冊-PL案例開發(fā)手冊

    PS) + FPGA可編程邏輯資源(PL)異構(gòu)多核SoC處理器設(shè)計的全國產(chǎn)工業(yè)評估板,PS
    發(fā)表于 07-25 16:12

    esp_iot_sdk_v0.9.6_b1客戶斷開連接導(dǎo)致WDT重置怎么解決?

    客戶斷開連接,服務(wù)器一定不會掛起。實際上,由于客戶啟動了連接,因此客戶理所當然地應(yīng)該能夠斷開連接
    發(fā)表于 07-18 06:33

    ESP32做為主機連接多個從設(shè)備時,主機如何修改默認的連接參數(shù)?

    把默認連接間隔改到20ms, menuconfig里沒有找到對應(yīng)的配置信息(不確定有沒有),然后我試過每連接成功一個從機,主機發(fā)起一次
    發(fā)表于 06-21 16:56

    使用USBUART組件與主機PC通信,如果在串行端口打開的情況下終止固件,主機為什么會報錯?

    我正在使用 USBUART 組件與主機 PC 通信,我一直尋找某種機制來關(guān)閉 MCU 的串行端口,或者至少通知主機我將關(guān)閉端口。 我遇到過這樣一個問題:如果在串行端口打開的情況下終
    發(fā)表于 06-03 08:41

    有關(guān)PL利用AXI總線控制PSDDR進行讀寫(從機wready信號一直不拉高)

    一直拉高的。這與寫數(shù)據(jù)通道好像有點區(qū)別。 我不清楚PS 的DDR到底發(fā)生了什么,但是和MIG核就是有點不一樣,通過仿真MIG核可以發(fā)現(xiàn),PL的DDR是會先一直發(fā)出wready信號的
    發(fā)表于 05-31 12:04

    如何使用Vitis自帶的LWIP模板進行PS千兆以太網(wǎng)TCP通信?

    開發(fā)板有兩路千兆以太網(wǎng),通過RGMII接口連接,本實驗演示如何使用Vitis自帶的LWIP模板進行PS千兆以太網(wǎng)TCP通信。
    的頭像 發(fā)表于 04-28 10:44 ?3381次閱讀
    如何使用Vitis自帶的LWIP模板進行<b class='flag-5'>PS</b><b class='flag-5'>端</b>千兆以太網(wǎng)TCP通信?

    FPGA的PL固化流程

    電子發(fā)燒友網(wǎng)站提供《FPGA的PL固化流程.pdf》資料免費下載
    發(fā)表于 03-07 14:48 ?8次下載

    請問FX3的UART口和Xilinx ZYNQ7000的PS的UART進行硬件連接需要TTL電平轉(zhuǎn)換嗎?

    想讓FX3的UART口和Xilinx ZYNQ7000的PS(Processor system)的內(nèi)置UART相互通信,兩個芯片使用的是同一個電源(同在一塊板子上分別在兩塊相互連接
    發(fā)表于 02-28 08:32
    RM新时代网站-首页