//-----------------------------------------------------------------------
//
// Copyright © 2012 Nils Hammar and Future Technology Devices International Limited. All rights reserved.
//
//-----------------------------------------------------------------------
namespace FtdiApi
{
using global::FtdiApi.Constants;
///
/// EEPROM structure specific to FT232H devices.
/// Inherits from FT_EEPROM_DATA.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate", Justification = "Reviewed.")]
public class FT232H_EEPROM_STRUCTURE : FT_EEPROM_DATA
{
///
/// Determines if IOs are pulled down when the device is in suspend
///
public bool PullDownEnable = false;
///
/// Determines if the serial number is enabled
///
public bool SerNumEnable = true;
///
/// Determines if AC pins have a slow slew rate
///
public bool ACSlowSlew = false;
///
/// Determines if the AC pins have a Schmitt input
///
public bool ACSchmittInput = false;
///
/// Determines the AC pins drive current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or FT_DRIVE_CURRENT_16MA
///
public byte ACDriveCurrent = FT_DRIVE_CURRENT.FT_DRIVE_CURRENT_4MA;
///
/// Determines if AD pins have a slow slew rate
///
public bool ADSlowSlew = false;
///
/// Determines if the AD pins have a Schmitt input
///
public bool ADSchmittInput = false;
///
/// Determines the AD pins drive current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or FT_DRIVE_CURRENT_16MA
///
public byte ADDriveCurrent = FT_DRIVE_CURRENT.FT_DRIVE_CURRENT_4MA;
///
/// Sets the function of the CBUS0 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK30,
/// FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus0 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS1 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK30,
/// FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus1 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS2 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN
///
public byte Cbus2 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS3 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN
///
public byte Cbus3 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS4 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN
///
public byte Cbus4 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS5 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE,
/// FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus5 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS6 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE,
/// FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus6 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS7 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE
///
public byte Cbus7 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS8 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE,
/// FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus8 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Sets the function of the CBUS9 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE,
/// FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5
///
public byte Cbus9 = FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE;
///
/// Determines if the device is in FIFO mode
///
public bool IsFifo = false;
///
/// Determines if the device is in FIFO target mode
///
public bool IsFifoTar = false;
///
/// Determines if the device is in fast serial mode
///
public bool IsFastSer = false;
///
/// Determines if the device is in FT1248 mode
///
public bool IsFT1248 = false;
///
/// Determines FT1248 mode clock polarity
///
public bool FT1248Cpol = false;
///
/// Determines if data is sent MSB (0) or LSB (1) in FT1248 mode
///
public bool FT1248Lsb = false;
///
/// Determines if FT1248 mode uses flow control
///
public bool FT1248FlowControl = false;
///
/// Determines if the VCP driver is loaded
///
public bool IsVCP = true;
///
/// For self-powered designs, keeps the FT232H in low power state until ACBUS7 is high
///
public bool PowerSaveEnable = false;
}
}