chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

AD8400系列數(shù)字電位器的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

CHANBAEK ? 來(lái)源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-09 16:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一些時(shí)候我們需要在系統(tǒng)使用過(guò)程中改變某些電路電阻值以達(dá)到改變?cè)O(shè)定的目的,這時(shí)候我們就會(huì)使用電位器。在我們使用數(shù)字控制電路時(shí)多選擇數(shù)字電位器。在這一篇我們就來(lái)設(shè)計(jì)AD8400系列數(shù)字電位器的驅(qū)動(dòng)。

1、功能概述

AD8400/AD8402/AD8403分別是單通道/雙通道/四通道、256位、數(shù)字控制可變電阻(VR)器件,可實(shí)現(xiàn)與機(jī)械電位計(jì)或可變電阻相同的電子調(diào)整功能。AD8400內(nèi)置一個(gè)可變電阻,采用緊湊的SOIC-8封裝。AD8402內(nèi)置兩個(gè)獨(dú)立的可變電阻,采用節(jié)省空間的SOIC-14表面貼裝封裝。AD8403內(nèi)置四個(gè)獨(dú)立的可變電阻,提供24引腳PDIP、SOIC和TSSOP三種封裝。各器件均內(nèi)置一個(gè)帶游標(biāo)觸點(diǎn)的固定電阻,該游標(biāo)觸點(diǎn)在載入控制串行輸入寄存器的數(shù)字碼所確定的數(shù)字碼分接該固定電阻值。游標(biāo)與固定電阻任一端點(diǎn)之間的電阻值,隨傳輸至VR鎖存器中的數(shù)字碼呈線性變化。在A端與游標(biāo)或B端與游標(biāo)之間,各可變電阻提供一個(gè)完全可編程電阻值。A至B固定端接電阻(1 kΩ、10 kΩ、50 kΩ或100 kΩ)的通道間匹配容差為±1%,標(biāo)稱(chēng)溫度系數(shù)為500 ppm/°C。借助獨(dú)特的開(kāi)關(guān)電路,可將傳統(tǒng)開(kāi)關(guān)電阻設(shè)計(jì)中固有的高脈沖干擾降至最低,從而避免任何先合后開(kāi)或先開(kāi)后合操作。

Dingtalk_20221206154648.jpg

每個(gè)VR均有各自的VR鎖存器,用來(lái)保存其編程電阻值。這些VR鎖存器由一個(gè)SPI兼容型串行至并行移位寄存器更新,該移位寄存器從一個(gè)標(biāo)準(zhǔn)三線式串行輸入數(shù)字接口加載數(shù)據(jù)。由10個(gè)數(shù)據(jù)位構(gòu)成的數(shù)據(jù)字傳輸至串行輸入寄存器。

Dingtalk_20221206154648.jpg

該數(shù)據(jù)字經(jīng)過(guò)解碼,前2位確定需要載入的VR鎖存器地址,后8位是數(shù)據(jù)。利用串行寄存器相對(duì)端的串行數(shù)據(jù)輸出引腳,就可以簡(jiǎn)單的菊花鏈形式將多個(gè)VR連接,而無(wú)需額外的外部解碼邏輯。

復(fù)位(RS)引腳通過(guò)將80H載入VR鎖存器來(lái)迫使游標(biāo)移到中間電平。SHDN引腳則迫使A端的電阻變?yōu)槎说蕉碎_(kāi)路狀態(tài),并使游標(biāo)與B端短路,從而實(shí)現(xiàn)毫瓦級(jí)功耗的關(guān)斷狀態(tài)。當(dāng)SHDN回到邏輯高電平時(shí),先前的鎖存器設(shè)置將使游標(biāo)處于關(guān)斷前的電阻值設(shè)置。數(shù)字接口在關(guān)斷期間仍有效,以便更改代碼,當(dāng)器件脫離關(guān)斷狀態(tài)時(shí),游標(biāo)將處于新的位置。

2、驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

我們已經(jīng)了解了AD840x系列數(shù)字電位器的基本情況,接下來(lái)我們將基于此實(shí)現(xiàn)AD840x系列數(shù)字電位器的驅(qū)動(dòng)。

2.1、對(duì)象定義

我們的的驅(qū)動(dòng)設(shè)計(jì)都是基于對(duì)象的操作,所以我們先要抽象出AD840x系列數(shù)字電位器的對(duì)象類(lèi)型。這是一個(gè)系列對(duì)象所以有不同的類(lèi)型,每種類(lèi)型又有不同的標(biāo)稱(chēng)電阻值。這些都可以區(qū)別不同的對(duì)象,我們將其抽象為AD840x對(duì)象的屬性。而對(duì)于操作則相對(duì)簡(jiǎn)單,我們只需要向AD840x對(duì)象寫(xiě)數(shù)據(jù),所以將寫(xiě)數(shù)據(jù)作為它的操作。具體定義如下:

