public void OpenCloseTest() { using (MpsseDevice mpsse = new FT2232D("A")) { SpiDevice spi = new SpiDevice(mpsse); } }
public void OpenCloseTest() { using (MpsseDevice mpsse = new FT2232D(FtdiHelper.GetFirstSerial())) { SpiDevice spi = new SpiDevice(mpsse); } }
public void TransmitTest() { using (MpsseDevice mpsse = new FT2232D("A")) { SpiDevice spi = new SpiDevice(mpsse); byte[] tData = { 0x0D, 0x01, 0x0F }; spi.write(tData); } }
public void TransmitTest() { using (MpsseDevice mpsse = new FT2232D(FtdiHelper.GetFirstSerial())) { SpiDevice spi = new SpiDevice(mpsse); byte[] tData = { 0x0D, 0x01, 0x0F }; spi.write(tData); } }
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)); } }
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)); } }
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); } }