Ejemplo n.º 1
0
        public MCP342(MCP342xJumperState j1, MCP342xJumperState j2)
        {
            device        = new I2CDevice(new I2CDevice.Configuration(CalculateAddress(j1, j2), CLOCK_RATE));
            xConfigAction = new I2CDevice.I2CTransaction[1] {
                I2CDevice.CreateWriteTransaction(configReg)
            };
            xReadAction = new I2CDevice.I2CTransaction[1] {
                I2CDevice.CreateReadTransaction(dataReg)
            };

            CalculateParams();
        }
Ejemplo n.º 2
0
        public static ushort CalculateAddress(MCP342xJumperState j1, MCP342xJumperState j2)
        {
            ushort addressOffset = 0;

            if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Floating)
            {
                addressOffset = 0;
            }
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Low)
            {
                addressOffset = 0;
            }
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Floating)
            {
                addressOffset = 1;
            }
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.High)
            {
                addressOffset = 2;
            }
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Low)
            {
                addressOffset = 4;
            }
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Floating)
            {
                addressOffset = 5;
            }
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.High)
            {
                addressOffset = 6;
            }
            else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Low)
            {
                addressOffset = 3;
            }
            else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.High)
            {
                addressOffset = 7;
            }

            return((ushort)(addressOffset | ADDRESS_BASE)); // 1101xxx, xxx = addressOffset; (104...111)
        }
Ejemplo n.º 3
0
        public static ushort CalculateAddress(MCP342xJumperState j1, MCP342xJumperState j2)
        {
            ushort addressOffset = 0;

            if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Floating)
                addressOffset = 0;
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Low)
                addressOffset = 0;
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Floating)
                addressOffset = 1;
            else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.High)
                addressOffset = 2;
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Low)
                addressOffset = 4;
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Floating)
                addressOffset = 5;
            else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.High)
                addressOffset = 6;
            else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Low)
                addressOffset = 3;
            else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.High)
                addressOffset = 7;

            return (ushort)(addressOffset | ADDRESS_BASE); // 1101xxx, xxx = addressOffset; (104...111)
        }
Ejemplo n.º 4
0
        public MCP342(MCP342xJumperState j1, MCP342xJumperState j2)
        {
            device = new I2CDevice(new I2CDevice.Configuration(CalculateAddress(j1, j2), CLOCK_RATE));
            xConfigAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateWriteTransaction(configReg) };
            xReadAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateReadTransaction(dataReg) };

            CalculateParams();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Connect to the device to set its initial settings and ensure correct address settings.
        /// </summary>
        /// <param name="j1">The state of J1 on the module.</param>
        /// <param name="j2">The state of J2 on the module.</param>
        /// <returns></returns>
        public bool Connect(MCP342xJumperState j1, MCP342xJumperState j2)
        {
            adc = new MCP342(j1, j2);
            if (adc.ReadConfiguration() == 0)
                return false;

            //adc.Channel = MCP342xChannel.Channel1;
            //adc.Gain = MCP342xGain.x1;
            //adc.Resolution = MCP324xResolution.SixteenBits;
            //adc.ConversionMode = MCP342xConversionMode.Continuous;

            isConnected = true;

            return true;
        }