Category

PARTS: 133MHZ-16.2KHZ PROGRAMMABLE OSCILLATOR (DS1077)

The DS1077 is a 5volt, 133MHz to 16kHz programmable clock source. The interior frequency divider is configured over a easy I2C interface, as well as the chip needs no outside parts. Not poor for under $2. We utilized the Bus Pirate to test this chip before utilizing it in a project. get the datasheet (PDF) as well as comply with along.

DS1077, $1.69 direct from Maxim + $10 shipping.

This chip isn’t offered at any type of major distributors yet, however Maxim has them for under $2/each with a flat $10 shipping charge. This is an 8pin SOIC surface install chip, so we made a little breakout board for testing.

Test circuit

Pin connections

Bajak laut bus.
DS1077 (pin)

SCL
SCL (8)

SDA.
SDA(7)

AUX
OUT1 (1)

+ 5volts.
Vcc (3)

Gnd.
GND, CTRL (4,5,6)

We powered the DS1077 from the Bus Pirate’s 5volt power supply. two resistors, R1 as well as R2, pull-up the I2C bus to 5volts when it’s not in use. Capacitor C1 is 0.01uF as well as C2 is 0.1uF, as suggested by the datasheet. manage pins offer some extra functions, however we bypassed them to ground during our test. Output1 is the main clock signal pin.

Interfacing.

Alamat
Tujuan

0b10110000
Default base address (0xB0)

0xB0
Write address

0xB1
Read address

We put the Bus Pirate into I2C mode (M, options: I2C, 100kHz). The outside pull-up resistors hold the bus at 5volts, so it’s essential to leave the on-board 3.3volt pull-up resistors off (default).

I2C>{0b10110000} <– DS1077 compose address 210 I2C Mulai Kondisi 220 I2C WRITE: 0xB0 got ACK: indeed <– got ACK 240 i2c stop syarat I2C>

First, we broadcast the DS1077’s address as well as see if it acknowledges. The address of the DS1077 is 1011, plus three programmable bits (000 by default), as well as the checked out (1) or compose (0) bit. We got an ACK, so we understand that the circuit is working as well as our connections are good.

Alamat
Bytes.
Daftar

0x01.
2.
10 bit clock divider, n+2 (DIV)

0x02
2.
Prescaler, CTRL pin functions. (MUX)

0x0D
1
Address select, EEPROM compose control. (BIS)

0x3F
0.
Save settings to EEPROM (E2)

The DS1077 is managed by composing values to the places shown in the table.

I2C>{0xb0 0x0d 0b00001000} , <–write to BUS register 210 I2C Mulai Kondisi 220 I2C WRITE: 0xB0 got ACK: indeed <–DS1077 compose address 220 I2C WRITE: 0x0D got ACK: indeed <– BUS register 220 I2C WRITE: 0x08 got ACK: indeed <– BUS register setting 240 i2c stop syarat I2C>

By default, the DS1077 saves all modifications to the EEPROM. We don’t requirement this during testing, so we disable it by setting bit 3 (0b1000) of the BUS register (0x0d). The very first four bits should be left as 0, the last three bits choose the address to fit several DS1077s on the exact same I2C bus. See datasheet page 7.

I2C>{0xb0 0x02 0b00011000 0b00000000} <–set the 16bit MUX value 210 I2C Mulai Kondisi 220 I2C WRITE: 0xB0 got ACK: indeed <–DS1077 compose address 220 I2C WRITE: 0x02 got ACK: indeed <–MUX register 220 I2C WRITE: 0x18 got ACK: indeed <–data byte 1 220 I2C WRITE: 0x00 got ACK: indeed <–data byte 2 240 i2c stop syarat I2C>

The MUX register controls the prescalers, CTRL pin functions, as well as frequency divider.  We disable the prescaler as well as CTRL pins, as well as allow the 10bit frequency divider.  The MUX register is explained on page 5 of the datasheet.

Specific frequencies are produced by dividing the 133MHz recommendation frequency with the prescalers as well as a 10bit (1025 level) programmable divider.  The clock is split by the amount specified in the DIV register, plus two. When DIV=0, the output is 133MHz/2=66MHz.

This plan provides the very best frequency resolution in low ranges, as well as no steps between 133MHz as well as 66MHz.

I2C>{0xb0 1 0b11111111 0b11000000} <–DIV=1025 210 I2C Mulai Kondisi 220 I2C WRITE: 0xB0 got ACK: indeed <–DS1077 compose address 220 I2C WRITE: 0x01 got ACK: indeed <– DIV register 220 I2C WRITE: 0xFF got ACK: indeed <– bits 9:2 220 I2C WRITE: 0xC0 got ACK: indeed <– bits 1:0 240 i2c stop syarat I2C>f  <–do a frequency count 9xx FREQ count ON AUX: 16128Hz (16kHz) <– DS1077 frequency I2C>

We set all the bits in the DIV register to 1 for maximum frequency division. ‘F’ steps the frequency on the AUX pin, which is linked to the DS1077 clock output. With DIV=1025, the frequency is about 16kHz.

I2C>{0xb0 1 0 0} <– DIV=0, 133MHz divide by 2 ... 9xx FREQ count ON AUX: 0Hz <–66MHz, as well quick to count ————- I2C>{0xb0 1 0 0b10000000} <– DIV=2 ... 9xx FREQ count ON AUX: 3339696Hz (33MHz) <–133MHz/4 ————- I2C>{0xb0 1 0b00000001 0b00000000} <–DIV=4 ... 9xx FREQ count ON AUX: 22192384Hz (22MHz) <–133MHz/6 We can play with the divider as well as produce a variety of frequencies. The output is always equal to the recommendation frequency (133MHz) split by DIV+2. The Bus Pirate’s input pin is only capable of measuring about 50MHz, so the greatest speeds don’t register. A future version of the BusPirate harus memasukkan prescaler gigahertz untuk pengukuran frekuensi tinggi. I2c> {0xb0 0x3f} <-Write E2 Register Akhirnya, kita dapat menulis register E2 (0x3f) untuk menyimpan pengaturan ini di EEPROM. DS1077 sekarang akan kembali ke pengaturan ini saat power-on. Kesimpulan DS1077 menyederhanakan sumber jam kompleks dengan memindahkan osilator yang dapat diprogram serta pembagi frekuensi menjadi satu chip. Itu tidak ditawarkan dari distributor, namun Anda dapat membelinya langsung dari Maxim. Jika Anda membutuhkan pengelolaan frekuensi tinggi yang jauh lebih baik, periksa DS1085 dengan langkah 10KHz dari 133MHz hingga 8kHz. DS1085L adalah versi 3.3volt, 66MHz yang ditawarkan di Digikey.