Beispiel #1
0
        /// <summary>
        /// Main entry point
        /// </summary>
        /// <param name="args">Unused</param>
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello I2C, SPI and GPIO FTFI! FT4222");
            Console.WriteLine("Select the test you want to run:");
            Console.WriteLine(" 1 Run I2C tests with a BNO055");
            Console.WriteLine(" 2 Run SPI tests with a simple HC595 with led blinking on all ports");
            Console.WriteLine(" 3 Run GPIO tests with a simple led blinking on GPIO2 port and reading the port");
            Console.WriteLine(" 4 Run callback test event on GPIO2 on Failing and Rising");
            var key = Console.ReadKey();

            Console.WriteLine();

            var devices = FtCommon.GetDevices();

            Console.WriteLine($"{devices.Count} FT4222 elements found");
            foreach (var device in devices)
            {
                Console.WriteLine($"Description: {device.Description}");
                Console.WriteLine($"Flags: {device.Flags}");
                Console.WriteLine($"Id: {device.Id}");
                Console.WriteLine($"Location Id: {device.LocId}");
                Console.WriteLine($"Serial Number: {device.SerialNumber}");
                Console.WriteLine($"Device type: {device.Type}");
            }

            var(chip, dll) = FtCommon.GetVersions();
            Console.WriteLine($"Chip version: {chip}");
            Console.WriteLine($"Dll version: {dll}");

            if (key.KeyChar == '1')
            {
                TestI2c();
            }

            if (key.KeyChar == '2')
            {
                TestSpi();
            }

            if (key.KeyChar == '3')
            {
                TestGpio();
            }

            if (key.KeyChar == '4')
            {
                TestEvents();
            }
        }
Beispiel #2
0
        private static Pn5180 Ft4222()
        {
            var devices = FtCommon.GetDevices();

            Console.WriteLine($"{devices.Count} FT4222 elements found");
            foreach (var device in devices)
            {
                Console.WriteLine($"  Description: {device.Description}");
                Console.WriteLine($"  Flags: {device.Flags}");
                Console.WriteLine($"  Id: {device.Id}");
                Console.WriteLine($"  Location Id: {device.LocId}");
                Console.WriteLine($"  Serial Number: {device.SerialNumber}");
                Console.WriteLine($"  Device type: {device.Type}");
                Console.WriteLine();
            }

            var(chip, dll) = FtCommon.GetVersions();
            Console.WriteLine($"Chip version: {chip}");
            Console.WriteLine($"Dll version: {dll}");

            var ftSpi = new Ft4222Spi(new SpiConnectionSettings(0, 1)
            {
                ClockFrequency = Pn5180.MaximumSpiClockFrequency, Mode = Pn5180.DefaultSpiMode, DataFlow = DataFlow.MsbFirst
            });

            var gpioController = new GpioController(PinNumberingScheme.Board, new Ft4222Gpio());

            // REset the device
            gpioController.OpenPin(0, PinMode.Output);
            gpioController.Write(0, PinValue.Low);
            Thread.Sleep(10);
            gpioController.Write(0, PinValue.High);
            Thread.Sleep(10);

            return(new Pn5180(ftSpi, 2, 3, gpioController, true));
        }