0,0 → 1,81 |
#ifndef MLAB_XVCD_PORT_FTDI_H |
#define MLAB_XVCD_PORT_FTDI_H |
|
|
// Pin Defs |
// -------- |
|
// FTDI Pin Mask Definitions (valid for FT232R) |
#define DBUS0 0x0001 // Bit 0 Data Bus |
#define DBUS1 0x0002 // Bit 1 |
#define DBUS2 0x0004 // Bit 2 |
#define DBUS3 0x0008 // Bit 3 |
#define DBUS4 0x0010 // Bit 4 |
#define DBUS5 0x0020 // Bit 5 |
#define DBUS6 0x0040 // Bit 6 |
#define DBUS7 0x0080 // Bit 7 |
|
#define CBUS0 0x0100 // Bit 0 Control Bus |
#define CBUS1 0x0200 // Bit 1 |
#define CBUS2 0x0400 // Bit 2 |
#define CBUS3 0x0800 // Bit 3 |
|
#define FTDI_TXD DBUS0 // Bit 0 RS232 Signal Alias |
#define FTDI_RXD DBUS1 // Bit 1 |
#define FTDI_RTS DBUS2 // Bit 2 |
#define FTDI_CTS DBUS3 // Bit 3 |
#define FTDI_DTR DBUS4 // Bit 4 |
#define FTDI_DSR DBUS5 // Bit 5 |
#define FTDI_DCD DBUS6 // Bit 6 |
#define FTDI_RI DBUS7 // Bit 7 |
|
|
// Includes |
// -------- |
#undef UNICODE |
#define WIN32_LEAN_AND_MEAN |
|
#include <windows.h> // Windows Console Application |
#include <stdlib.h> // Standard Library (exit, atoi, ...) |
#include <stdio.h> // Standard IO (printf, ...) |
#include "mlab_xvcd.h" // Program Config (pin defs, settings, ...) |
|
// Link with library |
#include "ftd2xx.h" // FTDI Library |
#pragma comment (lib, "ftd2xx.lib") // Tell MS compiller to link with this library |
|
|
// Public Definitions |
// ------------------ |
|
|
// Find Mode (for port open) |
#define OPEN_BY_DESCRIPTION FT_OPEN_BY_DESCRIPTION // Find device by Description String |
#define OPEN_BY_LOCATION FT_OPEN_BY_LOCATION // Find device by Bus Location |
#define OPEN_BY_SERIAL_NUMBER FT_OPEN_BY_SERIAL_NUMBER // Find device by it's Serial Number |
|
// Max Data lengt to send to FTDI as one block |
#define FTDI_MAX_WRITESIZE 1024 |
|
|
// Function Prototypes (public functions only) |
// ------------------------------------------- |
|
// Connect to FTDI driver |
// Find the device and open driver |
int jtagOpenPort(int findDeviceBy, char *findDeviceByStr); |
|
// Enable or Disable Activity LED |
void jtagSetLED(bool LedEnable); |
|
// Set port to Idle state (all zeroes) |
void jtagSetIdle(); |
|
// Close FTDI connection |
int jtagClosePort(); |
|
// Send data to JTAG port and bring returned data |
// Turn LED On during processing |
int jtagScan(const unsigned char *TMS, const unsigned char *TDI, unsigned char *TDO, int bits); |
|
#endif |