/* 定義AD840x類(lèi)型枚舉 */
typedef enum AD840x{
AD8400,
AD8402,
AD8403
}AD840xType;
 
/* 定義AD840x通道選擇枚舉 */
typedef enum AD840xLdac{
AD840x_VR1=0x00,
AD840x_VR2=0x01,
AD840x_VR3=0x02,
AD840x_VR4=0x03
}AD840xLdacType;
 
/* 定義AD840x標(biāo)稱(chēng)電阻枚舉 */
typedef enum AD840xNR{
AD840x_NR1k,//標(biāo)稱(chēng)電阻為1K
AD840x_NR10k,//標(biāo)稱(chēng)電阻為10K
AD840x_NR50k,//標(biāo)稱(chēng)電阻為50K
AD840x_NR100k//標(biāo)稱(chēng)電阻為100K
}AD840xNRType;
 
/* 定義AD840x對(duì)象類(lèi)型 */
typedef struct AD840xObject{
AD840xType type;//AD840x對(duì)象類(lèi)型
float nominalValue;//標(biāo)稱(chēng)電阻值
void (*Write)(uint8_t rdac);//寫(xiě)數(shù)據(jù)操作函數(shù)指針
}AD840xObjectType;

有操作對(duì)象后,還需要對(duì)該對(duì)象變量作初始化才可使用,所以我們還需要定義一個(gè)初始化函數(shù)用于對(duì)象的初始化。AD840x對(duì)象的初始化函數(shù)如下:

/* 初始化AD840x對(duì)象 */
void AD840xInitialization(AD840xObjectType *vr,AD840xType type,AD840xWriteByte write,AD840xNRType nr)
{
float nValue[4]={1000,10000,50000,100000};


if((vr==NULL)||(write==NULL))
{
return;
}


vr->type=type;


vr->Write=write;


vr->nominalValue=nValue[nr];
}

2.2、對(duì)象操作

AD8400/AD8402/AD8403分別是單通道/雙通道/四通道、256位、數(shù)字控制可變電阻(VR)器件。更改VR編程設(shè)置是通過(guò)將10位串行數(shù)據(jù)字送入SDI引腳來(lái)實(shí)現(xiàn)。此數(shù)據(jù)字由2個(gè)地址位(MSB優(yōu)先)和8個(gè)數(shù)據(jù)位(也是MSB優(yōu)先)組成。串行寄存器數(shù)據(jù)字格式如下:

Dingtalk_20221206154648.jpg

AD840x的地址分配,由ADDR解碼器解碼,確定接收位B7至B0中的串行寄存器數(shù)據(jù)的VR鎖存器的位置。位置的計(jì)算公式如下:

VR#=A1*2+A0+1

單通道AD8400要求A1 = A0 = 0。雙通道AD8402要求A1 = 0。A1、A0的取值方式如下:

Dingtalk_20221206154648.jpg

關(guān)于AD840x對(duì)象設(shè)置游標(biāo)的位置與電阻的關(guān)系:

Dingtalk_20221206154648.jpg

Dingtalk_20221206154648.jpg

根據(jù)上述兩個(gè)公式,當(dāng)我們需要某一阻值的電阻時(shí),只需要設(shè)置響應(yīng)的D值就看可以了。具體的操作函數(shù)如下:

/*設(shè)置AD8400游標(biāo)的位置*/
void SetAD8400ResistorValue(AD840xObjectType *vr,uint16_t resistorValue,AD840xLdacType ldac)
{
  float mValue=0.0;
  uint16_t sendValue=0;
  uint8_t txData[2];
  
if((resistorValue<50)||(resistorValue>vr->nominalValue))
{
return;
}


if((vr->type==AD8400)&&(ldac!=AD840x_VR1))
{
return;
}


if((vr->type==AD8402)&&(ldac>AD840x_VR2))
{
return;
}


  mValue=((float)resistorValue-(float)RESISTANCEINITIAL)/(float)vr->nominalValue;
  sendValue=(uint8_t)(mValue*RESISTANCEINDEX);


  sendValue=sendValue||(ldac<<8);
  txData[0]=(sendValue>>2);
  txData[1]=(sendValue<<6);
  vr->Write(txData[0]);
  vr->Write(txData[1]);
}

第三個(gè)參數(shù)通道選擇,如前面所述由A1、A0決定。對(duì)于AD8400是單通道,直接指定第一通道即可。而AD8402對(duì)應(yīng)第一、第二通道。

3、驅(qū)動(dòng)的使用

