Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: ete - 27 Ağustos 2004, 09:58:15

Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: ete - 27 Ağustos 2004, 09:58:15
Arkadaşlar,

DS1868 digital pot kullanan oldumu?. Oldu ise Basic de kontrol kodlarını buraya verebilirmi?. Yoksa epeyce uğraşmam gerekecek.

Yalnızca kontrol mantığını versenizde olur gerisini ben hallederim.

Şimdiden teşekkürler

ETE
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: peko - 27 Ağustos 2004, 10:36:28
Ete merhaba ;

http://www.turkengineers.com/metin.php?metin=47

umarım bu link işini görür.

Bende sana voltmetre için ADC çevrim formulünü nasıl hesapladığını soracaktım. Mesela 0-30 değilde 0-50 istesem ne yapmam gerekiyor ? Mantığı nedir.?

kolay gelsin
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: ete - 27 Ağustos 2004, 11:31:16
Peko,

Verdiğin linkte Hex dosyası var ancak pek bir şey anlaşılmıyor. Uzunca incelenirse birşeyler anlaşılabilir. Ama çok vakit alacak. Sorun gerçek datasheet'ini bulamamış olmam. Bulduklarım hep application note ve çok fazla açıklama yok. Her neyse araştırıyorum. Bu arada yardımcı olan çıkarsa sevineceğim.

Senin soruna gelince; Bu gibi durumlarda yaptığım iş şöyle;
İsis te kurduğum bir devre var. 0-50 için picin ADC girişi ne (VEYA BİZİM ÖRNEKTE COMPARATÖR GİRİŞİNE) bir voltaj bölücü ayarlaman gerekiyor. Neticede bu iki adet dirençten oluşuyor. Bunu yaptıktan sonra
voltajın adc (ham) değerini her bir volt için okuyorum. 0-50 volt için sanırım iyi bir formül yakalamak için her bir volt değerine karşılık gelen ham değeri okumak ve bunu sonra ADC hesap (Excel dosyası) dosyasında formüle çeviriyorum. Bununla iligli açıklama zaten ADC hesap dosyasında var. Bunu daha önce vermiştim. Dosya Yahooda bir yerde kayıtlı linkini şimdi hatırlamıyorum. Ancak Voltmetre başlığını takip edersen bir yerde açıklanmış idi. Hatırladığım kadarı ile başka bir arkadaşa dosyayı göndermiştim oda yahooda bir yere koymuş idi. Bulamaz isen e_mail bildir sana göndereyim.

ETE
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: birumher - 27 Ağustos 2004, 11:56:30
DS1868 Gerçek Datasheet
http://pdfserv.maxim-ic.com/en/ds/DS1868.pdf
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: birumher - 27 Ağustos 2004, 12:17:42
Data göndermek için 3 uç kullanacaksın. RST , clock ve data in
aşağıda basic için örnek kod var ama bu sadece deneme için yapılmış seri port protokollerini kullanmıyor onun yerine kendi oluşturuyor...
PORTB.6 Clock
PortB.5   RST
PortB.7   Data

17 bit gönderiyoruz ilk 8 i 1. Potun Degeri 2. si 2.pot un bir de select bitimiz var (Datasheeti okuyunca daha iyi anlarsın) onu gönderiyoruz. Aşağıdaki kod veri değişkeni içindeki bitleri sırasıyla PortB.7 den çıkartıyor bu sırada da clock olarak kullandığımız Port6 dan puls yolluyor.
Pulsout ve Pause komutlarıyla oynayarak hız ayarlaması yapabilirsin ben bu şekilde DS1868 i çalıştırdım ama zamanlamaları falan ayarlama işlemini yapmadım...

DataGonder:

   PortB.5 = 1
   PortB.7 = 1
   PulsOut   PortB.6,1
   Gosub   Seri
   Gosub   Seri
   PortB.7 = 1
   PulsOut   PortB.6,1
   PortB.5 = 0
               Pause 50

   return

Seri:
   PortB.7 = veri.7
      PulsOut   PortB.6,1
   PortB.7 = veri.6
      PulsOut   PortB.6,1
   PortB.7 = veri.5
      PulsOut   PortB.6,1
   PortB.7 = veri.4
      PulsOut   PortB.6,1
   PortB.7 = veri.3
      PulsOut   PortB.6,1
   PortB.7 = veri.2
      PulsOut   PortB.6,1
   PortB.7 = veri.1
      PulsOut   PortB.6,1
   PortB.7 = veri.0
      PulsOut   PortB.6,1
   Return
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: ete - 27 Ağustos 2004, 22:50:47
@Birumher,

Bilgi için teşekkürler. Datasheeti iyice inceledim. Önce senin kod da bana ters gelen bazı hususlar var şöyleki;
- Select biti tek bit olarak gönderiyorsun. Halbuki datasheetinde bunun byte olarak gönderileceği ve registerin ilk 7 biti shift-out yapacağı belirtiliyor.
- Son Bytı gönderdikten sonra tekrar select biti gönderiyorsun. Datasheet de böyle bir şey görmedim.
- Select biti tek bit olarak gönderirsen ikinci byte ın kalan bitleri select byte'ına aitmiş gibi görülmezmi?.
Potu çalıştırdım diyorsun gerçekten çalıştımı?.

Bana göre doğru komut aşağıdaki gibi olmalı;

High RST
Shiftout Datapin,Clockpin,1,[1]              'Byte0 -select bitine ait byte bilgisi
shiftout Datapin,clockpin,1,[Pot1_Deger] ' Byte1
Shiftout Datapin,Clockpin,1,[Pot0_Deger]' Byte2
Low RST

Bu şekilde çalışacağını düşünüyorum. Elimde henüz DS 1468 olmadığı için deneyemiyorum.

Diğer bir konuda select biti, sanki select biti ni sıfır verirsen yalnızca pot0 'a değer yazarsın gibi geliyor. Acaba doğrumu?

ETE
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: birumher - 31 Ağustos 2004, 15:56:37
evet(http://img151.imageshack.us/img151/9500/dilimdilim2ge7ak5.jpg) (http://imageshack.us) ben kodu ters yazmışım . Bir sürü yerden copy paste yaptığım için sıralarını karıştırmışım yani önce select biti sonra pot1 sonra pot0 olacak. Ama select bitini 1 bit olarak gönderiyordum sonuçta senin yazdığın kod da çalışacaktır çünkü select bitini byte olarak göndersen de diğer 2 byte ı gönderince son 7 biti zaten dışarıda kalacaktır.
Bu arada bu yöntemle pot u çalıştırdım ve gayet güzel çalışıyor...
Başlık: DS1868 Digital Pot PBP Okuma Yazma Kodları
Gönderen: birumher - 31 Ağustos 2004, 16:00:55
Yalnız şunu söylemeyi unutmuşum select bitini byte olarak gönderirsen cascading de sorun yaşarsın gibi geliyor. Yani her halikarda her pota 17 bit bilgi düşmeli gibi geliyor bana.
Başlık: DS 1868 dijital potansiyometre
Gönderen: hkalaycioglu - 12 Ağustos 2007, 15:04:44
ETE hocam sizde bunda zorlandıysanız biz bununla hiç uğraşmayalım

bunları yazalı aradan bayağı bir zaman geçmiş bir sonuca ulaşabildinizmi
bende 1 haftadır uğraşıyorum data sheetini okudum ama şu 17 bit datayı nasıl gönderip olayı cözebileceğimi bulamadım

elimde ds 1868 var, bayağı zaman harcattı, elinde bununla ilgili pic basic kodu olan varsa buraya koyarsa çok sevinirim teşekkürler