RM新时代网站-首页

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

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

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

使用多個(gè)DS1267數(shù)字電位器和8051微處理器產(chǎn)生3線信號(hào)

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-06-13 14:58 ? 次閱讀

DS1267為雙通道數(shù)字電位器,具有串行“移位寄存器”型接口。移位寄存器有一個(gè)輸入引腳,用于移入數(shù)據(jù),還有一個(gè)輸出引腳,在寫入時(shí)將數(shù)據(jù)移出移位寄存器的最后一位。這樣就可以將多個(gè)DS1267以菊花鏈方式連接在一起,并在同一串行總線上一起編程。本應(yīng)用筆記通過電路示例和偽代碼示例描述了如何實(shí)現(xiàn)此目的,展示了如何為任何微處理器開發(fā)代碼。

介紹

Dallas Semiconductor的數(shù)字電位器DS1267非常適合需要數(shù)模轉(zhuǎn)換器DAC)的系統(tǒng),或需要可編程偏置電流、電壓或電阻而無(wú)需傳統(tǒng)機(jī)械電位器人工干預(yù)的系統(tǒng)。DS1267在一個(gè)封裝中提供兩個(gè)數(shù)字電位器。獨(dú)特的3線協(xié)議允許將其中多個(gè)芯片串聯(lián)或并聯(lián)放置??蛇x的堆疊配置允許芯片的兩個(gè)8位電位計(jì)串聯(lián)放置,提供9位精度。DS1267可用于輸入范圍為-5V至+5V的雙電源系統(tǒng),只要基板偏置電壓低于所使用的最低輸入電壓即可。

本應(yīng)用筆記概述了通過公共總線與多個(gè)DS1267通信的不同配置。它還提供與兩個(gè)以菊花鏈形式串聯(lián)在一起的DS1267通信所需的硬件和軟件。

與DS1267通信的硬件設(shè)置

連接3線總線以與多個(gè)芯片通信有兩種主要方式。這些設(shè)備可以串聯(lián)或并聯(lián)連接。對(duì)于任一類型的連接,一次將向器件寫入 17 位數(shù)據(jù)塊。數(shù)據(jù)將確定電位計(jì)游標(biāo)器的位置和每次復(fù)位取消置位時(shí)的堆棧輸出。

系列

標(biāo)準(zhǔn)串聯(lián)連接如下圖1所示。這種連接方法適用于具有雙向端口的微處理器,這些端口在預(yù)期輸入時(shí)具有高阻抗。這允許使用反饋電阻從C驅(qū)動(dòng)DQ引腳外菊花鏈中的最后一個(gè)設(shè)備。如果不希望從器件讀取數(shù)據(jù),則可以省略隔離電阻。這種方法允許無(wú)限數(shù)量的芯片串聯(lián)放置。

wKgaomSIF8KAUgdGAAAi_BVUzME504.png

圖1.三個(gè)DS1267串聯(lián),與反饋電阻串聯(lián),用于讀取移位寄存器。

注意:反饋電阻應(yīng)約為10kΩ,以便在I/O引腳2和C之間提供足夠的隔離外當(dāng) I/O 引腳 2 驅(qū)動(dòng) DQ 時(shí)。

第二種串行連接方法(圖2)必須用于具有集電極開路I/O端口的微處理器。在集電極開路端口上,有一個(gè)內(nèi)部(8051微處理器如此)或外部上拉電阻,無(wú)需高壓側(cè)驅(qū)動(dòng)器即可產(chǎn)生高信號(hào)。這樣做通常是為了消除微處理器與連接到它的某個(gè)外部設(shè)備爭(zhēng)用的可能性。如果在C之間連接了隔離電阻外和DQ,如圖1所示,那么每當(dāng)C時(shí),它都會(huì)在寫入周期中導(dǎo)致器件錯(cuò)誤外試圖將 DQ 引腳驅(qū)動(dòng)為低電平,因?yàn)?C外將超過弱上拉電阻的驅(qū)動(dòng)。圖2所示的設(shè)置允許使用一個(gè)額外的引腳讀取DS1267中的移位寄存器,僅用于集電極開路端口上的輸入。典型的3線信號(hào)像以前一樣控制DS1267。

