亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

CC2652LP驅(qū)動Δ∑ADC-ADS126x系列

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-19 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Other Parts Discussed in Post:ADS1261, CC2652R, ADS1261EVM, TMP116

作者:TI工程師 Yue Tang

官網(wǎng)的ADS1261驅(qū)動采用的是相對久遠的TIVA驅(qū)動代碼架構(gòu),并且沒有提供完整工程,還存在一些小的bug,本文將闡述如何使用最新的SimpleLink? Platform MCU,并基于最新的TI-RTOS架構(gòu)來驅(qū)動ADS1261。本文的最后會給出完整的工程示例【下載】,示例稍作修改也可用于驅(qū)動TI其它支持SPI接口的Δ∑ADC。

ADS126x 系列ADC是包含可編程增益放大器 (PGA) 的精密 40kSPS ΔΣ 模數(shù)轉(zhuǎn)換器 ,它包含精密的電壓基準,內(nèi)部故障監(jiān)控器和用于橋式傳感器的交流激勵??梢詾橐笞顕揽恋臏y量(包括稱重秤和電阻式溫度檢測器 (RTD))提供高精度單芯片解決方案。

pYYBAGGKTgyAcIJ1AAEtvG57N8E920.png

Figure 1.ADS1261 內(nèi)部框圖

CC2652R 是 SimpleLink? 微控制器 (MCU) 平臺的一部分,該平臺包括 Wi-Fi?、低功耗Bluetooth?、低于 1GHz、Thread、Zigbee?、802.15.4 和主機 MCU,它們共用一個易于使用的通用開發(fā)環(huán)境,其中包含單核軟件開發(fā)套件 (SDK) 和豐富的工具集。借助一次性集成的 SimpleLink 平臺,可以將產(chǎn)品組合中的任何器件組合添加至您的設計中,從而在設計要求變更時實現(xiàn) 100% 代碼重用。

CC2652 Launchpad 是CC2652R對應的開發(fā)板,包含仿真器,如您是第一次接觸,請參考如下步驟,來了解它的使用。

第 1 步:購買 CC26X2R1 LaunchPad
第 2 步:下載 SimpleLink CC13x2 和 CC26x2 SDK
第 3 步:開始使用 SimpleLink Academy

本文采用IAR進行開發(fā),相關版本信息可在對應的SDK的release_notesxx.html中了解到,如下圖:

IAR Embedded Workbench:EWARM-8.32.2

SDK版本:simplelink_cc13x2_26x2_sdk_3_20_00_68【請先下載安裝后,再打開工程】

poYBAGGKTg6Ad7frAABhUCODvxM061.png

另外,使用的ADS1261EVM 也可從TI-STORE購買到。

ADS1261EVM CC2652LP 說明
/CS DIO_30 SPI – CS 片選
SCLK DIO_29 SPI – CLK時鐘
DIN DIO_28 SPI – 主出從入[ 主:CC2652R, 從:ADS1261 ]
DOUT DIO_27 SPI – 主入從出[ 主:CC2652R, 從:ADS1261 ]
/DRDY DIO_26 ADS1261 輸出 – 數(shù)據(jù)準備好指示,低有效
/RST DIO_25 ADS1261 輸入 – 復位,低有效
STR DIO_21 ADS1261輸入 – 啟動轉(zhuǎn)換,高有效
/PWDN DIO_15 ADS1261輸入 – 控制進入低功耗模式,低有效

如下圖,使用杜邦線,對照上表,將ADS1261EVM(左)和CC2652LP(右)連接起來。另外,在ADS1261EVM的JP1增加一個跳線帽【黃色框】,以旁路EVM上的TM4C129。

Figure 2.連線示意圖

基于TI-RTOS的SPI接口驅(qū)動及單獨控制CS引腳

【CC26X2R1_LAUNCHXL.c】 如下結(jié)構(gòu)體中增加紅色部分代碼

