lpc2368 one wire ds1820

Başlatan armsistem, 25 Temmuz 2012, 13:19:13

armsistem

         Arkadaşlar merhaba , lpc2368 ine ds1820 haberleştirmek gibi niyetim var (ama her han vazgeçebilirim.) Netten bir döküman buldum. Kendime göre uyarladım fakat sürekli değer 0 görüyorum işi çok fazla ezbere de yapmak istemiyorum. Aşağıda takıldığım bir kaç soru var.

- Osilatörün bir önemi var mı ? 4 veya 12 Mhz olmuş fark edermi ?
- Aşağıda dökümanda olduğu gibi pin ayarları yapılıyor. Başka bir ayarı varmıdır.



DS18B20 and LPC21XX

camby

Başka bir sistem üzerinde 1-Wire kullandınız mı ?

1-Wire'da timing çok önemlidir.

Aslında 1-Wire pin ayarları var denemez genel olarak.

1 Wire , 1 gönder , 0 gönder , bit oku ve reset gönder'den ibarettir. Dolayısıyla herhangi bir I/O'dan yapılabilir.

armsistem

1- İki adet picin tek hat üzerinden haberleştiği bir programı incelemiştim.

2-Timing dediğiniz olay tamamen Osilatör ile ilgili o zaman yani pll hızım ne olmalıki ds1820 ile haberleştirebileyim.

Yanıt için teşekkürler.

yamak

Hızın önemi yok önemli olan zaman ayarları. Çalıştığın hıza göre zaman ayarlarını yapman gerekiyor.Aşağıdaki dökümanı inceleyebilirsin.
http://goo.gl/KyRXd

armsistem

Merhaba , aşağıdaki delayları mikrodenetleyecinin hızına göre tekrardan mı yapılandırmam gerekiyor.

void delay_5us(unsigned int count)
{
unsigned int i;
while(count)
{
i=32;
 while(i>0)i--;
 count--;
 }}

 void delay_1us(unsigned long int t)
 {
 unsigned long int i;
 unsigned long int j;
 j=11059200/1000000*t;
 for(i=0;i<j;i++);
 }

yamak

Alıntı yapılan: armsistem - 25 Temmuz 2012, 15:37:44
Merhaba , aşağıdaki delayları mikrodenetleyecinin hızına göre tekrardan mı yapılandırmam gerekiyor.

void delay_5us(unsigned int count)
{
unsigned int i;
while(count)
{
i=32;
 while(i>0)i--;
 count--;
 }}

 void delay_1us(unsigned long int t)
 {
 unsigned long int i;
 unsigned long int j;
 j=11059200/1000000*t;
 for(i=0;i<j;i++);
 }

Evet

armsistem

yamak kardeşim merhaba , peki aşağıdaki konfigrasyonumda 1 us bekleme yapmak için nasıl bir ayar yapmam gerekiyor.

OSC              = 12 Mhz.
M                  = 12-1=11
N                  =   1-0 = 0
CCLK Div      =   4-1 = 3
CCLK = PCLK = 72 Mhz.

yamak

Ben kritik durumlarda timer kullanıyorum. Timer kullanmanı tavsiye ederim.