wKgZomSIE5-ALEIdAAARdhJYWy0644.gif

圖2.DS1267與用于從移位寄存器讀取的獨(dú)立輸入串聯(lián)。

在兩種串聯(lián)連接情況下,DS1267的反饋都可以省略,只需要三根線即可寫入任意數(shù)量的DS1267。如果以后必須知道電位器的狀態(tài),則必須使用2字節(jié)的RAM來(lái)跟蹤寫入總線上每個(gè)DS1267的值。串聯(lián)方法的主要缺點(diǎn)是串行總線上的n個(gè)DS1267寫入或讀取的時(shí)間是單芯片的n倍。

平行

第二類設(shè)置是并行配置。圖3所示為并行設(shè)置,可用于寫入多個(gè)DS1267,DQ和CLK在公共和獨(dú)立的RST信號(hào)中。該系統(tǒng)的優(yōu)點(diǎn)是只需17個(gè)DS1267時(shí)鐘周期即可寫入所使用的任何器件。缺點(diǎn)是每增加一個(gè)DS1267就需要一個(gè)額外的輸出引腳。如果需要多個(gè)DS1267和高速寫入,則可以通過增加解碼器對(duì)地址進(jìn)行解碼,以產(chǎn)生復(fù)位(片選)信號(hào)。這將允許操作 2(# 可用選擇引腳)DS1267s.因此,如果有三個(gè)I/O引腳可用于解碼地址,則可以對(duì)它們進(jìn)行解碼,允許1267個(gè)DS16雙通道電位器(<>個(gè)電位器,采用<>個(gè)封裝)工作在公共DQ和CLK信號(hào)下。如果下面的系統(tǒng)使用解碼器,則可以再增加五個(gè)電位計(jì),而不會(huì)損失另一個(gè)輸出引腳。

wKgZomSIF92AXW_KAAAhYu_jqHs606.png

圖3.三條并行配置的DS1267共用DQ和CLK線路。

上述設(shè)置不包含任何DS1267讀數(shù)的規(guī)定。如果要在使用解碼器的系統(tǒng)中讀取電位計(jì),則可以將解碼器地址行與多路復(fù)用器一起使用,以讀取所有 C外s,像以前一樣進(jìn)入單個(gè)雙向I/O引腳或單獨(dú)的輸入引腳。

圖4(下一頁(yè))所示的硬件設(shè)置用于生成附錄A中的代碼,為DS22C2微處理器提供87.520 MHz時(shí)鐘。DS232A將5V CMOS信號(hào)轉(zhuǎn)換為RS232電平,用于微處理器和PC之間的通信。DS232A連接到標(biāo)準(zhǔn)串行端口插頭,該插頭可以連接到PC,允許微處理器以19200波特(1個(gè)停止位,無(wú)奇偶校驗(yàn),無(wú)流量控制)反饋。兩個(gè)電位計(jì)以菊花鏈形式連接(串聯(lián)),并連接到端口 1 上的微處理器。第一個(gè)DS1267以堆疊配置連接,提供9位DAC。第二個(gè)DS1267提供兩個(gè)8位DAC。由于它們是串聯(lián)連接的,因此每次讀取和寫入嘗試都將涉及移動(dòng) 2*17 位。LED 也已連接到端口 1.0 作為狀態(tài)指示器。

注意: 8051 具有收集器開路端口;因此,C 必須使用單獨(dú)的輸入引腳外.使用DQ作為雙向端口引腳會(huì)導(dǎo)致微處理器和DS1267之間的通信錯(cuò)誤。此外,如果要使用串行端口,時(shí)鐘速率必須接近 22.118 MHz。如果時(shí)鐘速率低于該頻率的 2-3%,可能會(huì)導(dǎo)致串行端口通信錯(cuò)誤。

wKgaomSIF-OAcbSLAACNsK1-RC0548.png

圖4.DS87C520微處理器DS232A串行端口發(fā)送器和兩個(gè)DS1267以菊花鏈形式連接在3線總線上。

3線協(xié)議

3線協(xié)議是一種簡(jiǎn)單的協(xié)議,通過1267位移位寄存器對(duì)DS17的兩個(gè)電位器進(jìn)行編程。移位寄存器由復(fù)位、數(shù)據(jù)和時(shí)鐘信號(hào)控制。復(fù)位 (RST) 用于選擇芯片。該信號(hào)為高電平有效,必須在嘗試寫入或讀取器件時(shí)置位。數(shù)據(jù)引腳(DQ)用于將數(shù)據(jù)傳輸?shù)狡骷?。將?shù)據(jù)正確放置在DQ上后,時(shí)鐘信號(hào)(CLK)被脈沖以同步數(shù)據(jù)傳輸。這些事件的時(shí)序在DS1267數(shù)據(jù)資料中給出。移入器件的數(shù)據(jù)可以繼續(xù)轉(zhuǎn)移到另一個(gè)具有級(jí)聯(lián)輸出的3線器件(C外.)級(jí)聯(lián)輸出也可以路由回控制器,以允許微處理器讀取它所寫的內(nèi)容。

