18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

mmWave SDK demo中集成I2C接口驅(qū)動(dòng)所需的步驟及操作

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-01-14 10:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者: TI 工程師 Wesley He

在一些特殊的使用場(chǎng)合,有需要使用AWR1642對(duì)PMIC的輸出電壓進(jìn)行調(diào)節(jié),或是讀取PMIC 內(nèi)部的工作狀態(tài),此時(shí)需要I2C接口對(duì)PMIC進(jìn)行讀寫(xiě)操作,本文介紹了在現(xiàn)有的mmWave SDK demo中集成I2C接口驅(qū)動(dòng)所需的步驟及操作。

本文的測(cè)試環(huán)境如下:

測(cè)試軟件版本:mmWave SDK 2.0.0.4

測(cè)試硬件:AWR1642BOOST EVM

1. 在mmWave SDK demo中增加I2C驅(qū)動(dòng)代碼

第一步是添加代碼以包含和初始化I2C驅(qū)動(dòng)程序。從I2C接口發(fā)送和接收均需要此驅(qū)動(dòng)程序的支持,以下是在mss_main.c中添加的初始化I2C驅(qū)動(dòng)程序的C代碼。此測(cè)試代碼可以復(fù)制到現(xiàn)有工程中。I2C驅(qū)動(dòng)操作步驟為:GPIO初始化,I2C驅(qū)動(dòng)初始化,配置I2C改寫(xiě)PMIC(LP87524B)寄存器以實(shí)現(xiàn)PMIC輸出電壓調(diào)節(jié)。

注意LP87524B寄存器信息來(lái)源于其datasheet:LP87524B/J-Q1具有集成開(kāi)關(guān)的具有集成開(kāi)關(guān)的 4-A + 2.5-A +兩個(gè) 1.5-A降壓穩(wěn)壓器數(shù)據(jù)表 (Rev. A),I2C驅(qū)動(dòng)參考代碼如下:

#include

static int32_t I2C_GPIOInit(void)

{

#if (defined(SOC_XWR14XX))

/* Setup the PINMUX to bring out the XWR14xx I2C pins */

Pinmux_Set_OverrideCtrl(SOC_XWR14XX_PINR3_PADAH, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);

Pinmux_Set_FuncSel(SOC_XWR14XX_PINR3_PADAH, SOC_XWR14XX_PINR3_PADAH_I2C_SDA);

Pinmux_Set_OverrideCtrl(SOC_XWR14XX_PINP4_PADAI, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);

Pinmux_Set_FuncSel(SOC_XWR14XX_PINP4_PADAI, SOC_XWR14XX_PINP4_PADAI_I2C_SCL);

#else

/* Setup the PINMUX to bring out the XWR16xx I2C pins */

Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINF13_PADAH, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);

Pinmux_Set_FuncSel(SOC_XWR16XX_PINF13_PADAH, SOC_XWR16XX_PINF13_PADAH_I2C_SDA);

Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PING14_PADAI, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);

Pinmux_Set_FuncSel(SOC_XWR16XX_PING14_PADAI, SOC_XWR16XX_PING14_PADAI_I2C_SCL);

#endif

return 0;

}

static int32_t I2C_Communication_Test()