我們實(shí)現(xiàn)了AD840x系列數(shù)字電位器的驅(qū)動(dòng),接下來(lái)我們需要來(lái)討論一下它的應(yīng)用,及如何使用我們開(kāi)發(fā)的驅(qū)動(dòng)實(shí)現(xiàn)我們的應(yīng)用。

3.1、聲明并初始化對(duì)象

首先我們依然是需要聲明AD840x對(duì)象變量。我們?cè)隍?qū)動(dòng)設(shè)計(jì)時(shí)已經(jīng)定義了AD840xObjectType對(duì)象類(lèi)型,所以我們就是用這個(gè)對(duì)象類(lèi)型聲明AD840x對(duì)象變量。具體操作如下:

AD840xObjectType ad840x;

對(duì)于定義的這一對(duì)象變量尚不能直接使用,必須先對(duì)其初始化。我們?cè)隍?qū)動(dòng)中也設(shè)計(jì)了初始化函數(shù):void AD840xInitialization(AD840xObjectType *vr,AD840xType type,AD840xWriteByte write,AD840xNRType nr)。它的四個(gè)參數(shù)分別是:AD840x對(duì)象指針、AD840x的類(lèi)型、寫(xiě)AD840x對(duì)象函數(shù)指針、AD840x的標(biāo)稱(chēng)電阻值。

AD840x對(duì)象指針指向的就是我們所要初始化的對(duì)象變量。AD840x的類(lèi)型就是源自AD840xType枚舉。AD840x的標(biāo)稱(chēng)電阻值則源自AD840xNRType枚舉。關(guān)于寫(xiě)AD840x對(duì)象函數(shù)指針則是與具體硬件平臺(tái)和接口相關(guān)的數(shù)據(jù)發(fā)送函數(shù)。在這里就是指SPI對(duì)口的數(shù)據(jù)發(fā)送函數(shù)。具體類(lèi)型如下:

typedef void (*AD840xWriteByte)(uint8_t rdac);

如我們可聲明為:void WriteAD8400bySPI(uint8_t rdac);

有了這些參數(shù)我們就可以使用初始化函數(shù)來(lái)初始化我們前面聲明的對(duì)象變量了。具體形式如下:

AD840xInitialization(&ad840x, AD8400, WriteAD8400bySPI, AD840x_NR10k);

我們就將對(duì)象變量ad840x初始化為AD8400類(lèi)型的標(biāo)稱(chēng)電阻為10K的可變電阻對(duì)象,且向?qū)ο髮?xiě)數(shù)據(jù)的函數(shù)為WriteAD8400bySPI。

3.2、基于對(duì)象進(jìn)行操作

我們聲明并初始化完成對(duì)象變量后。就可以調(diào)用操作函數(shù)來(lái)實(shí)現(xiàn)我們想要對(duì)AD840x對(duì)象進(jìn)行的操作了。使用電阻設(shè)置函數(shù)即可:

void SetAD8400ResistorValue(AD840xObjectType *vr,uint16_t resistorValue,AD840xLdacType ldac)

其3個(gè)參數(shù),第一個(gè)是我們要操作的對(duì)象的指針;第二個(gè)是我們想要設(shè)置的電阻值;第三個(gè)參數(shù)是通道選擇。

4、應(yīng)用總結(jié)

我們已經(jīng)實(shí)現(xiàn)了AD840x的驅(qū)動(dòng)及應(yīng)用。AD840x的應(yīng)用并不復(fù)雜,我們只需要設(shè)定我們想要的電阻就可以了。在我們的應(yīng)用中得到的結(jié)果與我們預(yù)期的完全一致。

在使用驅(qū)動(dòng)時(shí)我們應(yīng)該注意。AD8402與AD8403均為多通道的可變電阻。在使用時(shí)需要注意通道選擇。通道選擇由下發(fā)數(shù)據(jù)的A1、A0位決定。驅(qū)動(dòng)中已定義為枚舉,選擇即可。

源碼公布到GitHUB:https://github.com/foxclever/ExPeriphDriver