串聯(lián)的兩個(gè)器件的數(shù)據(jù)格式如圖5所示。

wKgZomSIE6OAJS3aAAAVhMgSHhY650.gif

圖5.兩個(gè)17位DS1267移位寄存器級(jí)聯(lián)在一起,用于串聯(lián)工作。

在這種配置中,移入寄存器的第一個(gè)位一直移位到最后。因此,在數(shù)據(jù)傳輸開始時(shí)放置在 DQ 上的第一個(gè)位將是 STK#2。這是DS1267 #2的堆棧控制位。接下來(lái)發(fā)送的8位是控制DS8 #1上游標(biāo)1267位置的2位,圖中標(biāo)有電位器3。請(qǐng)注意,字節(jié)的 MSB 首先發(fā)送到該部分。然后接下來(lái)的8位將控制電位計(jì)2。發(fā)送的下一個(gè)位將是STK#1,它控制DS1267 #1的堆棧輸出。電位計(jì) 1 和 0 的字節(jié)將分別跟隨堆棧控制位。如果總線上僅連接一個(gè)芯片,則只有17位數(shù)據(jù)將傳送到該器件,但數(shù)據(jù)的格式與圖5前半部分所示相同。

要將17位寫出到DS1267之一,必須執(zhí)行以下步驟:

斷言 RST(高)

在DQ引腳上放置一個(gè)數(shù)據(jù)位

脈沖CLK

重復(fù)步驟 2) 和 3) 再重復(fù) 16 次

取消斷言 RST(低)

如果將 n 個(gè) DS1267 級(jí)聯(lián)在一起,則在取消 RST 之前執(zhí)行步驟 2) 和 3) n × 17 次。

如果可選反饋電阻與雙向端口一起使用,則存儲(chǔ)在移位寄存器中的值 通過完成以下操作進(jìn)行讀?。?/p>

置位 RST,并將 I/O 引腳 2 置于高阻抗?fàn)顟B(tài)。

讀取 I/O 引腳 2(等于 C外如果 I/O 引腳 2 處于高阻抗?fàn)顟B(tài))。

脈沖CLK。

重復(fù)步驟2)和3)16倍以上。

取消斷言 RST。

從具有 C 的部分讀取外連接到單獨(dú)的輸入,以下序列必須 完成:

斷言 RST。

讀取 C外在輸入引腳處。

C 的寫入值外到DQ。

脈沖CLK。

重復(fù) 2)、3) 和 4) 再重復(fù) 16 次。

取消斷言 RST。