GPIO_PinConfig gpioPinConfigs[] = {

……

/* ADS1261*/

GPIOCC26XX_DIO_30 | GPIO_DO_NOT_CONFIG, /* CS 已100K上拉,輸入,低有效,SPI CS pin*/

GPIOCC26XX_DIO_15 | GPIO_DO_NOT_CONFIG, /* PWDN 已100K上拉,輸入,低有效 power down */

GPIOCC26XX_DIO_21 | GPIO_DO_NOT_CONFIG, /* STR 已100K上拉,輸入,高有效 啟動轉(zhuǎn)換*/

GPIOCC26XX_DIO_25 | GPIO_DO_NOT_CONFIG, /* RST 已100K上拉,輸入,低有效 復位 */

GPIOCC26XX_DIO_26 | GPIO_DO_NOT_CONFIG, /* DRDY 無上拉,輸出,低有效,數(shù)據(jù)準備就緒*/

};

【CC26X2R1_LAUNCHXL.c】使用SPI1,并且其中的CS引腳單獨控制

const *** ***[CC26X2R1_LAUNCHXL_SPICOUNT] = {

{

……

},

{

.baseAddr = SSI1_BASE,

.intNum = INT_SSI1_COMB,

.intPriority = ~0,

.swiPriority = 0,

.powerMngrId = PowerCC26XX_PERIPH_SSI1,

.defaultTxBufValue = 0xFF,

.rxChannelBitMask = 1<

.txChannelBitMask = 1<

.mosiPin = CC26X2R1_LAUNCHXL_SPI1_MOSI,

.misoPin = CC26X2R1_LAUNCHXL_SPI1_MISO,

.clkPin = CC26X2R1_LAUNCHXL_SPI1_CLK,

.csnPin = PIN_UNASSIGNED, //單獨控制【E2E LINK】

.minDmaTransferSize = 10

}

};

【CC26X2R1_LAUNCHXL.h】新增如下定義

/* ADS 1261 */

#define CC26X2R1_LAUNCHXL_SPI1_MISO IOID_27

#define CC26X2R1_LAUNCHXL_SPI1_MOSI IOID_28

#define CC26X2R1_LAUNCHXL_SPI1_CLK IOID_29

#define CC26X2R1_LAUNCHXL_SPI1_CSN IOID_30

#define CC26X2R1_LAUNCHXL_ADS1261_PWDN IOID_15 /* 已100K上拉,輸入,低有效 power down */

#define CC26X2R1_LAUNCHXL_ADS1261_STR IOID_21 /* 已100K上拉,輸入,高有效 啟動轉(zhuǎn)換*/

#define CC26X2R1_LAUNCHXL_ADS1261_RST IOID_25 /* 已100K上拉,輸入,低有效 復位 */

#define CC26X2R1_LAUNCHXL_ADS1261_DRDY IOID_26 /* 無上拉,輸出,低有效,數(shù)據(jù)準備就緒*/

新增如下紅色項

typedef enum CC26X2R1_LAUNCHXL_GPIOName {

CC26X2R1_LAUNCHXL_GPIO_S1 = 0,

CC26X2R1_LAUNCHXL_GPIO_S2,

CC26X2R1_LAUNCHXL_GPIO_LED_GREEN,

CC26X2R1_LAUNCHXL_GPIO_LED_RED,

CC26X2R1_LAUNCHXL_GPIO_TMP116_EN,

CC26X2R1_LAUNCHXL_GPIO_SPI_FLASH_CS,

CC26X2R1_LAUNCHXL_SDSPI_CS,

CC26X2R1_LAUNCHXL_GPIO_LCD_CS,

CC26X2R1_LAUNCHXL_GPIO_LCD_POWER,

CC26X2R1_LAUNCHXL_GPIO_LCD_ENABLE,

CC26X2R1_LAUNCHXL_GPIO_ADS1261_CS, /* IOID_30 已100K上拉,輸入,低有效,SPI CS pin*/

CC26X2R1_LAUNCHXL_GPIO_ADS1261_PWDN,/* IOID_15,已100K上拉,輸入,低有效 power down */

CC26X2R1_LAUNCHXL_GPIO_ADS1261_STR, /* IOID_21,已100K上拉,輸入,高有效 啟動轉(zhuǎn)換*/

CC26X2R1_LAUNCHXL_GPIO_ADS1261_RST, /* IOID_25已100K上拉,輸入,低有效 復位 */

CC26X2R1_LAUNCHXL_GPIO_ADS1261_DRDY, /* IOID_26無上拉,輸出,低有效,數(shù)據(jù)準備就緒*/

CC26X2R1_LAUNCHXL_GPIOCOUNT

} CC26X2R1_LAUNCHXL_GPIOName;

【spimaster.c】SPI初始化,基于EVM的實際情況