{

bool retVal = false;

int32_t errCode = 0;

uint32_t arg;

uint8_t rxData[16];

uint8_t txData[16];

I2C_Transaction i2cTransaction;

I2C_Handle i2cHandle;

I2C_Params i2cParams;

/* Reset the transmit and receive buffer */

memset(&rxData, 0, sizeof (rxData));

/* Initializa the I2C driver */

I2C_init();

/* Initialize the I2C driver default parameters */

I2C_Params_init(&i2cParams);

i2cParams.transferMode = I2C_MODE_BLOCKING;

i2cParams.bitRate = I2C_100kHz;

/* Open the I2C driver */

i2cHandle = I2C_open(0, &i2cParams);

if (i2cHandle == NULL)

{

System_printf ("Error: I2C Driver Open failed\n");

return -1;

}

/* Configure the I2C device in I2C_CMD_ADDR_MODE mode */

arg = 0;//arg set to 0, and the I2C addr mode is 7-bit.

errCode = I2C_control (i2cHandle, I2C_CMD_ADDR_MODE, (void* )&arg);

if (errCode < 0)

{

System_printf ("Error: I2C control Set I2C_CMD_ADDR_MODE failed [Error code %d]\n", errCode);

return -1;

}

//read the LP87524B buck3 output voltage register

txData[0] = 0x10;

i2cTransaction.slaveAddress = 0x60;//LP87524B/J-Q1 Device Address = 0x60

i2cTransaction.writeBuf = txData;

i2cTransaction.writeCount = 1;

i2cTransaction.readBuf = rxData;

i2cTransaction.readCount = 1;

retVal = I2C_transfer(i2cHandle, &i2cTransaction);

if (retVal == false)

{

System_printf ("Error: I2C Transfer failed\n");

return -1;

}

System_printf("I2C_READ: addr=0x%x, Val=0x%x\n",txData[0],rxData[0]);

//write the LP87524B buck3 output voltage = 2.0V

txData[0] = 0x10;

txData[1] = 0xbb;//default=0xca,2.3V,0xb1=1.8V, 0xbb=2.0V

i2cTransaction.slaveAddress = 0x60;//LP87524B/J-Q1 Device Address = 0x60

i2cTransaction.writeBuf = txData;

i2cTransaction.writeCount = 2;

i2cTransaction.readBuf = rxData;

i2cTransaction.readCount = 0;

retVal = I2C_transfer(i2cHandle, &i2cTransaction);

if (retVal == false)

{

System_printf ("Error: I2C Transfer failed\n");

return -1;

}

System_printf("I2C_Write: LP87524B buck3 = 2.0V Done\n");

//read the LP87524B buck3 output voltage register

txData[0] = 0x10;

i2cTransaction.slaveAddress = 0x60;//LP87524B/J-Q1 Device Address = 0x60

i2cTransaction.writeBuf = txData;

i2cTransaction.writeCount = 1;

i2cTransaction.readBuf = rxData;

i2cTransaction.readCount = 1;

retVal = I2C_transfer(i2cHandle, &i2cTransaction);

if (retVal == false)

{

System_printf ("Error: I2C Transfer failed\n");

return -1;

}

System_printf("I2C_READ: addr=0x%x, Val=0x%x\r\n",txData[0],rxData[0]);

//write the LP87524B buck2 output voltage = 1.5V

txData[0] = 0x0e;

txData[1] = 0Xa2;//default=0xb1,1.8V, 0x4d=1V 0xa2=1.5V

i2cTransaction.slaveAddress = 0x60;//LP87524B/J-Q1 Device Address = 0x60

i2cTransaction.writeBuf = txData;

i2cTransaction.writeCount = 2;

i2cTransaction.readBuf = rxData;

i2cTransaction.readCount = 0;

retVal = I2C_transfer(i2cHandle, &i2cTransaction);

if (retVal == false)

{

System_printf ("Error: I2C Transfer failed\n");

return -1;

}

System_printf("I2C_Write: LP87524B buck2 = 1.5V Done\n");

if (retVal == false)

{

System_printf ("Error: I2C combined Transfer to Slave failed\n");

return -1;

}

/* Close I2C driver */

I2C_close(i2cHandle);

return 0;

}

//Call these function in void MmwDemo_mssInitTask(UArg arg0, UArg arg1)

errCode = I2C_GPIOInit();

if (errCode == -1)

System_printf("I2C_GPIOInit Error\r\n");

errCode = I2C_Communication_Test();

if (errCode == -1)

System_printf("I2C_Communication_Test Error\n");

else

System_printf("I2C_Communication_Test Done\n");

2. 將工程鏈接到I2C驅(qū)動(dòng)庫(kù)

最后一步是通過(guò)鏈接I2C驅(qū)動(dòng)程序來(lái)構(gòu)建可執(zhí)行文件。 如果使用CCS項(xiàng)目,可以將I2C驅(qū)動(dòng)程序添加到項(xiàng)目的鏈接器屬性中,如圖1所示。

pYYBAGGKVg2ALnqyAADCaMnHFx0296.png

