DS1868 dijital potansiyometre kullanımı hakkında

Başlatan zamzam23, 20 Temmuz 2011, 16:29:17

zamzam23

Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?

VFR

Hocam geçen sene yapmış olduğum bir uygulama var. 2 adet potu kontrol ediyoruz tek entegreyle. Dosyaları buraya ekliyorum.
http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html

mufitsozen

Alıntı yapılan: zamzam23 - 20 Temmuz 2011, 16:29:17
Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?

Dallas/Maxim'in DS1844 Quad Digital Potentiometer var. 3 yada 5 tel programli gozukuyor. CCS-C programlarini adapte etmek cok zor olmasa gerek
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

mufitsozen

#3
Alıntı yapılan: zamzam23 - 20 Temmuz 2011, 16:29:17
Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?

@zamzam23 CCS_C deki dosya icindeki c programina kucuk bir iki degisiklik yaparak  2 chip kontrol edilebilir. Bende bu chiplerden olmadigi icin deneme yapamam ama, isterseniz yarin size 2 ayri chip kontrol edecek sekilde iki ayri c modulu hazirlarim. ornegin DS1868A.c ve DS1868B.c (icindeki function'larida set_potA(int pot_num, int new_value) ve set_potB(int pot_num, int new_value) sekline ceviririz, cok kolaylikla yapilabilir.

A chip'i icin PCI pinleri :
    #define RST1 PIN_B0
    #define CLK PIN_B1
    #define DI PIN_B2

olarak tanimli,

B chip icin hangi pinler tanimli olsun istersiniz? (hatta bu iki function'i ayni anda[kesme icinden vs] calistirmazsanizCLK ve DI PIN_B1 ve PIN_B2 olarak kalir RST1A PIN_B0 yapariz, ornegin PIN_B3'ude RST1B olarak kullaniriz, boylece 4 tel ile iki chipin baglantisini halledersiniz. Yani iki chip'ede data ve clock ayni pinlerden gider, chipin birine giden RST1 ucu PIN_N0 olur, obur chipe giden RST1 ucuda PIN_B3 olur mesela.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

zamzam23

Alıntı yapılan: healme - 20 Temmuz 2011, 18:10:27
Hocam geçen sene yapmış olduğum bir uygulama var. 2 adet potu kontrol ediyoruz tek entegreyle. Dosyaları buraya ekliyorum.
http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html
hocam proteus şimdilik yüklü olmadıgı için devreyi inceleyemedim ancak koddan anladıgım kadarıyla iki pot kontol etmişsiniz ama tek chip tek entegre var. benım ıstedıgım ıse tek işlemci çift ds1868 yani örneğin 4 pot kontrolu. ama yıne de saolun

Alıntı yapılan: mufitsozen - 20 Temmuz 2011, 18:45:10
@zamzam23 CCS_C deki dosya icindeki c programina kucuk bir iki degisiklik yaparak  2 chip kontrol edilebilir. Bende bu chiplerden olmadigi icin deneme yapamam ama, isterseniz yarin size 2 ayri chip kontrol edecek sekilde iki ayri c modulu hazirlarim. ornegin DS1868A.c ve DS1868B.c (icindeki function'larida set_potA(int pot_num, int new_value) ve set_potB(int pot_num, int new_value) sekline ceviririz, cok kolaylikla yapilabilir.

A chip'i icin PCI pinleri :
    #define RST1 PIN_B0
    #define CLK PIN_B1
    #define DI PIN_B2

olarak tanimli,

B chip icin hangi pinler tanimli olsun istersiniz? (hatta bu iki function'i ayni anda[kesme icinden vs] calistirmazsanizCLK ve DI PIN_B1 ve PIN_B2 olarak kalir RST1A PIN_B0 yapariz, ornegin PIN_B3'ude RST1B olarak kullaniriz, boylece 4 tel ile iki chipin baglantisini halledersiniz. Yani iki chip'ede data ve clock ayni pinlerden gider, chipin birine giden RST1 ucu PIN_N0 olur, obur chipe giden RST1 ucuda PIN_B3 olur mesela.

hocam sana da tesekkür ederim. potları aynı anda kullanmayacagım.mümkün oldugu kadar az pinle bu işi halletmeme yardım ederseniz sevinirim. kullanacagımız pinler,B4-B7 olmasın yeter. o pinlerle encoder okunacak cunku.

VFR

#5
Bir tane daha entegre ekleyip kodu kopyalayarak 4 pot kontrol edebilirsiniz, fazla bir değişikliğe gerek yok hiç.
[IMG]http://i53.tinypic.com/2h4ywir.png[/img]

zamzam23

ds1868 proteus kütüphanesi için .lib doyasını yollar mısın bi zahmet

VFR

#7
Hocam internetten bulduğum bir de şöyle bir devre vardı.
Kütüphanesi de var burada zaten.
http://hotfile.com/dl/124590423/375937e/ds1868_ve_pic16f877_uygulamas.rar.html
DS1868'in kütüphanesi yokmuş içinde, kütüphanenin kodu bu şekilde
///////////////////////////////////////////////////////////////////////////
////   Library for a Dalas DS1868                                      ////
////                                                                   ////
////   init_pots ();    Sets all of the pots to 0                      ////
////                                                                   ////
////   set_pot (pot_num, new_value);  Sets pot pot_num to new_value    ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

#define RST1 PIN_B0
#define CLK PIN_B1
#define DI PIN_B2
#define NUM_POTS 2

BYTE pots[2];

set_pot (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

   pots[pot_num] = new_value;

   cmd[0]=pots[0];
   cmd[1]=pots[1];
   cmd[2]=0;

   for(i=1;i<=7;i++)
     shift_left(cmd,3,0);

   output_high(RST1);
   delay_us(2);

   for(i=1;i<=17;i++) {
      output_bit(DI, shift_left(cmd,3,0));
      delay_us(2);
      output_high(CLK);
      delay_us(2);
      if(i==17)
         output_low(RST1);
      output_low(CLK);
      delay_us(2);
   }
}

init_pots ()
{
   set_pot (0,0);
   set_pot (1,0);
}

zamzam23


rercan

pt2258 var 6 kanal volume kontrol . ı2c ile calışıyor.

zamzam23

Alıntı yapılan: rercan - 20 Temmuz 2011, 22:37:06
pt2258 var 6 kanal volume kontrol . ı2c ile calışıyor.
hocam bu nedir? 6 kanal gzl de ayarlı direnç mi var içinde. baktım biraz volume kontrol diyor IN1 OUT1 şeklinde.

zamzam23

mufitsozen arkadaş. o bahsettiğin kütüphaneyi hazırlamam da yardımcı olur musun bana

mufitsozen

kesinlikle yardımcı olurun. Aslında bu sabah yapıp yollamak istedim ama acil bir durum oldu  herhalde bugun ofise gidemeyecegim. Yarın ofise gittigimde yazar yollarım.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

zamzam23

peki. bende malzemeyi temın etmeye calsıyorum pek bulunmuyor galıba piyasada. internette bulamadım da bıyere soyledım bakıyorlar haber verıcek bana bulunca.onlarda da yokmus piyasadan bakıyorlar.

Tagli

Burada gozukuyor ama ellerinde kalmis midir onu bilemem. Ben zamaninda oradan bir tane almistim ama her nedense calistiramadan yaktim galiba. Bir tane daha almak icin tekrar gittigimde de "kalmadi" demislerdi.

Sana kac tane lazim? 1 - 2 tane lazimsa elimde MCP42010 var.
Gökçe Tağlıoğlu