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

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

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

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

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

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

介紹

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

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

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

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

系列

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

wKgaomSIF8KAUgdGAAAi_BVUzME504.png

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

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

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

wKgZomSIE5-ALEIdAAARdhJYWy0644.gif

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

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

平行

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

wKgZomSIF92AXW_KAAAhYu_jqHs606.png

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

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

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

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

wKgaomSIF-OAcbSLAACNsK1-RC0548.png

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

3線協(xié)議

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

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

wKgZomSIE6OAJS3aAAAVhMgSHhY650.gif

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

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

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

斷言 RST(高)

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

脈沖CLK

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

取消斷言 RST(低)

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

如果可選反饋電阻與雙向端口一起使用,則存儲在移位寄存器中的值 通過完成以下操作進(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 的部分讀取外連接到單獨的輸入,以下序列必須 完成:

斷言 RST。

讀取 C外在輸入引腳處。

C 的寫入值外到DQ。

脈沖CLK。

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

取消斷言 RST。

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

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

主要的3線通信程序

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

WritePots3

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

WriteBits3

此例程通過將 MSB 旋轉(zhuǎn)到進(jìn)位,將進(jìn)位寫入 DQ,最后脈沖 CLK 來寫入累加器中存儲的字節(jié)。總共重復(fù)八次,將整個字節(jié)寫入DS1267。

ReadPots3

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

讀取位3

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

其他例程

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

initSP1

初始化串行端口 1。

介紹

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

init3wire

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

重量

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

等待16us

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

DisplayPots:

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

outchar

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

binasc

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

outstr

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

主程序

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

禁用中斷

初始化串行端口 1

初始化 3 線引腳和變量

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

將電位計寫入初始化期間存儲的值

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

讀取電位計

顯示結(jié)果

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

審核編輯:郭婷

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

    關(guān)注

    31

    文章

    5250

    瀏覽量

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

    關(guān)注

    43

    文章

    2226

    瀏覽量

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

    關(guān)注

    11

    文章

    2212

    瀏覽量

    81978
收藏 人收藏

    評論

    相關(guān)推薦

    利用8051微處理器生成3信號以控制多個DS1267數(shù)字電位

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

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

    信號線用來傳輸電位器觸點設(shè)置和堆棧選擇位配置的17位I/O移位注冊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及其在電橋自動平衡中的應(yīng)用

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

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

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

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

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

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

    數(shù)字電位器是一種用數(shù)字信號控制電位器滑動端位置的新型器件,它由數(shù)字信號控制調(diào)節(jié),具有在自動控制系統(tǒng)方面機械
    發(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 ?1289次閱讀
    <b class='flag-5'>DS1267</b> 雙路、±5V、<b class='flag-5'>數(shù)字</b><b class='flag-5'>電位器</b>芯片

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

    Abstract: The DS1267 is a dual digital potentiometer with a serial "shift register" type interface.
    發(fā)表于 04-28 12:06 ?1295次閱讀
    使用<b class='flag-5'>多個</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'>3</b><b class='flag-5'>線</b>

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

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

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

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

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

    DS1267是DALLAS公司生產(chǎn)的256 結(jié)點雙數(shù)字電位器,它具有三種串行接口且功耗很低,很容易與單片機接口,文中介紹了數(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>在電橋自動平衡的應(yīng)用說明

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

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

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

    本應(yīng)用筆記概述了通過公共總線與多個DS1267通信的不同配置。它還提供與兩個以菊花鏈形式串聯(lián)在一起的DS1267通信所需的硬件和軟件。
    的頭像 發(fā)表于 02-20 10:23 ?1056次閱讀
    使用<b class='flag-5'>多個</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'>信號</b>

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

    本應(yīng)用筆記介紹如何使用DS3900 PC串口轉(zhuǎn)3接口與DS1267、DS1867和DS1868
    的頭像 發(fā)表于 02-25 11:06 ?978次閱讀
    使用裝有<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通信