圖1. CCS Project Linker Properties

如果使用makefile編譯工程,執(zhí)行相同的程序。

###################################################################################

# Additional libraries which are required to build the DEMO:

###################################################################################

MSS_MMW_DEMO_STD_LIBS = $(R4F_COMMON_STD_LIB) \

-llibpinmux_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibdma_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibcrc_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibuart_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibgpio_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibmailbox_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibmmwavelink_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibmmwave_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibcli_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT) \

-llibi2c_$(MMWAVE_SDK_DEVICE_TYPE).$(R4F_LIB_EXT)

MSS_MMW_DEMO_LOC_LIBS = $(R4F_COMMON_LOC_LIB) \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/pinmux/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/uart/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/dma/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/crc/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/gpio/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/drivers/mailbox/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/mmwavelink/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/control/mmwave/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/cli/lib \

-i$(MMWAVE_SDK_INSTALL_PATH)/ti/utils/i2c/lib

3. 運(yùn)行測(cè)試?yán)?/p>

運(yùn)行測(cè)試程序后,CCS控制臺(tái)輸出打印信息如下,使用萬(wàn)用表測(cè)量LP87524輸出電壓即為設(shè)置的電壓,I2C驅(qū)動(dòng)添加成功。

**********************************************

Debug: Launching the Millimeter Wave Demo

**********************************************

I2C_READ: addr=0x10, Val=0xca

I2C_Write: LP87524B buck3 = 2.0V Done

I2C_READ: addr=0x10, Val=0xbb

I2C_Write: LP87524B buck2 = 1.5V Done

I2C_Communication_Test Done