:C 的值外必須寫回 DQ,因?yàn)樽x取和寫入嘗試之間的復(fù)位和時(shí)鐘信號(hào)的操作沒有區(qū)別。因此,C外被寫回 DQ,如圖 1 中的硬件所做的那樣。此外,如果串聯(lián)連接n個(gè)DS1267,則序列2、3和4必須執(zhí)行n×17次,否則DS1267中的數(shù)據(jù)將不與讀取例程開始時(shí)相同。

使用軟件生成的1267線通信控制兩個(gè)DS3

主要的3線通信程序

1267-Wire協(xié)議部分所述的DS3通信方法通過四個(gè)程序在代碼中完成。這些例程用于寫入 34 位、讀取 34 位、序列化要發(fā)送到每個(gè)電位計(jì)的數(shù)據(jù)字節(jié),以及將從電位計(jì)接收的數(shù)據(jù)位重建為字節(jié)。前兩個(gè)套路分別調(diào)用后兩個(gè)套路。該代碼位于附錄 A 中,下面列出了這些例程的簡(jiǎn)要說明。

WritePots3

此例程是主編寫例程。它寫入存儲(chǔ)在稱為 stack1 和 stack2 的內(nèi)存位置中的堆??刂莆?,并使用 WriteBits3 例程將所有數(shù)據(jù)寫入電位計(jì)。寫入DS1267的數(shù)據(jù)以4個(gè)字節(jié)(PotData0、PotData1、PotData2和PotData3)存儲(chǔ)。

WriteBits3

此例程通過將 MSB 旋轉(zhuǎn)到進(jìn)位,將進(jìn)位寫入 DQ,最后脈沖 CLK 來(lái)寫入累加器中存儲(chǔ)的字節(jié)??偣仓貜?fù)八次,將整個(gè)字節(jié)寫入DS1267。

ReadPots3

此例程是主閱讀例程。它讀取堆??刂莆?,并將其存儲(chǔ)在稱為 stack1 和 stack2 的內(nèi)存位置。它還使用 ReadBits3 例程回讀控制每個(gè)電位計(jì)的 8 位信息,并將值存儲(chǔ)在標(biāo)記為 PotData4、PotData0、PotData1 和 PotData2 的 3 字節(jié)中。

讀取位3

此例程從用于存儲(chǔ)游標(biāo)位置的電位計(jì)讀回 8 位,將 8 位轉(zhuǎn)換為字節(jié),并將數(shù)據(jù)傳遞回累加器中的調(diào)用過程。

其他例程

這些例程都通過執(zhí)行下面描述的功能來(lái)支持主通信例程。

initSP1

初始化串行端口 1。

介紹

通過串行端口 1 在 PC 終端上顯示歡迎消息

init3wire

