2697 |
miho |
1 |
#ifndef MLAB_XVCD_PORT_FTDI_H |
|
|
2 |
#define MLAB_XVCD_PORT_FTDI_H |
|
|
3 |
|
|
|
4 |
|
|
|
5 |
// Pin Defs |
|
|
6 |
// -------- |
|
|
7 |
|
|
|
8 |
// FTDI Pin Mask Definitions (valid for FT232R) |
|
|
9 |
#define DBUS0 0x0001 // Bit 0 Data Bus |
|
|
10 |
#define DBUS1 0x0002 // Bit 1 |
|
|
11 |
#define DBUS2 0x0004 // Bit 2 |
|
|
12 |
#define DBUS3 0x0008 // Bit 3 |
|
|
13 |
#define DBUS4 0x0010 // Bit 4 |
|
|
14 |
#define DBUS5 0x0020 // Bit 5 |
|
|
15 |
#define DBUS6 0x0040 // Bit 6 |
|
|
16 |
#define DBUS7 0x0080 // Bit 7 |
|
|
17 |
|
|
|
18 |
#define CBUS0 0x0100 // Bit 0 Control Bus |
|
|
19 |
#define CBUS1 0x0200 // Bit 1 |
|
|
20 |
#define CBUS2 0x0400 // Bit 2 |
|
|
21 |
#define CBUS3 0x0800 // Bit 3 |
|
|
22 |
|
|
|
23 |
#define FTDI_TXD DBUS0 // Bit 0 RS232 Signal Alias |
|
|
24 |
#define FTDI_RXD DBUS1 // Bit 1 |
|
|
25 |
#define FTDI_RTS DBUS2 // Bit 2 |
|
|
26 |
#define FTDI_CTS DBUS3 // Bit 3 |
|
|
27 |
#define FTDI_DTR DBUS4 // Bit 4 |
|
|
28 |
#define FTDI_DSR DBUS5 // Bit 5 |
|
|
29 |
#define FTDI_DCD DBUS6 // Bit 6 |
|
|
30 |
#define FTDI_RI DBUS7 // Bit 7 |
|
|
31 |
|
|
|
32 |
|
|
|
33 |
// Includes |
|
|
34 |
// -------- |
|
|
35 |
#undef UNICODE |
|
|
36 |
#define WIN32_LEAN_AND_MEAN |
|
|
37 |
|
|
|
38 |
#include <stdlib.h> // Standard Library (exit, atoi, ...) |
|
|
39 |
#include <stdio.h> // Standard IO (printf, ...) |
|
|
40 |
#include "mlab_xvcd.h" // Program Config (pin defs, settings, ...) |
|
|
41 |
|
2940 |
miho |
42 |
#ifdef WIN32 |
|
|
43 |
#include <windows.h> // Windows Console Application |
|
|
44 |
#else |
|
|
45 |
#include <string.h> |
|
|
46 |
#endif |
|
|
47 |
|
2697 |
miho |
48 |
// Link with library |
2940 |
miho |
49 |
#ifdef WIN32 |
|
|
50 |
#include "lib_win32\ftd2xx.h" // FTDI Library |
|
|
51 |
#else |
3090 |
miho |
52 |
#include "lib_linux/ftd2xx.h" |
2940 |
miho |
53 |
#endif |
2697 |
miho |
54 |
|
|
|
55 |
|
|
|
56 |
// Public Definitions |
|
|
57 |
// ------------------ |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
// Find Mode (for port open) |
|
|
61 |
#define OPEN_BY_DESCRIPTION FT_OPEN_BY_DESCRIPTION // Find device by Description String |
|
|
62 |
#define OPEN_BY_LOCATION FT_OPEN_BY_LOCATION // Find device by Bus Location |
|
|
63 |
#define OPEN_BY_SERIAL_NUMBER FT_OPEN_BY_SERIAL_NUMBER // Find device by it's Serial Number |
|
|
64 |
|
|
|
65 |
// Max Data lengt to send to FTDI as one block |
|
|
66 |
#define FTDI_MAX_WRITESIZE 1024 |
|
|
67 |
|
|
|
68 |
|
|
|
69 |
// Function Prototypes (public functions only) |
|
|
70 |
// ------------------------------------------- |
|
|
71 |
|
|
|
72 |
// Connect to FTDI driver |
|
|
73 |
// Find the device and open driver |
|
|
74 |
int jtagOpenPort(int findDeviceBy, char *findDeviceByStr); |
|
|
75 |
|
|
|
76 |
// Enable or Disable Activity LED |
|
|
77 |
void jtagSetLED(bool LedEnable); |
|
|
78 |
|
|
|
79 |
// Set port to Idle state (all zeroes) |
|
|
80 |
void jtagSetIdle(); |
|
|
81 |
|
|
|
82 |
// Close FTDI connection |
|
|
83 |
int jtagClosePort(); |
|
|
84 |
|
|
|
85 |
// Send data to JTAG port and bring returned data |
|
|
86 |
// Turn LED On during processing |
2940 |
miho |
87 |
int jtagScan(const unsigned char *TMS, const unsigned char *TDI, unsigned char *TDO, unsigned int bits); |
2697 |
miho |
88 |
|
2935 |
miho |
89 |
// Check if Cable is still connected and accesible |
|
|
90 |
// True is o.k. |
|
|
91 |
bool CheckCable(); |
|
|
92 |
|
2697 |
miho |
93 |
#endif |