審核編輯:何安

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

    關(guān)注

    12

    文章

    1925

    瀏覽量

    88007
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    10432
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入剖析I2C協(xié)議

    ,I2C也是一種可以多主設(shè)備,多從設(shè)備的總線(xiàn)協(xié)議,通過(guò)地址索引,I2C可以使能所需從設(shè)備,I2C的出現(xiàn)主要是用來(lái)實(shí)現(xiàn)不同集成電路組件之間的控
    的頭像 發(fā)表于 08-21 15:10 ?2882次閱讀
    深入剖析<b class='flag-5'>I2C</b>協(xié)議

    高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C接口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C接口相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C
    發(fā)表于 07-30 18:31
    高效率、6通道、白光LED<b class='flag-5'>驅(qū)動(dòng)</b>器,帶<b class='flag-5'>I2C</b><b class='flag-5'>接口</b> skyworksinc

    簡(jiǎn)單了解I2C接口

    在電子電路的復(fù)雜世界里,各種電路模塊設(shè)備需要相互通信才能協(xié)同工作 ,I2C接口就像是電路模塊設(shè)備間的溝通橋梁,今天就帶大家深入了解它。
    的頭像 發(fā)表于 05-08 14:15 ?1730次閱讀
    簡(jiǎn)單了解<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介

    總線(xiàn)驅(qū)動(dòng)I2C總線(xiàn)驅(qū)動(dòng)是在操作系統(tǒng)層面上實(shí)現(xiàn)對(duì)I2C總線(xiàn)的控制和管理的軟件模塊。它負(fù)責(zé)與硬件層面的I2
    發(fā)表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介

    總線(xiàn)驅(qū)動(dòng)I2C總線(xiàn)驅(qū)動(dòng)是在操作系統(tǒng)層面上實(shí)現(xiàn)對(duì)I2C總線(xiàn)的控制和管理的軟件模塊。它負(fù)責(zé)與硬件層面的I2
    發(fā)表于 04-15 10:19

    嵌入式教育科普|I2C接口全面解析

    1、基本概念I2C的全稱(chēng)是Inter-IntegratedCircuit,譯為集成電路總線(xiàn),是一種同步、雙向、半雙工的兩線(xiàn)式串行接口總線(xiàn)。連接到I2C總線(xiàn)上的設(shè)備既可以用作主設(shè)備,也可
    的頭像 發(fā)表于 04-11 09:44 ?2728次閱讀
    嵌入式教育科普|<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>全面解析

    求助,關(guān)于CMSIS I2C驅(qū)動(dòng)程序問(wèn)題求解?

    在嘗試修改 ENET PHY/MAC 驅(qū)動(dòng)程序以使用 I2C 時(shí),我在嘗試讓接口運(yùn)行速度超過(guò)400kHz 時(shí)遇到了問(wèn)題。 我在 RT1160 evk 板上測(cè)試
    發(fā)表于 03-20 07:48

    I2C總線(xiàn)通信原理 如何設(shè)計(jì)I2C總線(xiàn)電路

    I2C總線(xiàn)通信原理 I2C(Inter-Integrated Circuit)總線(xiàn)是一種用于集成電路之間進(jìn)行通信的串行通信協(xié)議。它最早由飛利浦公司(現(xiàn)被恩智浦電子收購(gòu))于1982年推出,是一種簡(jiǎn)單
    的頭像 發(fā)表于 01-31 15:01 ?1675次閱讀

    I2C總線(xiàn)與Arduino的接口示例

    在現(xiàn)代電子設(shè)計(jì)中,I2C總線(xiàn)因其簡(jiǎn)單性和靈活性而廣受歡迎。它允許多個(gè)設(shè)備共享同一通信線(xiàn)路,從而節(jié)省空間和成本。Arduino,作為一個(gè)多功能的微控制器平臺(tái),自然也支持I2C通信。 I2C總線(xiàn)
    的頭像 發(fā)表于 01-17 15:34 ?2159次閱讀

    I2C總線(xiàn)應(yīng)用實(shí)例分析

    。I2C總線(xiàn)使用兩條線(xiàn)進(jìn)行通信:數(shù)據(jù)線(xiàn)(SDA)和時(shí)鐘線(xiàn)(SCL)。這種雙線(xiàn)制設(shè)計(jì)使得I2C總線(xiàn)能夠在多個(gè)設(shè)備之間共享,而不需要為每個(gè)設(shè)備單獨(dú)布線(xiàn)。 應(yīng)用實(shí)例:溫濕度傳感器 假設(shè)我們正在設(shè)計(jì)一個(gè)智能家居系統(tǒng),需要實(shí)時(shí)監(jiān)測(cè)室內(nèi)的溫濕度。我們選擇使用一個(gè)帶有
    的頭像 發(fā)表于 01-17 15:09 ?1083次閱讀

    AN-840: 通過(guò)I2C接口更新代碼

    電子發(fā)燒友網(wǎng)站提供《AN-840: 通過(guò)I2C接口更新代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:04 ?0次下載
    AN-840: 通過(guò)<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>更新代碼

    UC-001:MicroConverter I2C兼容接口

    電子發(fā)燒友網(wǎng)站提供《UC-001:MicroConverter I2C兼容接口.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 15:51 ?0次下載
    UC-001:MicroConverter <b class='flag-5'>I2C</b>兼容<b class='flag-5'>接口</b>

    TMS320C6000 DSP內(nèi)部集成電路(I2C)模塊參考指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 DSP內(nèi)部集成電路(I2C)模塊參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-30 16:43 ?0次下載
    TMS320<b class='flag-5'>C</b>6000 DSP內(nèi)部<b class='flag-5'>集成</b>電路(<b class='flag-5'>I2C</b>)模塊參考指南

    BTB擴(kuò)展接口:LCD、Camera、UART、I2C等|詳解篇

    今天我們來(lái)學(xué)習(xí)的是BTB擴(kuò)展接口的LCD、Camera、UART、I2C詳解,特別分享Air201硬件BTB擴(kuò)展接口相關(guān)內(nèi)容。
    的頭像 發(fā)表于 11-30 09:39 ?1538次閱讀
    BTB擴(kuò)展<b class='flag-5'>接口</b>:LCD、Camera、UART、<b class='flag-5'>I2C</b>等|詳解篇

    RISC V的I2C操作

    :RISC V的I2C操作 文章出處:【微信公眾號(hào):易靈思FPGA技術(shù)交流】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
    的頭像 發(fā)表于 11-01 11:06 ?982次閱讀