コード例 #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine(FtdiInventory.DeviceListInfo());

            var ftDeviceInfo = FtdiInventory.GetDevices();

            if (ftDeviceInfo.Length == 0)
            {
                Console.WriteLine("No Device");
                Console.ReadKey();
                return;
            }
            var firstSerial = ftDeviceInfo.FirstOrDefault().SerialNumber;

            MpsseDevice.MpsseParams mpsseParams = new MpsseDevice.MpsseParams
            {
                Latency      = 16,
                ReadTimeout  = 50,
                WriteTimeout = 50,
                clockDevisor = 49 * 6
            };

            using (MpsseDevice mpsse = new FT232H(firstSerial, mpsseParams))
            {
                Console.WriteLine("MPSSE init success with clock frequency {0:0.0} Hz", mpsse.ClockFrequency);

                var i2c  = new I2cBus(mpsse);
                var gpio = new Gpio(mpsse);

                Selector(i2c, gpio);
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            try
            {
                for (int repeat = 1; repeat < 11; repeat++)
                {
                    SpocReaderData          spocReaderData = new SpocReaderData();
                    List <byte>             RawData        = new List <byte>();
                    MpsseDevice.MpsseParams mpsseParams    = new MpsseDevice.MpsseParams();
                    mpsseParams.clockDevisor = 1;
                    UInt16 NumOfBytesToRead = 6500;


                    String csvFilename = "ReadData_" + DateTime.Now.ToString("ddMMMyy--HH.mm.ss") + ".csv";
                    String xmlFilename = "ReadData_" + DateTime.Now.ToString("ddMMMyy--HH.mm.ss") + ".xml";

                    using (var mpsse = new FT2232H("", mpsseParams))
                    {
                        // configure FTDI port for MPSSE Use
                        mpsse.AdaptiveClocking       = false;
                        mpsse.ThreePhaseDataClocking = false;
                        mpsse.ClkDivideBy5           = false;

                        Stopwatch stopWatch = new Stopwatch();
                        stopWatch.Start();

                        while (stopWatch.ElapsedMilliseconds < 5000)
                        {
                            EnableLine(mpsse);
                            var OutputData = mpsse.BytesInOnMinusEdgeWithMsbFirst(NumOfBytesToRead);
                            DisableLine(mpsse);

                            Console.Write(".");
                            RawData.AddRange(OutputData);
                        }

                        int HighBit = 30;
                        List <List <BinData> > ReadBuffer = TruncateData(RawData, HighBit);

                        spocReaderData.RawFocusData = RawData.ToArray();

                        // write to files
                        ReadInfo readInfo = new ReadInfo {
                            readerData = spocReaderData, parameters = mpsseParams, numOfBytesToRead = NumOfBytesToRead
                        };
                        //WriteToCsv(ReadBuffer[0], csvFilename);
                        WriteToXML(readInfo, xmlFilename);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
コード例 #3
0
ファイル: I2cTest.cs プロジェクト: LwServices/MPSSELight
        public void OpenCloseTest()
        {
            MpsseDevice.MpsseParams mpsseParams = new MpsseDevice.MpsseParams
            {
                Latency      = 16,
                ReadTimeout  = 50,
                WriteTimeout = 50,
                clockDevisor = 49 * 6
            };

            using (MpsseDevice mpsse = new FT232H(FtdiHelper.GetFirstSerial(), mpsseParams))
            {
                Console.WriteLine("MPSSE init success with clock frequency {0:0.0} Hz", mpsse.ClockFrequency);

                var i2c = new I2cBus(mpsse);
            }
        }
コード例 #4
0
        public void LoopbackBigTest()
        {
            Random r = new Random();

            MpsseDevice.MpsseParams mpsseParams = new MpsseDevice.MpsseParams();
            mpsseParams.clockDevisor = 0;
            //mpsseParams.DataWriteEvent = new FtdiDevice.DataTransferEvent();
            const uint size = 60000;

            using (MpsseDevice mpsse = new FT2232H("", mpsseParams))
            {
                SpiDevice spi = new SpiDevice(mpsse);
                mpsse.Loopback = true;

                byte[] tData = new byte[size];
                r.NextBytes(tData);

                byte[] rData = spi.readWrite(tData);

                Assert.IsTrue(tData.SequenceEqual(rData));
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            try
            {
                //read and check options
                Options opts = new Options(args);

                if (!opts.IsValid() && !opts.HelpOption)
                {
                    Console.WriteLine("Bad option. Run with -? option to see help.");
                    return;
                }

                //device list output
                if (opts.DevListOutput)
                {
                    Console.WriteLine(FtdiInventory.DeviceListInfo());
                }

                //device open and i/o
                if (opts.DevSerialNumber != null)
                {
                    MpsseDevice.MpsseParams mpsseParams = new MpsseDevice.MpsseParams();

                    //output all mpsse data transfer in verbose mode
                    mpsseParams.clockDevisor = opts.MpsseDevisor;
                    if (opts.Verbose)
                    {
                        mpsseParams.DataReadEvent  = rawInputToScreen;
                        mpsseParams.DataWriteEvent = rawOutputToScreen;
                    }

                    using (MpsseDevice mpsse = new FT2232D(opts.DevSerialNumber, mpsseParams))
                    {
                        Console.WriteLine("MPSSE init success with clock frequency {0:0.0} Hz", mpsse.ClockFrequency);

                        SpiDevice spi = new SpiDevice(mpsse,
                                                      new SpiDevice.SpiParams
                        {
                            Mode             = (opts.SpiMode == 0) ? SpiDevice.SpiMode.Mode0 : SpiDevice.SpiMode.Mode2,
                            ChipSelect       = opts.ChipSelectBit,
                            ChipSelectPolicy = SpiDevice.CsPolicy.CsActiveLow
                        });

                        spi.LoopbackEnabled = opts.Loopback;
                        Console.WriteLine("SPI init success");

                        //input data read
                        byte[] transmitData = new byte[0];
                        if (opts.BinaryInputFile != null)
                        {
                            transmitData = readBinaryFile(opts.BinaryInputFile);
                        }
                        else if (opts.TextInputFile != null)
                        {
                            transmitData = readTextFile(opts.TextInputFile);
                        }

                        if (opts.ScreenInput)
                        {
                            writeToScreen("output:     ", transmitData);
                        }

                        //data transfer
                        byte[] result = spi.readWrite(transmitData);

                        //output data write
                        if (opts.ScreenOutput)
                        {
                            writeToScreen("input:      ", result);
                        }
                        if (opts.TextOutputFile != null)
                        {
                            writeToText(opts.TextOutputFile, result);
                        }
                        if (opts.BinaryOutputFile != null)
                        {
                            writeToBinary(opts.BinaryOutputFile, result);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }