Пример #1
0
 protected void Flush(i2c i)
 {
     if (block_mode)
     {
         Write(i, registers);
     }
 }
Пример #2
0
        public void init(i2c i)
        {
            Write_byte(i, 2, 0xB8); // Y1_ST1 - Y1 enabled, Y1_ST0 - Y1 disabled to low
//      Write_byte(i, 0x13, 0); // PLL1 Frequency Selection: predefined by PLL1_0 – Multiplier/Divider value
            // PLL1 Multiplexer: PLL1,
            // Output Y2 Multiplexer: Pdiv2
            // Output Y3 Multiplexer: Pdiv3-Divider
            // Y2Y3_ST1 - Y2/Y3 enabled, Y2Y3_ST0 - Y2/Y3 disabled to low
//      Write_byte(i, 0x14, 0x6E);
            y2y3_off(i);
        }
Пример #3
0
 public void Write_byte(i2c i, byte Command, byte Data)
 {
     if (block_mode)
     {
         registers[Command + 1] = Data;
     }
     else
     {
         Command |= 0x80;
         Write(i, Command, Data);
     }
 }
Пример #4
0
        public void set_y1_freq(i2c i, int freq)
        {
            i.RawWrite("cd");
            Thread.Sleep(250);
            i.RawWrite("cu");
//      Write_byte(i, 0x13, 0); // PLL1 Frequency Selection: predefined by PLL1_0 – Multiplier/Divider value

            int p, n1, q, r;

            calc_koefs(freq);

            Write_byte(i, 0x03, (byte)pdiv);

            p = 4 - (int)(Math.Log(n / m) / Math.Log(2));
            if (p < 0)
            {
                p = 0;
            }

            n1 = n << p;

            q = n1 / m;

            r = n1 - m * q;

            byte b;

            b = (byte)(n >> 4);
            Write_byte(i, 0x18, b);

            b = (byte)(((n & 0x0f) << 4) | (r >> 5));
            Write_byte(i, 0x19, b);

            b = (byte)(((r & 0x1f) << 3) | (q >> 3));
            Write_byte(i, 0x1A, b);

            if (f_vco < 125000)
            {
                b = 0;
            }
            else if (f_vco < 150000)
            {
                b = 1;
            }
            else if (f_vco < 175000)
            {
                b = 2;
            }
            else
            {
                b = 3;
            }

            b |= (byte)(((q & 7) << 5) | (p << 2));
            Write_byte(i, 0x1B, b);

//      Write_byte(i, 0x13, 1); // PLL1 Frequency Selection: predefined by PLL1_1 – Multiplier/Divider value

//      Write_byte(i, 0x14, 0x6D);
            Write_byte(i, 0x14, 0x6E);

            Flush(i);
        }
Пример #5
0
 public void y2y3_off(i2c i)
 {
     Write_byte(i, 0x15, 1);
 }
Пример #6
0
 public void eeprom_write(i2c i)
 {
     Write_byte(i, 6, 0x41);
 }
Пример #7
0
 public void y2y3_on(i2c i)
 {
     Write_byte(i, 0x15, 2);
 }
Пример #8
0
 public void y1_off(i2c i)
 {
     Write_byte(i, 4, 1);
 }
Пример #9
0
 public void y1_on(i2c i)
 {
     Write_byte(i, 4, 2);
 }
Пример #10
0
 public void set_y3_div(i2c i, byte div)
 {
     div &= 0x7f;
     Write_byte(i, 0x17, div);
 }
Пример #11
0
 protected void Write(i2c i, params byte[] data)
 {
     i.Write(device_address, data);
 }