GPIO_setConfig(CC26X2R1_LAUNCHXL_GPIO_ADS1261_CS, GPIO_CFG_OUT_OD_NOPULL|GPIO_CFG_OUT_HIGH); GPIO_setConfig(CC26X2R1_LAUNCHXL_GPIO_ADS1261_PWDN, GPIO_CFG_OUT_OD_NOPULL|GPIO_CFG_OUT_HIGH);

GPIO_setConfig(CC26X2R1_LAUNCHXL_GPIO_ADS1261_STR, GPIO_CFG_OUT_OD_NOPULL);

GPIO_setConfig(CC26X2R1_LAUNCHXL_GPIO_ADS1261_RST, GPIO_CFG_OUT_OD_NOPULL|GPIO_CFG_OUT_HIGH);

GPIO_setConfig(CC26X2R1_LAUNCHXL_GPIO_ADS1261_DRDY, GPIO_CFG_IN_PU);

/* Open SPI as master (default) */

SPI_Params_init(&spiParams);

spiParams.frameFormat = SPI_POL0_PHA1;

spiParams.bitRate = 4000000;

masterSpi = SPI_open(CC26X2R1_LAUNCHXL_SPI1, &spiParams);

if (masterSpi == NULL) {

Display_printf(display, 0, 0, "Error initializing master SPI\n");

while (1);

}

else {

Display_printf(display, 0, 0, "Master SPI initialized\n");

}

其它改動這里不進一步贅述,請通過link獲得代碼工程,自行編譯測試。

運行代碼,參見如下串口打印信息:

測試代碼會循環(huán)讀寫ADS1261內(nèi)部寄存器,并會在最后讀取ADS1261內(nèi)u,其中“T:”表示CC2652 SPI口發(fā)送的數(shù)據(jù),“R:”表示CC2652 SPI口接收到的數(shù)據(jù),均為十六進。

Starting the SPI master example

Master SPI initialized

T:4100

R:FF41

T:4224

R:FF42

T:4301

R:FF43

T:4400

R:FF44

T:4520

R:FF45

T:4605E900

R:FF4605E9

T:4700E700

R:FF4700E7

T:48002400

R:FF480024

T:49003100

R:FF490031

T:4A000E00

R:FF4A000E

T:4B001B00

R:FF4B001B

T:4C40B700

R:FF4C40B7

T:4DFF9600

R:FF4DFF96

T:4E005A00

R:FF4E005A

T:4F004F00

R:FF4F004F

T:5000DB00

R:FF5000DB

T:51FF3D00

R:FF51FF3D

T:5200F100

R:FF5200F1

T:21006C000000

R:FF21006C00F3

T:220053000000

R:FF220053240F

T:230046000000

R:FF23004601F4

T:24002D000000

R:FF24002D00F3

T:250038000000

R:FF2500382013

T:260007000000

R:FF26000705E8

T:270012000000

R:FF27001200F3

T:2800D1000000

R:FF2800D100F3

T:2900C4000000

R:FF2900C400F3

T:2A00FB000000

R:FF2A00FB00F3

T:2B00EE000000

R:FF2B00EE00F3

T:2C0085000000

R:FF2C00854034

T:2D0090000000

R:FF2D0090FF00

T:2E00AF000000

R:FF2E00AF00F3

T:2F00BA000000

R:FF2F00BA00F3

T:30002E000000

R:FF30002E00F3

T:31003B000000

R:FF31003BFF00

T:320004000000

R:FF32000400F3

T:46108200

R:FF461082

T:5200F100

R:FF5200F1

T:5000DB00

R:FF5000DB

T:51BBE600

R:FF51BBE6

T:08007F00

R:FF08007F

T:0A005500

R:FF0A0055

T:1200AA0000000000

R:FF1200AA0654B219

Tmp:27.9743

最后,關于源TIVA驅(qū)動中的一處Bug,說明如下:

void writeMultipleRegisters(uint8_t addr, uint8_t count, const uint8_t data[])

{

/* Check that register map address range is not exceeded */

assert( (addr + count) <= NUM_REGISTERS );

uint8_t i;

for (i = addr; i < (addr + count); i++)

{

writeSingleRegister(addr +i, data[i]); //第一個值將是addr+addr

}

}

修改為:

void writeMultipleRegisters(uint8_t addr, uint8_t count, const uint8_t data[])

