Esempio n. 1
0
 public void OpenCloseTest()
 {
     using (MpsseDevice mpsse = new FT2232D("A"))
     {
         SpiDevice spi = new SpiDevice(mpsse);
     }
 }
Esempio n. 2
0
 public void OpenCloseTest()
 {
     using (MpsseDevice mpsse = new FT2232D(FtdiHelper.GetFirstSerial()))
     {
         SpiDevice spi = new SpiDevice(mpsse);
     }
 }
Esempio n. 3
0
        public void TransmitTest()
        {
            using (MpsseDevice mpsse = new FT2232D("A"))
            {
                SpiDevice spi = new SpiDevice(mpsse);

                byte[] tData = { 0x0D, 0x01, 0x0F };
                spi.write(tData);
            }
        }
Esempio n. 4
0
        public void TransmitTest()
        {
            using (MpsseDevice mpsse = new FT2232D(FtdiHelper.GetFirstSerial()))
            {
                SpiDevice spi = new SpiDevice(mpsse);

                byte[] tData = { 0x0D, 0x01, 0x0F };
                spi.write(tData);
            }
        }
Esempio n. 5
0
        public void LoopbackTest()
        {
            using (MpsseDevice mpsse = new FT2232D("A"))
            {
                SpiDevice spi = new SpiDevice(mpsse);
                mpsse.Loopback = true;

                byte[] tData = { 0x0A, 0x01, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0xFF };
                byte[] rData = spi.readWrite(tData);

                Assert.IsTrue(tData.SequenceEqual(rData));
            }
        }
Esempio n. 6
0
        public void LoopbackBigTest()
        {
            Random r = new Random();

            const uint size = 60000;

            using (MpsseDevice mpsse = new FT2232D("A"))
            {
                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));
            }
        }
Esempio n. 7
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);
            }
        }