聲明:本文內(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)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    AD527x系列數(shù)字電位器驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

    在一些時(shí)候我們需要使用精度更高的數(shù)字電位器來(lái)實(shí)現(xiàn)我們的應(yīng)用。我們經(jīng)常使用AD527x系列數(shù)字電位器
    的頭像 發(fā)表于 12-09 16:01 ?3607次閱讀
    AD527x<b class='flag-5'>系列</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>的<b class='flag-5'>驅(qū)動(dòng)</b>設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    數(shù)字電位器

    最近打算用數(shù)字電位器來(lái)平衡電橋測(cè)量電阻,遇到幾個(gè)問(wèn)題。1.有沒(méi)有1M的數(shù)字電位器啊,有的話能夠推薦下型號(hào)嗎2.我發(fā)現(xiàn)我所知道的數(shù)字
    發(fā)表于 03-28 14:13

    請(qǐng)教關(guān)于數(shù)字電位計(jì)AD8400的問(wèn)題

    我使用貴公司的AD8400,出現(xiàn)了擊穿我的電路的二極管情況,所以我用示波器測(cè)試了AD8400的W1、B1兩個(gè)引腳,發(fā)現(xiàn)了如下圖的波形。請(qǐng)問(wèn)這是什么原因
    發(fā)表于 08-02 10:18

    請(qǐng)問(wèn)有誰(shuí)用過(guò)AD8400A10數(shù)字電位器嗎?

    AD8400A10數(shù)字電位器有沒(méi)有人用過(guò)?硬件電路怎么搭,程序怎么寫(xiě)
    發(fā)表于 07-14 21:04

    什么是數(shù)字電位器?

    數(shù)字電位器的工作原理數(shù)字電位器的典型應(yīng)用
    發(fā)表于 04-08 06:58

    理解和應(yīng)用數(shù)字電位器

    理解和應(yīng)用數(shù)字電位器         主題詞:數(shù)字電位器,機(jī)械電位器
    發(fā)表于 10-23 23:41 ?52次下載

    DAC與數(shù)字電位器

    DAC與數(shù)字電位器摘要:本應(yīng)用筆記對(duì)數(shù)/模轉(zhuǎn)換(DAC)和數(shù)字電位進(jìn)行了對(duì)比,傳統(tǒng)的數(shù)字
    發(fā)表于 11-16 11:45 ?62次下載

    數(shù)字電位器替代機(jī)械電位器

    數(shù)字電位器替代機(jī)械電位器 摘要:數(shù)字可調(diào)節(jié)電位器,也稱(chēng)為數(shù)字
    發(fā)表于 11-27 17:38 ?3312次閱讀
    用<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>替代機(jī)械<b class='flag-5'>電位器</b>

    數(shù)字電位器替代機(jī)械電位器

    摘要:數(shù)字可調(diào)節(jié)電位器,也稱(chēng)為數(shù)字電位器或digpot,不僅能夠在眾所周知的音頻應(yīng)用中替代機(jī)械電位器,而且能夠在所有電子設(shè)備中替代傳統(tǒng)的機(jī)械
    發(fā)表于 04-28 10:22 ?2046次閱讀
    用<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>替代機(jī)械<b class='flag-5'>電位器</b>

    理解和應(yīng)用數(shù)字電位器

    描述了數(shù)字電位器工作原理、特點(diǎn)、分類(lèi)及廣泛應(yīng)用,闡述了與機(jī)械電位器相比,數(shù)字電位器的優(yōu)點(diǎn),同時(shí)也描述了數(shù)
    發(fā)表于 05-09 16:13 ?153次下載
    理解和應(yīng)用<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>

    1/2/4通道數(shù)字電位器AD8400/AD8402/AD8403數(shù)據(jù)表

    The AD8400/AD8402/AD8403 provide a single-, dual-, or quad-channel, 256-position, digitally
    發(fā)表于 10-16 15:20 ?14次下載
    1/2/4通道<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b><b class='flag-5'>AD8400</b>/AD8402/AD8403數(shù)據(jù)表

    數(shù)字電位器應(yīng)用實(shí)例_數(shù)字電位器四大應(yīng)用電路

    本文主要介紹了數(shù)字電位器的應(yīng)用,包括了介紹了X9313數(shù)字電位器的應(yīng)用、數(shù)字電位器
    發(fā)表于 01-23 09:39 ?4.9w次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>應(yīng)用實(shí)例_<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>四大應(yīng)用電路

    數(shù)字電位器工作原理詳解_數(shù)字電位器應(yīng)用_數(shù)字電位器選型指南

    本文介紹了什么是數(shù)字電位器、數(shù)字電位器的特點(diǎn)與數(shù)字電位器工作原理,其次詳細(xì)的介紹了
    發(fā)表于 01-23 10:20 ?6.2w次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>工作原理詳解_<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>應(yīng)用_<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>選型指南

    AD8400/AD8402/AD8403:1/2/4通道數(shù)字電位計(jì)數(shù)據(jù)手冊(cè)

    AD8400/AD8402/AD8403:1/2/4通道數(shù)字電位計(jì)數(shù)據(jù)手冊(cè)
    發(fā)表于 03-18 23:19 ?5次下載
    <b class='flag-5'>AD8400</b>/AD8402/AD8403:1/2/4通道<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位</b>計(jì)數(shù)據(jù)手冊(cè)

    數(shù)字電位器Linux驅(qū)動(dòng)程序

    數(shù)字電位器Linux驅(qū)動(dòng)程序
    發(fā)表于 04-21 16:56 ?9次下載
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>Linux<b class='flag-5'>驅(qū)動(dòng)</b>程序