28#include "api/Common.h"
29#include "api/HardwareSPI.h"
30#include "api/Stream.h"
67 void begin()
override {
68 begin(0x0403, 0x6010);
80 const char*
description =
nullptr,
const char* serial =
nullptr);
147 operator bool() {
return is_open && ftdi_context !=
nullptr; }
150 struct ftdi_context* ftdi_context =
nullptr;
151 int ftdi_channel = 0;
152 bool is_open =
false;
156 SPIMode current_mode = SPI_MODE0;
157 BitOrder current_bit_order = MSBFIRST;
160 static const uint8_t CMD_WRITE_NEG = 0x01;
161 static const uint8_t CMD_BITMODE = 0x02;
162 static const uint8_t CMD_READ_NEG = 0x04;
163 static const uint8_t CMD_LSB = 0x08;
164 static const uint8_t CMD_DO_WRITE = 0x10;
165 static const uint8_t CMD_DO_READ = 0x20;
166 static const uint8_t CMD_WRITE_TMS = 0x40;
Implementation of SPI communication for FTDI FT2232HL using MPSSE mode.
Definition HardwareSPI_FTDI.h:54
uint8_t getMPSSECommand(bool read_enable, bool write_enable)
Get MPSSE command byte based on current SPI settings.
Definition HardwareSPI_FTDI.cpp:272
void endTransaction(void) override
End the current SPI transaction.
Definition HardwareSPI_FTDI.cpp:193
uint16_t transfer16(uint16_t data) override
Transfer a 16-bit value over SPI.
Definition HardwareSPI_FTDI.cpp:120
bool configureMPSSE()
Configure FTDI device for MPSSE mode.
Definition HardwareSPI_FTDI.cpp:205
void detachInterrupt() override
Detach interrupt (not implemented for FTDI).
Definition HardwareSPI_FTDI.cpp:201
int sendData(const uint8_t *data, size_t length)
Send raw data to FTDI device.
Definition HardwareSPI_FTDI.cpp:300
void beginTransaction(SPISettings settings) override
Begin an SPI transaction with specific settings.
Definition HardwareSPI_FTDI.cpp:179
void notUsingInterrupt(int interruptNumber) override
Unregister interrupt usage (not implemented for FTDI).
Definition HardwareSPI_FTDI.cpp:175
uint8_t transfer(uint8_t data) override
Transfer a single byte over SPI.
Definition HardwareSPI_FTDI.cpp:97
bool setClockFrequency(uint32_t frequency)
Set the SPI clock frequency.
Definition HardwareSPI_FTDI.cpp:250
void usingInterrupt(int interruptNumber) override
Register interrupt usage (not implemented for FTDI).
Definition HardwareSPI_FTDI.cpp:171
int receiveData(uint8_t *data, size_t length)
Receive raw data from FTDI device.
Definition HardwareSPI_FTDI.cpp:307
~HardwareSPI_FTDI() override
Destructor - closes FTDI connection.
Definition HardwareSPI_FTDI.cpp:28
void end() override
Close the SPI interface and cleanup resources.
Definition HardwareSPI_FTDI.cpp:88
void attachInterrupt() override
Attach interrupt (not implemented for FTDI).
Definition HardwareSPI_FTDI.cpp:197
Definition HardwareSPI.h:120
Definition HardwareSPI.h:46
We provide the WiFi class to simulate the Arduino WIFI. In in Linux we can expect that networking is ...
Definition CanMsg.cpp:31