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); } }
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); } }
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); } }
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)); } }
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); } }