DS1077, bir 5 volt, 133MHz ila 16KHz programlanabilir saat kaynağıdır. İç frekans bölücü, kolay bir I2C arayüzü üzerinde yapılandırılmış ve yonganın dış parçaları yoktur. 2 doların altında değil. Bir projede kullanmadan önce bu çipi test etmek için otobüs korsanını kullandık. Veri sayfasını (PDF) ve yanı sıra uyun.
DS1077, $ 1.69 doğrudan Maxim + $ 10 nakliye.
Bu çip, herhangi bir tür büyük distribütörde henüz teklif edilmez, ancak Maxim’in her biri 10 ABD Doları’nın altında bir 10 ABD Doları nakliye ücreti ile sahiptir. Bu, 8pin Soic bir yüzey yükleme çipidir, bu yüzden test için küçük bir koparma tahtası yaptık.
Test devresi
Pim bağlantıları
Otobüs korsanı
DS1077 (PIN)
SCL
SCL (8)
Sda
SDA (7)
Aux
OUT1 (1)
+ 5volts
VCC (3)
Gnd
GND, CTRL (4,5,6)
DS1077’yi otobüs Korsan’ın 5 volt güç kaynağından güçlendirdik. İki direnç, R1 ve R2’nin yanı sıra, kullanımda olmadığında I2C otobüsünü 5volt’a çekin. CAPACTITOR C1, 0,01UF ve C2, veri sayfası tarafından önerildiği gibi 0.1UF’dir. Pimleri yönetin Bazı ekstra işlevler sunar, ancak testlerimiz sırasında onları toprağa atladık. Çıkış1 ana saat sinyal pimidir.
Arayüzleme
Adres
Amaç
0B10110000
Varsayılan Baz Adresi (0xB0)
0xb0
adres yaz
0xB1
Okuma adresi
Otobüs korsanını I2C moduna geçirdik (M, Seçenekler: I2C, 100KHz). Dış Pull-up dirençleri, otobüsü 5volt’ta tutarlar, bu nedenle Board 3.3Volt Pull-up dirençlerini (varsayılan) bırakmak için gereklidir.
I2C> {0B10110000} <- DS1077 Adresini oluştur 210 i2C Durumuna Başlayın 220 I2C Yazma: 0xB0 Ack: Aslında <- ACK var 240 I2C durdurma durumu I2C>
İlk olarak, DS1077’nin adresini yayınlamanın yanı sıra kabul edip etmediğini görüyoruz. DS1077’nin adresi 1011, ayrıca üç programlanabilir bit (varsayılan olarak 000), ayrıca kontrol edilmiş (1) veya oluştur (0) bit. Bir ACK aldık, bu yüzden devrenin hem de bağlantılarımızın iyi olduğunu anlıyoruz.
Adres
Bayt
Kayıt ol
0x01
2
10 Bit Saat Bölücü, N + 2 (DIV)
0x02
2
Prescaler, CTRL PIN işlevleri. (Mux)
0x0d
1
Adres Select, EEPROM KONTROLÜ BOKUL. (OTOBÜS)
0x3f
0
Ayarları EEPROM’a kaydedin (E2)
DS1077, değerleri tabloda gösterilen yerlere oluşturarak yönetilir.
İ2c> {0xb0 0x0d 0b00001000}, <-Otobüs kayıtlarına yazma 210 i2C Durumuna Başlayın 220 I2C Yazma: 0xB0 Ack: Nitekim <-DS1077 Adresini oluştur 220 I2C Yazma: 0x0d Ack: gerçekten de <- Otobüs Kayıt 220 I2C Yazma: 0x08 Ack: Gerçekten <- Otobüs Kayıt Ayarı 240 I2C durdurma durumu I2C>
Varsayılan olarak, DS1077, tüm değişiklikleri EEPROM’da kaydeder. Test sırasında bunu gerekmiyor, bu yüzden otobüs kayıtlarının (0x0d) bit 3’ünü (0B1000) ayarlayarak devre dışı bırakıyoruz. İlk dört bit 0 olarak bırakılmalıdır, son üç bit, aynı I2C otobüsündeki birkaç DS1077’lere uyacak adresi seçin. Veri sayfasına bakınız sayfa 7.
I2C> {0xB0 0x02 0B00011000 0B00000000} <-16bit MUX değerini set 210 i2C Durumuna Başlayın 220 I2C Yazma: 0xB0 Ack: Nitekim <-DS1077 Adresini oluştur 220 I2C Yazma: 0x02 Ack: Nitekim <-Mux Kayıt 220 I2C Yazma: 0x18 Ack: Aslında <-Data Bayte 1 220 I2C Yazma: 0x00 Ack: Nitekim <-Data Byte 2 240 I2C durdurma durumu I2C>
MUX Kayıt, Prescalers, Ctrl PIN işlevlerini ve frekans bölücüsünü kontrol eder. Prescaler’ı ve CTRL pimlerinin yanı sıra 10bit frekans bölücüsüne izin veriyoruz. MUX Kayıt, veri sayfasının 5. sayfasında açıklanmaktadır.
Özel frekanslar, 133MHz öneri frekansını prescallerin yanı sıra 10bit (1025 seviyeli) programlanabilir bölücüyle bölünerek üretilir. Saat, DIV kayıt defterinde belirtilen miktarla bölünmüştür. DIV = 0 olduğunda, çıkış 133MHz / 2 = 66MHz’dir.
Bu plan, düşük aralıklarda en iyi frekans çözünürlüğünü ve ayrıca 133MHz ile 66MHz arasında bir adım sağlar.
I2C> {0xB0 1 0B11111111 0B11000000} <-DIV = 1025 210 i2C Durumuna Başlayın 220 I2C Yazma: 0xB0 Ack: Nitekim <-DS1077 Adresini oluştur 220 I2C Yazma: 0x01 Ack: Gerçekten <- Div Kayıt Ol 220 I2C Yazma: 0xff Ack: Nitekim <- Bitler 9: 2 220 I2C Yazma: 0xC0 Ack: Nitekim <- Bits 1: 0 240 I2C durdurma durumu İ2c> f <-frekans sayımı AUX: 16128Hz (16KHz) <- DS1077 frekansı 9xx FREQ Sayısı I2C>
DIV’deki tüm bitleri maksimum frekans bölümü için 1’e 1’e ayarladık. ‘F’, DS1077 Saat Çıkışına bağlı olan AUX PIN’indeki sıklığa adım attı. DIV = 1025 ile frekans yaklaşık 16KHz’dir.
I2C> {0xB0 1 0 0} <- DIV = 0, 133MHz 2'ye bölün ... 9xx FREQ AUX Üzerinde Sayı: 0Hz <-66mhz, Saymak için hızlı ----- I2C> {0xB0 1 0 0B10000000} <- DIV = 2 ... 9xx FREQ AUX: 3339696HZ (33MHz) <-133MHz / 4 ----- I2C> {0xB0 1 0B00000001 0B00000000} <-Div = 4 ... 9xx FREQ AUX: 22192384HZ (22MHz) <-133MHz / 6 Çeşitli frekanslar üretmenin yanı sıra bölücü ile oynayabiliriz. Çıktı, DIV + 2 ile ayrılan tavsiyeler frekansına (133MHz) eşittir. Otobüs Korsan'ın giriş pimi yalnızca 50 MHz ölçüm yapabilmelidir, bu nedenle en büyük hızlar kaydolmaz. Otobüsün gelecekteki bir versiyonuKorsan, yüksek frekans ölçümü için bir Gigahertz Prescaler eklemelidir. I2C> {0xb0 0x3f} -write E2 Kayıt
Son olarak, bu ayarı EEPROM’da kaydetmek için E2 kaydı (0x3f) oluşturabiliriz. DS1077 şimdi bu ayarlara açılışta geri dönecektir.
Çözüm
DS1077, programlanabilir bir osilatörün yanı sıra frekans bölücüsünü tek bir yongaya taşıyarak karmaşık saat kaynaklarını basitleştirir. Distribütörlerden teklif edilmez, ancak doğrudan Maxim’den satın alabilirsiniz. Yüksek frekansların çok daha iyi yönetilmesine gerekliyseniz, DS1085’i 133MHz’den 8kHz’e kadar 10khz adımlarla kontrol edin. DS1085L, DIGITEY’de sunulan 3.3Volt, 66MHz versiyonudur.