精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

XADC內嵌在PS端,允許CPU或其他主機連接XADC,而不用使用PL端。XADC最大采樣率為1MSPS,精度為12bits,內置電壓和溫度傳感器,可監測芯片的電壓及溫度信息。電壓傳感器可監測芯片的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之家】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

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

    關注

    68

    文章

    10829

    瀏覽量

    211193
  • Zynq
    +關注

    關注

    10

    文章

    608

    瀏覽量

    47129

原文標題:Zynq中PS端XADC

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

收藏 人收藏

    評論

    相關推薦

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

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

    復旦微PS+PL異構多核開發案例分享,基于FMQL20SM國產處理器平臺

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

    電阻的電流和電壓是如何區分的

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

    輸入和雙輸入的區別是什么

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

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

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

    FM20S用戶手冊-PS + PL異構多核案例開發手冊

    PS) + FPGA可編程邏輯資源(PL)異構多核SoC處理器設計的全國產工業評估板,PS
    發表于 07-25 16:14

    FM20S用戶手冊-PL案例開發手冊

    PS) + FPGA可編程邏輯資源(PL)異構多核SoC處理器設計的全國產工業評估板,PS
    發表于 07-25 16:12

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

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

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

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

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

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

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

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

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

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

    FPGA的PL固化流程

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

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

    想讓FX3的UART口和Xilinx ZYNQ7000的PS(Processor system)的內置UART相互通信,兩個芯片使用的是同一個電源(同在一塊板子上分別在兩塊相互連接
    發表于 02-28 08:32

    AD9681是否可被zynq-7020的pl驅動?

    您好: 我想咨詢AD9681是否可以被zynq-7020的PL驅動(zynq7020的性能是否足夠)。我們需要做衛星的探測載荷,由于衛星能源控制嚴格,我們需要低功耗、多通道(至少8個)、高采樣率
    發表于 12-04 08:18