{

/* Check that register map address range is not exceeded */

assert( (addr + count) <= NUM_REGISTERS );

uint8_t i;

for (i = addr; i < (addr + count); i++)

{

writeSingleRegister(i, data[i]);

}

審核編輯:金巧

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

    關注

    12

    文章

    1926

    瀏覽量

    88080
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ADS1260/ADS1261 技術(shù)規(guī)格與應用總結(jié)

    ADS1260和ADS1261 (ADS126x) 是精密的 40kSPS、三角積分 (ΔΣ) 模數(shù)轉(zhuǎn)換器 (ADC),包括一個可編程增益放大器 (PGA)。這些器件還包括精密基準電壓
    的頭像 發(fā)表于 11-05 18:13 ?1098次閱讀
    <b class='flag-5'>ADS</b>1260/<b class='flag-5'>ADS</b>1261 技術(shù)規(guī)格與應用總結(jié)

    ADS1260 24位、40kSPS、5通道三角西格瑪ADC技術(shù)手冊

    ADS1260和ADS1261 (ADS126x) 是精密的 40kSPS、三角積分 (ΔΣ) 模數(shù)轉(zhuǎn)換器 (ADC),包括一個可編程增益放大器 (PGA)。這些器件還包括精密基準電壓
    的頭像 發(fā)表于 11-05 11:36 ?342次閱讀
    <b class='flag-5'>ADS</b>1260 24位、40kSPS、5通道三角西格瑪<b class='flag-5'>ADC</b>技術(shù)手冊

    ADS1260-Q1 車規(guī)級高精度 ΔΣ ADC 技術(shù)參數(shù)與應用總結(jié)

    ADS1260-Q1 和 ADS1261-Q1 (ADS126x-Q1) 是精密、40kSPS、三角積分 (ΔΣ) 模數(shù)轉(zhuǎn)換器 (ADC),包括可編程增益放大器 (PGA)。這些器件還
    的頭像 發(fā)表于 11-04 14:55 ?240次閱讀
    <b class='flag-5'>ADS</b>1260-Q1 車規(guī)級高精度 ΔΣ <b class='flag-5'>ADC</b> 技術(shù)參數(shù)與應用總結(jié)

    ADS9218雙路同步采樣 18 位 SAR ADC 技術(shù)文檔總結(jié)

    ADS921x是18位、高速、雙通道、同步采樣、模數(shù)轉(zhuǎn)換器(ADC系列,具有用于ADC輸入的集成驅(qū)動器。集成
    的頭像 發(fā)表于 10-24 14:14 ?391次閱讀
    <b class='flag-5'>ADS</b>9218雙路同步采樣 18 位 SAR <b class='flag-5'>ADC</b> 技術(shù)文檔總結(jié)

    ADS868xW 系列 16 位高速 SAR ADC 技術(shù)文檔總結(jié)

    ADS8681W、ADS8685W和ADS8689W是基于逐次逼近(SAR)模數(shù)轉(zhuǎn)換器(ADC)拓撲的集成數(shù)據(jù)采集系統(tǒng)系列。這些器件具有高速
    的頭像 發(fā)表于 10-24 14:00 ?507次閱讀
    <b class='flag-5'>ADS</b>868xW <b class='flag-5'>系列</b> 16 位高速 SAR <b class='flag-5'>ADC</b> 技術(shù)文檔總結(jié)

    ADS9228 雙通道、同步采樣、16位10MSPS SAR ADC技術(shù)手冊

    ADS922x是一系列16位、高速、雙通道、同步采樣、模數(shù)轉(zhuǎn)換器(ADC),具有用于ADC輸入的集成驅(qū)動器。集成的
    的頭像 發(fā)表于 10-23 09:35 ?297次閱讀
    <b class='flag-5'>ADS</b>9228 雙通道、同步采樣、16位10MSPS SAR <b class='flag-5'>ADC</b>技術(shù)手冊

    ADS9128 16位高速SAR ADC數(shù)據(jù)手冊完整總結(jié)

    ADS912x是16位高速模數(shù)轉(zhuǎn)換器(ADC系列,集成了用于ADC輸入的驅(qū)動器。集成的ADC
    的頭像 發(fā)表于 10-22 13:55 ?308次閱讀
    <b class='flag-5'>ADS</b>9128 16位高速SAR <b class='flag-5'>ADC</b>數(shù)據(jù)手冊完整總結(jié)

    ?ADS911x系列18位高速SAR ADC數(shù)據(jù)手冊完整總結(jié)

    ADS911x是18位高速模數(shù)轉(zhuǎn)換器(ADC系列,具有用于ADC輸入的集成驅(qū)動器。集成的ADC
    的頭像 發(fā)表于 10-22 13:47 ?306次閱讀
    ?<b class='flag-5'>ADS911x</b><b class='flag-5'>系列</b>18位高速SAR <b class='flag-5'>ADC</b>數(shù)據(jù)手冊完整總結(jié)

    ADS9127 16位高速SAR ADC數(shù)據(jù)手冊總結(jié)

    ADS912x是16位高速模數(shù)轉(zhuǎn)換器(ADC系列,集成了用于ADC輸入的驅(qū)動器。集成的ADC
    的頭像 發(fā)表于 10-22 11:16 ?368次閱讀
    <b class='flag-5'>ADS</b>9127 16位高速SAR <b class='flag-5'>ADC</b>數(shù)據(jù)手冊總結(jié)

    ADS9117 18位5MSPS SAR ADC,帶ADC驅(qū)動器和基準電壓源技術(shù)手冊

    ADS911x是18位高速模數(shù)轉(zhuǎn)換器(ADC系列,具有用于ADC輸入的集成驅(qū)動器。集成的ADC
    的頭像 發(fā)表于 10-22 11:10 ?370次閱讀
    <b class='flag-5'>ADS</b>9117 18位5MSPS SAR <b class='flag-5'>ADC</b>,帶<b class='flag-5'>ADC</b><b class='flag-5'>驅(qū)動</b>器和基準電壓源技術(shù)手冊

    ADS9129 16 位 20MSPS SAR ADC,帶 ADC 驅(qū)動器和基準驅(qū)動器技術(shù)手冊

    ADS912x是16位高速模數(shù)轉(zhuǎn)換器(ADC系列,集成了用于ADC輸入的驅(qū)動器。集成的ADC
    的頭像 發(fā)表于 10-21 15:49 ?327次閱讀
    <b class='flag-5'>ADS</b>9129 16 位 20MSPS SAR <b class='flag-5'>ADC</b>,帶 <b class='flag-5'>ADC</b> <b class='flag-5'>驅(qū)動</b>器和基準<b class='flag-5'>驅(qū)動</b>器技術(shù)手冊

    ?Texas Instruments CC2652P7無線MCU:多協(xié)議連接與高性能處理的完美結(jié)合

    Texas Instruments CC2652P7 SimpleLink? 多協(xié)議無線微控制器(MCU)是一款2.4GHz無線MCU,支持各種協(xié)議,如Thread、Zigbee?、Matter
    的頭像 發(fā)表于 09-16 11:01 ?482次閱讀
    ?Texas Instruments <b class='flag-5'>CC2652</b>P7無線MCU:多協(xié)議連接與高性能處理的完美結(jié)合

    Texas Instruments LP5899/LP5899-Q1 LED驅(qū)動器數(shù)據(jù)手冊

    Texas Instruments LP5899/LP5899-Q1 LED驅(qū)動器是SPI兼容設備,具有內(nèi)部振蕩器,可生成LP589x/LP589x
    的頭像 發(fā)表于 07-14 11:23 ?471次閱讀
    Texas Instruments <b class='flag-5'>LP</b>5899/<b class='flag-5'>LP</b>5899-Q1 LED<b class='flag-5'>驅(qū)動</b>器數(shù)據(jù)手冊

    ADS126xADS1256比較優(yōu)勢在哪里?

    看了下ADS1256和ADS126x的數(shù)據(jù)手冊,發(fā)現(xiàn)相同輸出速率下,精度相差不是很大啊,ADS126x相對于ADS1256的優(yōu)勢在哪里?現(xiàn)在一個項目準備在這兩款直接選一款!糾結(jié)中。。
    發(fā)表于 01-02 08:35

    ADS127L11發(fā)送了“START”命令,adc沒有工作是怎么回事?

    1、編程環(huán)境是fpga,并且成功控制過ads126x芯片 2、ads127L11和ads126x芯片的spi時序是相同的,我的程序是在ads126x基礎上改的,只不過數(shù)據(jù)位從
    發(fā)表于 11-22 08:05