初始化 3 線總線信號(hào)(RST、DQ、CLK),并設(shè)置用于寫入電位計(jì)的變量中的值(堆棧 1、堆棧 2、PotData0、PotData1、PotData2、PotData3

重量

可編程等待功能。使用 wait16us,并寄存器 R5、R6 和 R7,以實(shí)現(xiàn) 14.42 μs 和 3.7 min 之間的延遲。

等待16us

每次調(diào)用延遲 1.6 μs。

DisplayPots:

使用 outchar 和 binasc 顯示從每個(gè)電位計(jì)讀回的值。DS1267的工作不需要代碼,但是當(dāng)您可以在嘗試讀取后驗(yàn)證存儲(chǔ)字節(jié)中的數(shù)據(jù)是否正確時(shí),調(diào)試讀取問題變得更加容易。

outchar

將單個(gè)字符放入串行端口 1 緩沖區(qū),然后等待設(shè)置串行傳輸完成標(biāo)志,然后再返回。

binasc

將累加器中存儲(chǔ)的整數(shù)轉(zhuǎn)換為十六進(jìn)制格式的兩個(gè) ASCII 字節(jié)。

outstr

使用 outchar 通過串行端口 1 將空終止的字符串發(fā)送到 PC。發(fā)送的字符串存儲(chǔ)在代碼末尾的消息部分中。

主程序

主程序執(zhí)行以下順序:

禁用中斷

初始化串行端口 1

初始化 3 線引腳和變量

反轉(zhuǎn)位于 P1.0 上的 LED,表示程序的開始

將電位計(jì)寫入初始化期間存儲(chǔ)的值

延遲 5 秒,這樣做是為了萬(wàn)用表可用于確定讀取功能(下一個(gè))是否將電位計(jì)覆蓋為不同的值

讀取電位計(jì)

顯示結(jié)果

開始閃爍 LED,每秒閃爍一次,表示程序已完成執(zhí)行

審核編輯:郭婷

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

    關(guān)注

    31

    文章

    5332

    瀏覽量

    120204
  • dac
    dac
    +關(guān)注

    關(guān)注

    43

    文章

    2287

    瀏覽量

    190952
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2257

    瀏覽量

    82387
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用8051微處理器生成3信號(hào)以控制多個(gè)DS1267數(shù)字電位計(jì)

    本應(yīng)用指南介紹了利用一個(gè)公共總線與多個(gè)DS1267數(shù)字電位計(jì)進(jìn)行通信的不同配置結(jié)構(gòu),還提供了與兩個(gè)菊花鏈串行連接的DS1267進(jìn)行通信所需的
    發(fā)表于 09-23 10:52

    DS1267雙通道數(shù)字電位器芯片說明

    信號(hào)線用來(lái)傳輸電位器觸點(diǎn)設(shè)置和堆棧選擇位配置的17位I/O移位注冊(cè)DS1267的。圖3(a)是3
    發(fā)表于 07-02 14:49

    DS1267 pdf datasheet (Dual Dig

    values. The DS1267 communicates through a 3-wire serial port interface that drives an internal control logic unit. Multiple
    發(fā)表于 10-04 20:20 ?24次下載

    數(shù)字電位器DS1267及其在電橋自動(dòng)平衡中的應(yīng)用

    數(shù)字電位器DS1267及其在電橋自動(dòng)平衡中的應(yīng)用摘要:DS1267是DALLAS公司生產(chǎn)的256結(jié)點(diǎn)雙數(shù)字
    發(fā)表于 10-03 08:57 ?37次下載

    DS1267中文資料 (256結(jié)點(diǎn)雙數(shù)字電位器)

    DS1267是DALLAS公司生產(chǎn)的256結(jié)點(diǎn)雙數(shù)字電位器,它具有三種串行接口且功耗很低,很容易與單片機(jī)接口,文中介紹了數(shù)字電位器
    發(fā)表于 10-03 09:02 ?216次下載

    數(shù)字電位器DS1267 及其在電橋自動(dòng)平衡中的應(yīng)用

    數(shù)字電位器DS1267 及其在電橋自動(dòng)平衡中的應(yīng)用摘要:DS1267是DALLAS公司生產(chǎn)的256 結(jié)點(diǎn)雙數(shù)字
    發(fā)表于 11-17 14:59 ?44次下載

    數(shù)字電位器DS1267及典型應(yīng)用

    數(shù)字電位器是一種用數(shù)字信號(hào)控制電位器滑動(dòng)端位置的新型器件,它由數(shù)字信號(hào)控制調(diào)節(jié),具有在自動(dòng)控制系統(tǒng)方面機(jī)械
    發(fā)表于 12-19 15:28 ?96次下載

    DS1267 雙路、±5V、數(shù)字電位器芯片

    DS1267 雙路、±5V、數(shù)字電位器芯片 The DS1267 has two 256-position potentiometers, with wiper positions
    發(fā)表于 10-04 20:24 ?1331次閱讀
    <b class='flag-5'>DS1267</b> 雙路、±5V、<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>芯片

    使用多個(gè)DS1267數(shù)字電位器在一個(gè)8051微處理器生成3

    Abstract: The DS1267 is a dual digital potentiometer with a serial "shift register" type interface.
    發(fā)表于 04-28 12:06 ?1319次閱讀
    使用<b class='flag-5'>多個(gè)</b><b class='flag-5'>DS1267</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>在一個(gè)<b class='flag-5'>8051</b><b class='flag-5'>微處理器</b>生成<b class='flag-5'>3</b><b class='flag-5'>線</b>

    DS1267B雙數(shù)字電位器概述

    DS1267B有兩個(gè)256位電位器,抽頭每個(gè)組由8位存儲(chǔ)值。 DS1267B通過3串行接口,驅(qū)動(dòng)
    發(fā)表于 03-04 13:52 ?3004次閱讀
    <b class='flag-5'>DS1267</b>B雙<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>概述

    使用多個(gè)數(shù)字電位器DS12678051微處理器產(chǎn)生信號(hào)

    系列 標(biāo)準(zhǔn)系列連接如圖1所示。這種連接方法與具有雙向端口的微處理器一起工作,當(dāng)期望輸入時(shí)具有高阻抗。這使得反饋電阻可用于從在菊花鏈的最后一個(gè)設(shè)備驅(qū)動(dòng)的DQ引腳cout。如果不希望從該部分讀取,則可以省略隔離電阻。這種方法允許無(wú)限數(shù)量的芯片被放置在一系列。
    發(fā)表于 04-11 10:45 ?3次下載
    使用<b class='flag-5'>多個(gè)數(shù)字</b><b class='flag-5'>電位器</b><b class='flag-5'>DS1267</b>與<b class='flag-5'>8051</b><b class='flag-5'>微處理器</b><b class='flag-5'>產(chǎn)生</b>三<b class='flag-5'>線</b><b class='flag-5'>信號(hào)</b>

    數(shù)字電位器DS126的結(jié)構(gòu)和工作原理及DS1267在電橋自動(dòng)平衡的應(yīng)用說明

    DS1267是DALLAS公司生產(chǎn)的256 結(jié)點(diǎn)雙數(shù)字電位器,它具有三種串行接口且功耗很低,很容易與單片機(jī)接口,文中介紹了數(shù)字電位器
    發(fā)表于 11-20 17:48 ?13次下載
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b><b class='flag-5'>DS</b>126的結(jié)構(gòu)和工作原理及<b class='flag-5'>DS1267</b>在電橋自動(dòng)平衡的應(yīng)用說明

    數(shù)字電位器DS1267中文資料及應(yīng)用

    DS1267是DALLAS公司生產(chǎn)的256結(jié)點(diǎn)雙數(shù)字電位器,它具有三種串行接口且功耗很低,很容易與單片機(jī)接口,文中介紹了數(shù)字電位器
    發(fā)表于 04-14 10:40 ?13次下載

    使用多個(gè)DS1267數(shù)字電位器8051微處理器產(chǎn)生3信號(hào)

    本應(yīng)用筆記概述了通過公共總線與多個(gè)DS1267通信的不同配置。它還提供與兩個(gè)以菊花鏈形式串聯(lián)在一起的DS1267通信所需的硬件和軟件。
    的頭像 發(fā)表于 02-20 10:23 ?1198次閱讀
    使用<b class='flag-5'>多個(gè)</b><b class='flag-5'>DS1267</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>和<b class='flag-5'>8051</b><b class='flag-5'>微處理器</b><b class='flag-5'>產(chǎn)生</b><b class='flag-5'>3</b><b class='flag-5'>線</b><b class='flag-5'>信號(hào)</b>

    使用裝有DS3900的PC與DS1267、DS1867和DS1868通信

    本應(yīng)用筆記介紹如何使用DS3900 PC串口轉(zhuǎn)3接口與DS1267DS1867和DS1868
    的頭像 發(fā)表于 02-25 11:06 ?1114次閱讀
    使用裝有<b class='flag-5'>DS</b>3900的PC與<b class='flag-5'>DS1267</b>、<b class='flag-5'>DS</b>1867和<b class='flag-5'>DS</b>1868通信
    RM新时代网站-首页