Rev Author Line No. Line
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